Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Locate con ADO (https://www.clubdelphi.com/foros/showthread.php?t=88240)

Ivanhoe 05-05-2015 21:57:11

Locate con ADO
 
Buenas tardes.
Tengo el siguiente detalle usando el componente TAdoQuery con Delphi 7.0
La consulta que contiene el componente tiene como caracteristica que los nombres de los campos inician con un numero:
Código SQL [-]
Select [501_Nombre], [501_Apellido]
from [501DatosGenerales]
Y cuando realizó un locate:
Código Delphi [-]
qry501DatosGenerales.Locate('[501_Nombre]','Juan',[]);
Siempre me retorna un false siendo que "juan" si existe.

Alguna idea que me hace falta?

Les comento que si a la consulta le pongo alias a los campos, el locate funciona correctamente, es decir si la consulta la hago asi:
Código SQL [-]
Select [501_Nombre] as Nombre, [501_Apellido] as Apellido
from [501DatosGenerales]
Código Delphi [-]
qry501DatosGenerales.Locate('Nombre','Juan',[]);
aqui si funciona correctamente.

El problema esta en que el nombre del campo comienza con numero, pero me gustaria que funcionara sin el alias, alguna idea?

gracias.

ecfisa 06-05-2015 00:11:40

Hola Ivanhoe y bienvenido a Club Delphi :)

Cuando incluyas código en tus mensajes usa etiquetas para darle mas legibilidad:


Aunque al usar '[ ]' te admitirá caracteres especiales y nombres comenzados en números, nada garantiza que funcionará o se contemplará en todos los casos.

Buenas prácticas en la elección de los nombres de columnas:
  • Evitar usar caracteres especiales y espacios.
  • Evitar los números y/o prefijos que puedan ser usados por el motor de la bd.
  • Evitar usar palabras reservadas.
Mi consejo es que renombres las columnas, pero si es estríctamente necesario que así se llamen y logras que funcionen con un alias... Usa el alias.

Saludos :)

Ivanhoe 06-05-2015 00:46:19

Gracias ecfisa.
A la proximá usaré las etiquetas que mencionas.
En cuanto a la pregunta, tendré que especificar alias, ya que la base de datos ya esta diseñada de esa forma.

saludos.

Casimiro Noteví 06-05-2015 08:38:51

Creo que no has dicho la base de datos que estás usando, supongo que será... access. Pon los nombres de esos campos entre comillas, quizás acierto dando palos de ciego :)

ElDioni 06-05-2015 12:04:57

Hola, yo creo que es por los corchetes, estos (que yo sepa) se ponen cuando el nombre del campo está separado por un espacio, en este caso no está separado ya que lleva un guión bajo, prueba a quitarle los corchetes a ver que ocurre.

Saludos.

Ivanhoe 06-05-2015 18:12:41

Que tal Casimiro, Trabajo con Microsoft SQL Server 2012.
Que tal ElDioni, los corchetes no se pueden eliminar ya que el nombre del campo inicia con número, los corchetes se usan cuando tienes especios en blanco ó comienza con número el nombre de dicho campo. :(


La franja horaria es GMT +2. Ahora son las 17:29:07.

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