Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   HELP (procedimiento almacenado en firebird ) (https://www.clubdelphi.com/foros/showthread.php?t=36465)

voldemmor 12-10-2006 22:10:43

HELP (procedimiento almacenado en firebird )
 
hola amigos disculpad la molestia.
Hago el siguiente Procedimiento en Firebird 1.5

SET TERM ^ ;

CREATE PROCEDURE SP_MODIFICA_EMPRESA(
CODIGO CHAR(1) CHARACTER SET WIN1251,
NRUC VARCHAR(13) CHARACTER SET WIN1251,
NNOMBRE VARCHAR(50) CHARACTER SET WIN1251,
NRESPONSABLE VARCHAR(50) CHARACTER SET WIN1251,
NDIRECCION VARCHAR(50) CHARACTER SET WIN1251,
NIVA NUMERIC(15, 2))
AS
BEGIN
/* Procedure body */
UPDATE DATOS
SET RUC = :NRUC,
NOMBRE = :NNOMBRE,
RESPONSABLE = :NRESPONSABLE,
DIRECCION = :NDIRECCION,
IVA = :NIVA
WHERE
COD = :CODIGO;


END^


el problema es que al probarlo no realiza la accion supuesta (actualizar el registro)
sale un mensaje de 0 registros afectados
podrias ayudarme

maeyanes 12-10-2006 23:05:55

Pues si no se afectan registros es por que de seguro no existe ningún registro igual a CODIGO...

Otra cosa, veo que CODIGO está definido como CHAR(1), no se si sea un error que tuviste al declarar el procedimiento o esa sea la longitud que usa el campo COD de la tabla...



Saludos...

voldemmor 13-10-2006 17:37:23

char(1)
 
La verdad es que el campo codigo es tan solo ficticio ya que solo contara la tabla con 6 registros y por eso le puse char[1] para agilizar las cosas.
Bueno al probarlo escribo un codigo (1) para probarlo y se que existe puesto lo acabo de ingresar y al ejecutar el SP no me afecta a este registro

maeyanes 13-10-2006 17:44:59

Se me hace que tu problema es con las transacciones...

Desde donde estás haciendo las pruebas? Algún manejador de bases de datos para Firebird/Interbase o desde tu aplicación en desarrollo?



Saludos...

Lepe 13-10-2006 18:01:03

¿como ejecutas el SP?
- porque si lo ejecutas como:
execute procedure SP_MODIFICA_EMPRESA(1, 'resto de parámetros'...)

Realmente no está recibiendo el caracter '1', sino el código ascii de dicho caracter.

Creo que se debería ejecutar más o menos:
execute procedure SP_MODIFICA_EMPRESA('1', 'resto de parámetros'...)

¿acierto o divago? :D

Saludos

voldemmor 13-10-2006 19:01:43

desde un manejador
 
El sp lo creo y lo pruebo en un manejador para interbase/firebird EMS manager 2005

Y da la facilidad de un asistente para estas tareas y lo ejecuto por este asistente.

Ya voy a probarlo desde la aplicacion a ver que pasa


La franja horaria es GMT +2. Ahora son las 14:10:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi