Alguna vez has conseguido el horrible & amp; quot; El objeto de parámetro está mal definido. Se proporcionó información inconsistente o incompleta & amp; quot; Error de JET? Aquí y amp; apos; s cómo rectificar la situación.
Cuando necesite crear una consulta SQL contra & amp; # x200B; una base de datos de Access donde se usa un valor de fecha (o fecha), debe asegurarse de que se use el formato correcto.
Por ejemplo, en una consulta SQL: & amp; quot; SELECT * FROM TBL WHERE DateField = & amp; apos; 10/12/2008 & amp; apos; & amp; quot; desea obtener todos los registros de la tabla llamada TBL donde un campo de fecha general DateField es igual a 10/12/2008.
¿Está clara la línea de arriba?? Es el 10 de diciembre o el 12 de octubre? Afortunadamente, estamos bastante seguros de que el año en la consulta es 2008.
Si la parte de la fecha de la consulta se especifica como MM / DD / AAAA o DD / MM / AAAA o tal vez AAAAMMDD? ¿Y los entornos regionales juegan un papel aquí??
MS Access, Jet, Formato de hora de fecha
Cuando se usa Access y JET (dbGo – controles ADO Delphi), el formato del SQL para el campo de fecha debe * siempre * ser:
Cualquier otra cosa puede funcionar en pruebas limitadas, pero a menudo puede conducir a resultados inesperados o errores en la máquina del usuario y amp; apos; s.
Here & amp; apos; s una función Delphi personalizada que puede usar para formatear un valor de fecha para la consulta Access SQL.
Para & amp; quot; 29 de enero de 1973 & amp; quot; la función devolverá la cadena & amp; apos; # 1973-01-29 # & amp; apos ;.
Acceda al formato de hora de fecha SQL?
En cuanto al formato de fecha y hora, el formato general es:
Video destacado
Esto es: # año-mes-díaSPACEhour: minuto: segundo #
Tan pronto como construya una cadena de tiempo de fecha válida para el SQL usando el formato general anterior y pruébelo usando cualquiera de los componentes del conjunto de datos de Delphi & amp; apos; s como TADOQuery, recibirá el horrible & amp; quot; El objeto de parámetro es incorrectamente definido. Se proporcionó información inconsistente o incompleta & amp; quot; error en tiempo de ejecución!
El problema con el formato anterior está en & amp; quot ;: & amp; quot; carácter: como se utiliza para parámetros en consultas de Delphi parametrizadas. Como en & amp; quot ;… DONDE DateField =: dateValue & amp; quot; – aquí & amp; quot; dateValue & amp; quot; es un parámetro y el & amp; quot ;: & amp; quot; se usa para marcarlo.
Una forma de & amp; quot; fix & amp; quot; el error es usar otro formato para fecha / hora (reemplazar & amp; quot ;: & amp; quot; with & amp; quot ;.& amp; quot;):
Y aquí, además, es una función Delphi personalizada para devolver una cadena desde un valor de fecha y hora que puede usar al construir consultas SQL para Access donde necesita buscar un valor de fecha y hora:
El formato se ve extraño, pero dará como resultado el valor de cadena de tiempo de fecha correctamente formateado que se utilizará en las consultas SQL!
Aquí & amp; apos; s una versión más corta usando la rutina FormatDateTime:
& amp; # x203A; Informática