Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Error En Consulta (https://www.clubdelphi.com/foros/showthread.php?t=52554)

perillan 24-01-2008 11:27:42

Error En Consulta
 
Tengo que hacer unas consultas de una base de datos de Access y me da un error en ellas. La muestro por si me teneis que indicar algo.


ADOQuery1.SQL.text:=( 'Select *From AUTOS where NOMBRE containing ''' + edSearch.Text + '''');

Error en sintesis(falta operador)en la expresion de la consulta nombre

Lepe 24-01-2008 11:37:27

Prueba así:
Código Delphi [-]
ADOQuery1.SQL.text:=( 'Select *From AUTOS where NOMBRE like ' + QuotedStr('%' + edSearch.text + '%');

perillan 24-01-2008 16:57:15

Lepe: Con esta consulta de mezcla entre la tuya y la mia sale, pero con el inicio del nombre o frase a buscar. Lo que pretendo es que la consulta se realice con los caracteres tecleados aunque esten a mitad del nombre o frase. Esto con interbase en la primera consulta que puse y con un Ibadataset se ejecuta perfectamente.
Tienes alguna idea?.
Un saludo
ADOQuery1.SQL.text:=( 'Select *From AUTOS where NOMBRE like ''' + edSearch.text + '%''');

eduarcol 24-01-2008 17:07:20

Cita:

Empezado por perillan (Mensaje 260578)
Lepe: Con esta consulta de mezcla entre la tuya y la mia sale, pero con el inicio del nombre o frase a buscar. Lo que pretendo es que la consulta se realice con los caracteres tecleados aunque esten a mitad del nombre o frase. Esto con interbase en la primera consulta que puse y con un Ibadataset se ejecuta perfectamente.
Tienes alguna idea?.
Un saludo
ADOQuery1.SQL.text:=( 'Select *From AUTOS where NOMBRE like ''' + edSearch.text + '%''');

para eso es el caracter comodin de porcentaje, le indica la posicion donde debe buscar, seria asi:

Código Delphi [-]
ADOQuery1.SQL.text:=( 'Select *From AUTOS where NOMBRE like ''%'  + edSearch.text + '%''');

perillan 24-01-2008 17:12:47

Muy bien perfecto.....gracias.

perillan 24-01-2008 23:03:47

Ahora viene la segunda parte.
Estas consultas en access son con unas tablas relacionadas. Que ADO es el mejor para estas tablas. Yo lo que tengo hecho es con interbase y utilizaba los IBDataset con la propiedad GeneratorFiel y quedaban enlazadas, pero con esto me encuentro un poco perdido.
Un saludo

eduarcol 24-01-2008 23:19:28

Cita:

Empezado por perillan (Mensaje 260729)
Ahora viene la segunda parte.
Estas consultas en access son con unas tablas relacionadas. Que ADO es el mejor para estas tablas. Yo lo que tengo hecho es con interbase y utilizaba los IBDataset con la propiedad GeneratorFiel y quedaban enlazadas, pero con esto me encuentro un poco perdido.
Un saludo

laverdad no entendi mucho, las tienes en acces o en ib???

perillan 24-01-2008 23:24:54

La tengo en access

jachguate 24-01-2008 23:59:42

¿El error de sintaxis lo arroja delphi o lo arroja access?

Si la sentencia la construis tal como la publicaste, obviamente el error está en la sintaxis de pascal, y no en la del sql.

Una sentencia correcta, en pascal, y en SQL, sería:

Código Delphi [-]
ADOQuery1.SQL.text := 'Select * from AUTOS where NOMBRE containing ' 
        + QuotedStr(edSearch.text);

Esto suponiendo que la clausula "containing" sea válida en Access, pues no es parte del estándar SQL.

Hasta luego.

;)

perillan 25-01-2008 08:37:31

La consulta ya quedo resuelta, el tema ahora es : Cuales son los componentes adecuados de ADO para relacionar dos bases de datos en access.
Como se establece la relacion maestro-detalle a traves de los componentes ADO y que componentes serian estos?.

Un saludo.

jachguate 25-01-2008 15:20:27

Cita:

Empezado por perillan (Mensaje 260795)
La consulta ya quedo resuelta, el tema ahora es : Cuales son los componentes adecuados de ADO para relacionar dos bases de datos en access.
Como se establece la relacion maestro-detalle a traves de los componentes ADO y que componentes serian estos?.

Un saludo.

Claro que siguiendo la guia de estilo, ese, de ser necesario, sería tema de otro hilo, aunque claro, no será necesario, pues dichos temas se han discutido previamente, solo haz un par de búsquedas y hallarás respuestas.


La franja horaria es GMT +2. Ahora son las 18:00:26.

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