Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-04-2011
nejamube nejamube is offline
Miembro
 
Registrado: nov 2009
Ubicación: Buenos Aires
Posts: 65
Poder: 15
nejamube Va por buen camino
Thumbs up Ejecución Procedimiento Almacenado dbexpress

Hola.

Tengo un problema al ejecutar un procedimiento almacenado en Delphi 2010 con los drivers dbexpress.


El procedimiento funciona correctamente al ejecutarlo desde ibexpert, pero no se reflejan los cambios al hacerlo desde Delphi y si al hacerlo desde ibexpert. Supongo que hace falta hacer Commit, pero no sé cómo hacerlo para un procedimiento almacenado utilizando los drivers dbexpress.


Utilizo el componente TSQLStoredProc de la paleta de componentes en la pestaña dbexpress.

Esta es el código que tengo, así ejecuto otros procedimientos almacenados y funcionan correctamente, pero este no (otros procedimientos que uso son más simples).




Código Delphi [-]
 try
          with dmDatos.SQLStoredProcExistencia do
          begin
            Close;
            StoredProcName := 'TRASPASOINVENTARIO';
            ParamByName('PRODUCTO').AsInteger := StrToInt(grdDatos.Cells[0, i]);

            ParamByName('ALMACENDESTINO').AsInteger :=
              dmDatos.SQLStoredProcAlmacenD.ParamByName('clave').AsInteger;

            ParamByName('ALMACENORIGEN').AsInteger :=
              dmDatos.SQLStoredProcAlmacenO.ParamByName('clave').AsInteger;

            ParamByName('SOLICITADO').AsFloat := StrToFloat
              (grdDatos.Cells[3, i]);
            Prepared := true;
            ExecProc;
            Open;



          end;
        except
          on E: Exception do
            ShowMessage(E.Message);
        end;

Muchas gracias por su ayuda.
Responder Con Cita
  #2  
Antiguo 10-04-2011
nejamube nejamube is offline
Miembro
 
Registrado: nov 2009
Ubicación: Buenos Aires
Posts: 65
Poder: 15
nejamube Va por buen camino
Lightbulb Solucionado

Cita:
Empezado por nejamube Ver Mensaje
Hola.

Tengo un problema al ejecutar un procedimiento almacenado en Delphi 2010 con los drivers dbexpress.


El procedimiento funciona correctamente al ejecutarlo desde ibexpert, pero no se reflejan los cambios al hacerlo desde Delphi y si al hacerlo desde ibexpert. Supongo que hace falta hacer Commit, pero no sé cómo hacerlo para un procedimiento almacenado utilizando los drivers dbexpress.


Utilizo el componente TSQLStoredProc de la paleta de componentes en la pestaña dbexpress.

Esta es el código que tengo, así ejecuto otros procedimientos almacenados y funcionan correctamente, pero este no (otros procedimientos que uso son más simples).




Código Delphi [-] try with dmDatos.SQLStoredProcExistencia do begin Close; StoredProcName := 'TRASPASOINVENTARIO'; ParamByName('PRODUCTO').AsInteger := StrToInt(grdDatos.Cells[0, i]); ParamByName('ALMACENDESTINO').AsInteger := dmDatos.SQLStoredProcAlmacenD.ParamByName('clave').AsInteger; ParamByName('ALMACENORIGEN').AsInteger := dmDatos.SQLStoredProcAlmacenO.ParamByName('clave').AsInteger; ParamByName('SOLICITADO').AsFloat := StrToFloat (grdDatos.Cells[3, i]); Prepared := true; ExecProc; Open; end; except on E: Exception do ShowMessage(E.Message); end;


Muchas gracias por su ayuda.
No encontré otra forma de hacerlo, según lo que se el commit en dbexpress se hace así:

¿ Quizás sea un bug de dbexpress ?


Código Delphi [-] ExecProc;


Pero no funciono, asi que opte por hacerlo de esta manera:

Código Delphi [-]
          try
            Close;
            SQL.Clear;
            SQL.Add('select CLAVEORIGEN');
            SQL.Add('from traspasoinventario(');
            SQL.Add(Trim(dmDatos.SQLStoredProcAlmacenD.ParamByName('clave')
                  .AsString) + ',');
            SQL.Add(Trim(grdDatos.Cells[0, i]) + ',');
            SQL.Add(Trim(dmDatos.SQLStoredProcAlmacenO.ParamByName('clave')
                  .AsString) + ',');
            SQL.Add(Trim(grdDatos.Cells[3, i]) + ')');
            Open;
            Close;
          except
            on E: Exception do
              ShowMessage(E.Message);
          end;

Ojalá le sirva a alguien si tiene el mismo problema.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ejecucion de Procedimiento Almacenado DasGrun Firebird e Interbase 27 07-04-2011 17:27:17
Procedimiento almacenado efelix MS SQL Server 7 21-11-2007 18:53:00
Procedimiento Almacenado rodrigo19 Oracle 5 22-08-2007 23:55:40
Ejecución de procedimiento almacenado jfgaliano SQL 4 12-12-2005 12:36:15
procedimiento almacenado haron Firebird e Interbase 2 29-09-2003 02:09:56


La franja horaria es GMT +2. Ahora son las 01:43:32.


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
Copyright 1996-2007 Club Delphi