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)
-   -   Uso de LIMIT en un ADOQuery (https://www.clubdelphi.com/foros/showthread.php?t=75764)

Dexter182 17-09-2011 17:08:05

Uso de LIMIT en un ADOQuery
 
Buenas !!!

Hace rato que no me ponía a programar (soy aficionado) y estoy intentando hacer una consulta a una base de datos Access mediante un ADOQuery.
La consulta en si funciona perfectamente, pero el problema apareció cuando intenté agregarle el uso de LIMIT.

El código fuente es el siguiente:

Código:

Modulo.Consulta.Active := FALSE;
Modulo.Consulta.SQL.Clear;
Modulo.Consulta.SQL.Add('SELECT Cod_Producto as Código, Desc_Producto as Descripción, ROUND((Precio+(Precio*(Porcentaje_Ganancia/100))+(Precio+(Precio*(Porcentaje_Ganancia/100)))*0.21),3) as Precio, Cant_Existente as Stock FROM Productos');
Modulo.Consulta.SQL.Add('WHERE Cod_Producto LIKE ' + QuotedStr('%' + Edit_Buscar.Text + '%'));
Modulo.Consulta.SQL.Add('LIMIT 0,10');
Modulo.Consulta.Active := TRUE;

El error que me aparece:
Cita:

Error de Sintaxis (falta operador) en la expresión de consulta 'Cod_Producto LIKE '%1%' LIMIT 0,1'
En algo le estoy errando pero no logro darme cuenta en que. :confused:

Saludos y gracias de antemano.

oscarac 17-09-2011 17:10:52

me parece que LIMIT en Access no existe

Dexter182 18-09-2011 18:50:20

Cita:

Empezado por oscarac (Mensaje 412422)
me parece que LIMIT en Access no existe

Uh... Voy a tener que ir pensando en otra solución entonces...

Saludos y gracias por responder.

Caral 18-09-2011 19:41:40

Hola
Código Delphi [-]
Modulo.Consulta.Active := FALSE;
Modulo.Consulta.SQL.Clear;
Modulo.Consulta.SQL.Add('SELECT Top 10 Cod_Producto as Código, Desc_Producto as Descripción, ROUND((Precio+(Precio*(Porcentaje_Ganancia/100))+(Precio+(Precio*(Porcentaje_Ganancia/100)))*0.21),3) as Precio, Cant_Existente as Stock FROM Productos');
Modulo.Consulta.SQL.Add('WHERE Cod_Producto LIKE ' + QuotedStr('%' + Edit_Buscar.Text + '%'));
Modulo.Consulta.Active := TRUE;
Saludos

Dexter182 19-09-2011 04:53:54

¡¡¡ Muchísimas gracias Caral !!!

Funciona a la perfección de esa manera.
Ahora a seguir investigando el asunto que esto recién empieza.

¡¡¡ Saludos y gracias de nuevo !!!.

PD: Estuve leyendo en WebExperto las diferencias de sintaxis para hacer lo mismo entre los diferentes motores SQL.
Basándome en esa información: para trabajar con Access ¿debo usar siempre la sintaxis de SQL Server?

oscarac 19-09-2011 15:52:36

Cita:

Empezado por Dexter182 (Mensaje 412551)
PD: Estuve leyendo en WebExperto las diferencias de sintaxis para hacer lo mismo entre los diferentes motores SQL.
Basándome en esa información: para trabajar con Access ¿debo usar siempre la sintaxis de SQL Server?


no entendi eso ultimo... a que te refieres?

ecfisa 19-09-2011 19:11:45

Hola Dexter182.

Cita:

Basándome en esa información: para trabajar con Access ¿debo usar siempre la sintaxis de SQL Server?
Aunque no utilizo ninguno, por lo que he leido, la sintáxis que usan no es muy diferente.

Encontré estos enlaces que quizá te sirvan de ayuda:

Un saludo.

Dexter182 19-09-2011 21:48:28

Cita:

Empezado por oscarac (Mensaje 412583)
no entendi eso ultimo... a que te refieres?

Me refería a si la sintaxis del código SQL de Access y el de SQL Server era la misma.

Cita:

Empezado por ecfisa (Mensaje 412625)
Aunque no utilizo ninguno, por lo que he leido, la sintáxis que usan no es muy diferente.

OK. Muchas gracias.

Cita:

Empezado por ecfisa (Mensaje 412625)

¡¡¡ Por supuesto que sirven !!!. Hay un montón de ejemplos que me pueden servir. Muchísimas gracias.

Saludos y gracias por toda la ayuda brindada.

oscarac 19-09-2011 21:50:25

no, no son las mismas, por ejemplo en Acess puedes hacer PIvot pero en Sql no, lo mismo sucede cuando trabajas con fechas en access tienes que usar # y en sql usas comillas simples

Caral 19-09-2011 21:56:10

Hola
Para mi todos los tipos de sql son iguales.
La diferencia esta en como se llaman a ciertos datos, esto es particular en cada tipo de manejador.
En esencia si se conoce de sql no se tendrá mayor problema en cambiar de BD.
Access es un poco particular en ciertas cosas, por ejemplo si se hace una consulta con el generador que trae le pondrá una serie de corchetes o parentesis rectos, pero si se quitan siempre reconocerá la consulta, es algo particular, al igual que el signo de #.
Saludos

Dexter182 19-09-2011 22:42:17

OK. Muchas gracias por las aclaraciones.

Saludos y gracias de nuevo.


La franja horaria es GMT +2. Ahora son las 02:22:39.

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