PDA

Ver la Versión Completa : Excepción en consulta!!!


darkerbyte
21-04-2008, 06:38:02
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)

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:

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
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.