PDA

Ver la Versión Completa : Al actualizar el Id_CierreZ se cuelga el programa.


JairoC
21-06-2012, 03:58:58
Hola gente del foro! Estoy haciendo un sistema de facturación. Una de las tablas son FACTURADEVENTAS y CIERREZ. Donde la tabla FACTURADEVENTAS tiene como clave secundaria el campo ID_CIERREZ. Al generar la factura de venta, el campo ID_CIERREZ, lo inserto vacío.
Al finalizar el dia, genero el CIERRE Z. Y luego quiero recorrer la tabla FACTURASDEVENTAS para acutalizarle el ID_CIERREZ correspondiente.
Este es el código:

with(dm.IBQuery_general)do
begin
FieldDefs.Clear;
SQL.Clear;
SQL.Add('update FACTURASDEVENTAS set id_cierrez=:cierre where id_cierrez is null');
ParamByName('cierre').AsInteger:=num_cierre;
Open; //ACÁ SE CUELGA
end;

El problema es que se me cuelga el programa al hacer el Open y no responde. Desde ya muchas gracias!!!

olbeup
21-06-2012, 08:28:49
Hola gente del foro! Estoy haciendo un sistema de facturación. Una de las tablas son FACTURADEVENTAS y CIERREZ. Donde la tabla FACTURADEVENTAS tiene como clave secundaria el campo ID_CIERREZ. Al generar la factura de venta, el campo ID_CIERREZ, lo inserto vacío.
Al finalizar el dia, genero el CIERRE Z. Y luego quiero recorrer la tabla FACTURASDEVENTAS para acutalizarle el ID_CIERREZ correspondiente.
Este es el código:

with(dm.IBQuery_general)do
begin
FieldDefs.Clear;
SQL.Clear;
SQL.Add('update FACTURASDEVENTAS set id_cierrez=:cierre where id_cierrez is null');
ParamByName('cierre').AsInteger:=num_cierre;
Open; //ACÁ SE CUELGA
end;

El problema es que se me cuelga el programa al hacer el Open y no responde. Desde ya muchas gracias!!!

El "Open" se utiliza para la sentencia "SELECT" que es para cuando te devuelven registros
El "ExecSQL" se utiliza para las sentencias "DELETE, UPDATE e INSERT"

Espero que en futuras "Open", "ExecSQL" sepas cual utilizar.

Un saludo.

JairoC
22-06-2012, 02:27:09
Hola olbeup! Muchas gracias. Probé con ExecSQL, pero sigue igual. Hay otra forma de hacerlo como lo estoy haciendo? Un saludo...

olbeup
22-06-2012, 07:57:18
No hay otra forma de ejecutar una consulta SQL, se hace con "Open" o "ExecSQL", es posible que tu DB esté corrupta, también lo que puedes probar es con el ibexpert para ver si hace lo mismo.

Un saludo.

JairoC
22-06-2012, 20:09:09
Bueno gracias!!! Voy a verificar bien la los campos de la Base... Un saludo...