PDA

Ver la Versión Completa : Uso de LIMIT en un ADOQuery


Dexter182
17-09-2011, 17:08:05
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:

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:
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
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
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 (http://www.webexperto.com/articulos/art/242/sql-determinar-limite-en-consultas/) 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
PD: Estuve leyendo en WebExperto (http://www.webexperto.com/articulos/art/242/sql-determinar-limite-en-consultas/) 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.

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:


Access SQL: conceptos básicos, vocabulario y sintaxis (http://office.microsoft.com/es-es/access-help/access-sql-conceptos-basicos-vocabulario-y-sintaxis-HA010256402.aspx)
Manual del lenguaje SQL del motor Microsoft Jet versión 4.0 (http://www.mvp-access.es/softjaen/manuales/sql/index.htm)
Ejemplos de lenguaje sql para Access (http://www.sqlraipon.blogspot.com/)


Un saludo.

Dexter182
19-09-2011, 21:48:28
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.

Aunque no utilizo ninguno, por lo que he leido, la sintáxis que usan no es muy diferente.
OK. Muchas gracias.

Encontré estos enlaces que quizá te sirvan de ayuda:
Access SQL: conceptos básicos, vocabulario y sintaxis (http://office.microsoft.com/es-es/access-help/access-sql-conceptos-basicos-vocabulario-y-sintaxis-HA010256402.aspx)
Manual del lenguaje SQL del motor Microsoft Jet versión 4.0 (http://www.mvp-access.es/softjaen/manuales/sql/index.htm)
Ejemplos de lenguaje sql para Access (http://www.sqlraipon.blogspot.com/)¡¡¡ 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.