FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
probelma con date en paradox
estoy intentando hacer un alta de registro y me tira el siguiente error
TYPE MISSMATCH IN EXPRESSION qryDebe.SQL.Text := 'INSERT INTO debes.db (IDCliente,IDProducto,Recargo,Descuento,Total,Factura,Fecha,Detalle) VALUES ('+ID.text+','+IDProducto.text+','+Recargo.text+','+Descuento.text+','+TotalNeto.text+',"'+NroFactur a.text+'", "'+datetostr(fecha.date)+'","'+detalle.text+'")'; qryDebe.ExecSQL; Fecha es un TDateTimePicker y el campo Fecha es DATE en la paradox. que puede ser el error ? |
#2
|
||||
|
||||
Cita:
Por esta razón, por legibilidad del código y muchas veces por rendimiento, es mucho, pero mucho mejor usar parámetros en las consultas:
y sustituirlos antes de ejecutarla:
// Saludos |
#3
|
|||
|
|||
muchas gracias roman !
pero me sigue diciendo TYPE MISSMATCH EXPRESSION qryDebe.SQL.Text := 'INSERT INTO debes.db (IDCliente,IDProducto,Recargo,Descuento,Total,Factura,Fecha,Detalle) VALUES (:id,:idProducto,:Recargo,escuento,:Total,:Factura,:Fecha,etalle)'; qryDebe.ParamByName('id').AsString := id.Text; qryDebe.ParamByName('idProducto').AsString := idProducto.Text; qryDebe.ParamByName('Recargo').AsString := recargo.Text; qryDebe.ParamByName('Descuento').AsString := descuento.Text; qryDebe.ParamByName('Total').AsString := totalneto.Text; qryDebe.ParamByName('factura').AsString := nrofactura.Text; qryDebe.ParamByName('fecha').AsDate := fecha.date; qryDebe.ParamByName('Detalle').AsString := detalle.Text; qryDebe.ExecSQL; tendre algo mal en la paradox ? . =( . |
#4
|
||||
|
||||
Cita:
Saludos
__________________
Por qué todas las personas saben exactamente cómo debemos vivir nuestra vida, y nunca tienen idea de cómo deben vivir sus propias vidas.
|
#5
|
|||
|
|||
Hola amigos...
El problema realmente radica en el formato de fecha que paradox utiliza internamete para hacer la conversión de fechas es decir si en una sentencia SQL le envias una cadena a un campo fecha la conversión espera que la cadena que enviaste tenga el formato 'mm/dd/yyyy' para poder hacer la conversión correctamente... todo esto independientemente de la configuración de fecha que tengas en tu equipo... Saludos |
#6
|
||||
|
||||
Lo que dices es cierto si colocas la fecha directamente en la consulta:
Aquí la consulta falla por lo que mencionas; Paradox espera el formato mm/dd/aaaa y se le da en formato dd/mm/aaaa Pero si usas parámetros:
Y sustituyes el parámetro:
donde Fecha es de tipo TDate, la consulta no falla porque la componente transforma el valor TDate al formato adecuado para Paradox. Por ello es que conviene usar parámetros sin tener que recordar el formato exacto que espera el manejador de bases de datos. // Saludos |
#7
|
||||
|
||||
Saludos
Ale21alito, trata de hace por lo menos 3 pruebas Si esto no arroja alguna idea,....
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
|
|
|