Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Error al Actualizar registros en portgresql con c#

Estas en el tema de Error al Actualizar registros en portgresql con c# en el foro de PostgreSQL en Foros del Web. Hola a todos espero me puedan ayudar, estoy una actualización de registros desde C# asciendo unos de una función , pero al momento de actualizar ...
  #1 (permalink)  
Antiguo 25/11/2010, 12:07
 
Fecha de Ingreso: agosto-2007
Mensajes: 12
Antigüedad: 17 años, 3 meses
Puntos: 0
Información Error al Actualizar registros en portgresql con c#

Hola a todos espero me puedan ayudar, estoy una actualización de registros desde C# asciendo unos de una función , pero al momento de actualizar no realiza la actualización desde c# , pero en el transac del postgresql si lo hace la actualización del registro. acá les dejo el código que echo, de antemano agradezco a sus respuestas
Código SQL:
Ver original
  1. CREATE TABLE ALMACEN.TIPO_ALMACEN
  2. (
  3.     IDTIPO_ALMACEN       CHAR(4)  NOT NULL ,
  4.     DESCRIPCION          VARCHAR(30)  NULL ,
  5.     ABREV                VARCHAR(10)  NULL ,
  6.     ESTADO               CHAR(1)  NULL
  7.  
  8. )
  9.  
  10.  
  11.  
  12. CREATE OR REPLACE FUNCTION Update_Tipo_almacen(item_id CHAR(4),descrip VARCHAR(30),desc_abrev CHAR(10),std CHAR(1))
  13. RETURNS void AS
  14. $BODY$
  15. DECLARE
  16. --   loc_result    CHAR(50);
  17. BEGIN
  18. UPDATE ALMACEN.TIPO_ALMACEN
  19.  SET
  20.     DESCRIPCION    = descrip,
  21.     ABREV    = desc_abrev,
  22.     ESTADO     = std
  23. WHERE IDTIPO_ALMACEN = item_id;
  24. END;
  25. $BODY$
  26. LANGUAGE 'plpgsql' VOLATILE;



Código VB:
Ver original
  1. NpgsqlCommand Exec;
  2.  
  3.  public    int  ActualizarRegistro(LayerIdentidad.Almacen.Almacen.IdTipAlmacen IdCls)
  4.         {
  5.  
  6.  
  7.             SIGConnection.OpenConnection();
  8.             Exec = new NpgsqlCommand("Update_Tipo_almacen", SIGConnection.Connection);
  9.             Exec.CommandType = CommandType.StoredProcedure;
  10.             Exec.Parameters.Add(":item_id", NpgsqlTypes.NpgsqlDbType.Char, 4).Value = IdCls.IdReg;
  11.             Exec.Parameters.Add(":descrip", NpgsqlTypes.NpgsqlDbType.Varchar, 30).Value = IdCls.Descripcion;
  12.             Exec.Parameters.Add(":desc_abrev", NpgsqlTypes.NpgsqlDbType.Varchar, 10).Value = IdCls.Desc_avreiada;
  13.             Exec.Parameters.Add(":std", NpgsqlTypes.NpgsqlDbType.Char, 1).Value = IdCls.Estado;
  14.           //  Exec.Parameters.Add(":existe:", NpgsqlTypes.NpgsqlDbType.Boolean).Direction = ParameterDirection.Output;
  15.             try
  16.             {
  17.                 Res = Exec.ExecuteNonQuery();
  18.            
  19.             }
  20.             catch (Exception) { }
  21.             finally
  22.             {
  23.                 Exec.Dispose();
  24.                 SIGConnection.CloseConnection();
  25.             }
  26.             return Res;
  27.  
  28.  
  29.  
  30.  public int  ActualizarRegistro(LayerIdentidad.Almacen.Almacen.IdTipAlmacen IdCls)
  31.         {
  32.             return data.ActualizarRegistro(IdCls);
  33.         }
  34.  
  35.  
  36.  LayerLogic.Almacen.Almacen.LogTipAlmacen Log1 = new LayerLogic.Almacen.Almacen.LogTipAlmacen();
  37.                             LayerIdentidad.Almacen.Almacen.IdTipAlmacen Id1 = new LayerIdentidad.Almacen.Almacen.IdTipAlmacen();
  38.                             Id1.IdReg = TxtId.Text;
  39.                             Id1.Descripcion = TxtDesc.Text;
  40.                             Id1.Desc_avreiada = TxtDesAbr.Text;
  41.                             Id1.Estado = "0";
  42.                             MessageBox.Show(Log1.ActualizarRegistro(Id1).ToString ());
  43.                             if (Log1.ActualizarRegistro(Id1) ==   1)
  44.                             {
  45.                                 Utilidades.MensajeOk("Registrado Actualizado  Correctamente");
  46.                             }
  47.                             else
  48.                             {
  49.                                 Utilidades.MensajeAlerta("Error. En la Actualización de Datos.");
  50.                             }
  51.  
  52.        
  53.  
  54.            
  55.         }
  #2 (permalink)  
Antiguo 25/11/2010, 12:18
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Error al Actualizar registros en portgresql con c#

Ylatoma no estoy seguro, pero noté que tu función devuelve un void.
Si no me falla la memoria este tipo de funciones se deben ejecutar con el comando PERFORM yno como normalmente se ejecutan las funciones.

Prueba haciendo la función retornando un text (o cualquier otra cosa) y mira si de esta forma si se ejecuta bien el procedimiento desde vb.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 25/11/2010, 20:24
 
Fecha de Ingreso: agosto-2007
Mensajes: 12
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Error al Actualizar registros en portgresql con c#

hola lo echo retornado un un valor de tipo character

de la siguiere manera
Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION Update_Tipo_almacen(item_id CHAR(4),descrip VARCHAR(30),desc_abrev CHAR(10),std CHAR(1))
  2. RETURNS CHARACTER AS
  3. $BODY$
  4. DECLARE
  5.    loc_result    CHAR(50);
  6. BEGIN
  7. UPDATE ALMACEN.TIPO_ALMACEN
  8.  SET
  9.     DESCRIPCION    = descrip,
  10.     ABREV    = desc_abrev,
  11.     ESTADO     = std
  12. WHERE IDTIPO_ALMACEN = item_id;
  13. IF FOUND THEN
  14.   loc_result = 'T';
  15. ELSE
  16.   loc_result = 'F';
  17. END IF;
  18. RETURN loc_result ;
  19.  
  20. END;
  21. $BODY$
  22. LANGUAGE 'plpgsql' VOLATILE;
  #4 (permalink)  
Antiguo 25/11/2010, 21:08
 
Fecha de Ingreso: agosto-2007
Mensajes: 12
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Error al Actualizar registros en portgresql con c#

en esta panttalla se muestra k si se puede actualizar desde el mismo postgresql
pero al momento de ejecutar la actualización no realiza la actualización .

como se muestra en segunda imagen retorna menos uno al ejecutar el procedimiento desde C#










Última edición por Ylatoma; 25/11/2010 a las 21:17

Etiquetas: registros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:28.