Array

Formateo de valores de hora de fecha para acceder a SQL en Delphi

online calendar planner

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

Dejar respuesta

Please enter your comment!
Please enter your name here

FOLLOW US

Related Stories