Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-12-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Modificar Sql access en Firebird

Hola a todos
Estoy haciendo unas pruebas y quisiera poder cambiar la sentencia sql que tengo en access para que funcione en firebird.
Esta es la sentencia:
Cita:
SELECT IIf([TipoTransac]="FA","Factura","Nota Débito") AS Documento, CxCobrar.CodTransac, CxCobrar.FechaTransac, CxCobrar.CodCliente, Clientes.NombreCliente, Clientes.DiasCredito, Clientes.LimiteCredito, CxCobrar.Balance, CxCobrar.PagosRec, [Balance]-[PagosRec] AS Saldo, Date()-CxCobrar!FechaTransac AS Días
FROM Clientes RIGHT JOIN CxCobrar ON Clientes.CodCliente = CxCobrar.CodCliente
WHERE (((CxCobrar.CodCliente)=[PRI]) AND (([Balance]-[PagosRec])>0) AND ((CxCobrar.TipoTransac)="FA" Or (CxCobrar.TipoTransac)="ND"))
ORDER BY CxCobrar.CodCliente, CxCobrar.OrdTrans;
La parte del iif mas o menos la tengo resuelta, pero me topo con la parte Date ( ), y los corchetes.
Los errores que me dan (usando Ib Expert) son numéricos, no los entiendo o donde puedo encontrar de que se tratan.
Si me podéis ayudar os lo agradeceré.
Saludos
Responder Con Cita
  #2  
Antiguo 22-12-2007
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Hola Caral,
para el date, creo que tienes que sustituirlo por

cast('NOW' as date)

Respecto a los corchetes, creo que quitandolos es suficiente. Si los que tienes en la parte del where es un parámetro, pues tendrás que ponerlo como

CxCobrar.CodCliente)=:PRI

y asignarle el correspondiente valor antes de ejecutar la query.
El resto de los corchetes de la parte WHERE, con quitarlos creo que es suficiente.

Saludos y suerte. O suerte y saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #3  
Antiguo 23-12-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Gracias por responder, me ha servido mucho.
Tengo un error y no se de que se trata.

Sentencia sql:
Cita:
SELECT IIf(CxCobrar.TipoTransac='FA','Factura','Nota Débito') AS Documento, CxCobrar.CodTransac, CxCobrar.FechaTransac, CxCobrar.CodCliente, Clientes.NombreCliente, Clientes.DiasCredito, Clientes.LimiteCredito, CxCobrar.Balance, CxCobrar.PagosRec, Balance-PagosRec AS Saldo, cast('NOW' as date)-CxCobrar.FechaTransac AS Dias
FROM Clientes RIGHT JOIN CxCobrar ON Clientes.CodCliente = CxCobrar.CodCliente
WHERE (((CxCobrar.CodCliente)=:PRI) AND ((Balance-PagosRec)>0) AND ((CxCobrar.TipoTransac)='FA' Or (CxCobrar.TipoTransac)='ND'))
ORDER BY CxCobrar.CodCliente, CxCobrar.OrdTrans;
El error es en delphi:
Cita:
Projet Producción.exe raised execption class EoleExecption with message [ODBC Firebird Driver][Firebird []execption evaluation not supported’’. Process stopped
El error en IBExpert:
Cita:
Expression Evaluation Not Supported
En la pantalla de abajo en el mismo IBExpert:
Cita:
Plan
PLAN SORT (JOIN (CLIENTES INDEX (CUSTNUM), CXCOBRAR INDEX (CxCobrarCodCliente)))

Adapted Plan
PLAN SORT (JOIN (CLIENTES INDEX (CUSTNUM), CXCOBRAR INDEX (CxCobrarCodCliente)))
No se que significa?
La sentencia funciona siempre que el cliente no tenga cuentas atrasadas, ojala fuera asi., pero desgraciadamente si hay clientes con cuentas atrasadas.
Saludos
Responder Con Cita
  #4  
Antiguo 23-12-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

Current_Date es la expresión para obtener la fecha actual.

Intenta con ésta en lugar de Now, pero sin hacer molde de tipo.

No dejes de avisarnos cómo te resulta Carlos.

Un abrazo.

Al González.
Responder Con Cita
  #5  
Antiguo 23-12-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola Al
He cambiado lo que me dijiste y sigue el mismo problema, que sera?.
El asunto es que si el cliente NO tiene cuantas pendientes, Funciona, de lo contrario me envía el error que mencione.
No se lo que es un molde de tipo?.
Si me pudieran modificar la sentencia para darme una idea se los agradecería.
Saludos
Responder Con Cita
  #6  
Antiguo 23-12-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.055
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por probar: "cast('NOW' as date)" simplemente como 'now', o usa 'today' que no devuelve hora, sólo fecha.
Responder Con Cita
  #7  
Antiguo 23-12-2007
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Yo prefiero hacer funcionar primero la sentencia sql y que funcione,
y despues pasarla al desarrollo (poryecto abierto en el IDE)

yo uso mi propia implementacion de IDE o GUI para firebird
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
error al modificar registro con firebird joanajj Firebird e Interbase 6 09-11-2007 16:15:42
Modificar campo tabla access desde delphi JuanHC Conexión con bases de datos 3 25-09-2006 13:15:02
Como modificar consultas de access en tiempo de ejecucion ernestocad SQL 0 06-04-2005 16:30:05
Modificar campo de tabla en MS ACCESS i_minex Servers 1 04-03-2005 09:05:15
Modificar tablas vinculadas de Access castelaogz Conexión con bases de datos 2 25-03-2004 12:12:19


La franja horaria es GMT +2. Ahora son las 06:32:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi