Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Bases de datos > MS SQL Server
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 26/10/2010
r1d2m3 r1d2m3 is offline
Miembro
 
Join Date: Nov 2009
Posts: 88
Poder: 17
r1d2m3 Va por buen camino
como acceso a los datos que devuelve un procedimiento almacenado?

Hola a todos, estoy creando unos procedimientos almacenados en MySQL para que luego sean consumidos desde una aplicación en delphi, el mi código estoy usando el componente TADOCommand para ejecutar el sp, hasta aquí todo bien, peeero, siempre hay un pero, ¿como hago para devolver el contenido del sp en un componete TADOQuery?, ¿existe la forma de llenar un TADOQuery con un sp?.

Les pego un pequeño código de ejemplo de lo que intento hacer:

Código Delphi [-]

  function SPListMovimCarpe(varConexBD:TADOConnection; varIdCarpe:Integer) : TADOQuery;
  var
    consu:TADOQuery;
    sproc:TADOCommand;
  begin
    consu:=TADOQuery.Create(nil);

    sproc:=TADOCommand.Create(nil);
    with sproc do
    begin
      CommandType := cmdStoredProc;
      Connection := varConexBD;
      CommandText := 'sproc_listMovCarpe';
      Parameters.Refresh;
      Parameters.ParamByName('@idCarpe').Value:=varIdCarpe;
      Execute;
      //aquí es donde tengo el problema, ¿como devuelvo el contenido del sp?.
      //Execute me devuelve un tipo ADOInt._Recordset y no se como manejarlo
      //para que lo devuelva como un TADQuery.
    end;
  end;

Saludos y quedo a la espera de alguna ayuda al respecto.
Reply With Quote
  #2  
Old 26/10/2010
Al González's Avatar
[Al González] Al González is offline
In .pas since 1991
 
Join Date: May 2003
Posts: 5,610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola.

Nunca hice eso con ADO, pero leyendo la ayuda de Delphi respecto al método TADOCommand.Execute, creo que tendrías que cambiar una de las sentencias:

Código Delphi [-]
  consu.Recordset := Execute;

Quote:
When a command is executed that creates a recordset, Execute returns the recordset and it must be accessed through an ADO dataset component. To do this, assign the return value of Execute directly to the recordset property of an ADO data set component. For example:

ADODataSet1.Recordset := ADOCommand1.Execute;
No olvides destruir los objetos TADOCommand y TADOQuery cuando ya no los necesites.

Saludos.

Al González.
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Procedimiento almacenado que pueda consultar una base de datos diferente. fredycc Firebird e Interbase 3 15/04/2009 21:17
Como obtengo los datos con un procedimiento almacenado David Conexión con bases de datos 4 21/05/2007 12:05
Acceder otra base de datos en Procedimiento Almacenado Firebird mario_2000 Conexión con bases de datos 2 05/09/2006 16:35
Cómo creo un Procedimiento almacenado? Gabriel2 Firebird e Interbase 3 31/12/2004 09:02
Ejectutar Procedimiento Almacenado en otra Base de Datos AGAG4 Conexión con bases de datos 2 20/09/2004 20:12


All times are GMT +2. The time now is 23:07.


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