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)
-   -   Excepción en consulta!!! (https://www.clubdelphi.com/foros/showthread.php?t=55569)

darkerbyte 21-04-2008 06:38:02

Excepción en consulta!!!
 
Saludos, estimados colegas.

Pues ya me tienen otra vez aquí, solicitando de su valiosícima ayuda.
Esta vez deseo que me auxilien con un error que me sale al hacer una consulta.
Estoy haciendo un punto de venta. Cuando el usuario termina la venta y cobra el programa debe actualizar el inventario en una tabla llamada productos.
Tambíen dene insertar la venta en dos tablas, una que se llama 'venta' que
contiene datos de la venta como la fecha, cliente, cajero, etc.
Y la tabla 'pedidos' que contiene los detalles de la venta (esto es
numero de venta, clave del producto, cantidad, precio de venta, etc);
Usando diferentes algoritmos que incluyen hacer consultas a la base de datos
para verificar la existencia suficiente de los productos genero la siguiente
consulta (ejemplo)

Código SQL [-]
lock tables pedidos write, ventas write, productos write;
INSERT INTO ventas VALUES ('8','2008-04-20','1','3');
INSERT INTO pedidos VALUES('8','BIC-002','1','1','3800','4700');
UPDATE productos set almacen=9, exhibicion=1 where clave='BIC-002';
UNLOCK TABLES;

Despues mando a ejecutar la consulta, el procedimiento es este:

Código Delphi [-]
Dm.ZQ.Close;
Dm.ZQ.SQL.Clear;
DM.ZQ.SQL:=consulta;
DM.ZQ.ExecSQL;
consulta.Free;

Donde DM es un DataModule, ZQ es una ZQuery de ZeosLib ver 6.1, consulta es unTstrings que contiene la consulta arriba mencionada.

Luego cuando ejecuto la consulta me manda una exepción:

Project SISTAR.exe raised exception class EZSQLException with message
'SQL Error: You have an erro in your SQL syntax; check the manual thant corresponds to your MySQL server version for the right syntx to use near'
;INSERT INTO ventas VALUES ('8','2008-04-20','1','3');
INSERT INTO PEDIDOS VA
'at line 1'.
Process stopped. Use Step or Run to continue.

No se porqué manda error la consulta, he generado varias consultas con el programa (las capturo en un memo en vez de mandarlas a DM.ZQ) y las ejecuto en la consola tal cual y no me marca errores en la consola, pero si me marca error desde Delphi.

La conexión está bien, la sintaxis, segun la consola está bien, pero no entiendo porqué el error.
La base de datos está en MySQL 5, y trabajo sobre Delphi 7

Les agradecería enormemente que me ayudaran, necesito entregar el programa el día 23 de abril en la mañana y esto es practicamente lo único que me falta.

jcarteagaf 21-04-2008 06:57:16

Pues no se en MySQL pero al usar los componentes Zeos sobre Oracle teniamos un problema parecido debido al formato de fecha, enviabamos en formato DD/MM/YYYY y el motor esperaba en formato MM/DD/YYYY, sin embargo el error no era muy especifico (como en tu caso) Podria ser eso. Dale una revisada.

Saludos

Lepe 21-04-2008 10:49:53

En un ZQuery no podrás meter todas esas instrucciones en el sql, porque solo te admite una.

¿Zeos tiene un componente llamado ZScript? me parece que no, así que debes ir enviando una a una las instrucciones, ejecutar el query y cambiar a la siguiente instrucción SQL.

Saludos

eduarcol 21-04-2008 15:48:50

Tiene un ZSqlProcessor que me imagino debe servir para lo mismo

roman 21-04-2008 16:38:46

darkerbyte:

Acabo de quitar el texto "Ayuda urgente" del título de tu mensaje. Te recuerdo que en estos foros no existe el concepto de urgencia.

// Saludos

darkerbyte 21-04-2008 22:15:51

Ooops
 
Cita:

Empezado por roman (Mensaje 281440)
darkerbyte:

Acabo de quitar el texto "Ayuda urgente" del título de tu mensaje. Te recuerdo que en estos foros no existe el concepto de urgencia.

// Saludos

Disculpen, creo que la presión nubló mi entendimiento.:D

Entiendo, entonces tengo que utilizar el Zsecuence. Mmmm... si tan solo hubiera documentación sobre ZeosLib, nos haría mas fácil la vida.

Bueno voy a seguirle buscando. Gracias por su ayuda. Pero si alguien puede darme un poco de mas luz sobre el asunto, les estaré muy agradecido.


La franja horaria es GMT +2. Ahora son las 07:57:10.

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