Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   FireBird row_count (https://www.clubdelphi.com/foros/showthread.php?t=8586)

injavies 26-03-2004 12:21:23

FireBird row_count
 
Hola como estan todos?

Mi problema:

Necesito confirmar si el insert, update se hay realizado correctamente, me fije en la Nota (Firebird_v15.108_ReleaseNotesSpanish) y ahi me dice que tengo que usar row_count en un trigger o procedimiento almacenado, el problema es que cuando la uso el Firebird-1.5.0.4306-Win32 no recomoce la instruccion (row_count).

Istale el Firebird-1.5.0.4306-Win32 sin ninguna actualizacion (releace candidate)

Creo que esta es la definitiva de FireBird

Desde ya muchas gracias

PepeLolo 30-03-2004 19:36:53

Sí el proceso de grabación lo encuadras dentro de un Try Except. Sí hubiera algun fallo durante la grabación del registro, el proceso entraria por la sentencia Except. Donde podras evaluar cual fue el error producido durante el proceso.

Sí no entra en el Except es que todo sucedio correctamente
Saludos.

jachguate 30-03-2004 19:43:39

No necesariamente....

Si haces un Update o Delete, via SQL, el update no devolverá error, aun cuando no se haya actualizado ningun registro. Es diferente con el insert, que si que elevará una excepción.

No indicas que componentes usas.. si es BDE, simplemente mirá la propiedad RowsAffected del TQuery.

Hasta luego.

;)

jachguate 30-03-2004 19:44:41

cabe aclarar que esta versión ya no es un Release Candidate (rc). Es el Release definitivo de la 1.5

Hasta luego.

;)

Gydba 30-03-2004 21:48:34

Tal vez sería útil investigar sobre los triggers y eventos.

injavies 31-03-2004 12:35:13

Hola

disculpen pero creo que no se entendio bien mi pregunta, va otra vez:

Lo que yo quiero es poder controlar en un procedimiente almacenado luego de un insert delete o update si la operacion se realizo. Para esto hay en fireBird el comando ROW_Count que se usa de la siguiente manera


ROW_COUNT: Devuelve un entero, el número de registros involucrados en la última sentencia DML. Disponible en PSQL, en el contexto del trigger o procedure. Actualmente devuelve cero tras una sentencia SELECT.

UPDATE TABLE1 SET FIELD1 = 0 WHERE ID = :ID;
IF (ROW_COUNT = 0) THEN
INSERT INTO TABLE1 (ID, FIELD1) VALUES (:ID, 0);

el tema es que cuando compilo me da error en el comando ROW_COUNT, no lo reconoce

no se si me falta algo o que ?

bueno gracias y hasta pronto

injavies 31-03-2004 14:48:09

Hola

ya soluciones lo del ROW_COUNT.

No me di cuenta que al crear la base de datos la habia creado con Dialecto 1 y bueno.... tenia que ser con Dialecto 3

Gracias


La franja horaria es GMT +2. Ahora son las 22:09:47.

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