Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-10-2010
r1d2m3 r1d2m3 is offline
Miembro
 
Registrado: nov 2009
Posts: 88
Poder: 15
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.
Responder Con Cita
  #2  
Antiguo 26-10-2010
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
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;

Cita:
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.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Procedimiento almacenado que pueda consultar una base de datos diferente. fredycc Firebird e Interbase 3 15-04-2009 22:17:06
Como obtengo los datos con un procedimiento almacenado David Conexión con bases de datos 4 21-05-2007 13:05:27
Acceder otra base de datos en Procedimiento Almacenado Firebird mario_2000 Conexión con bases de datos 2 05-09-2006 17:35:27
Cómo creo un Procedimiento almacenado? Gabriel2 Firebird e Interbase 3 31-12-2004 10:02:43
Ejectutar Procedimiento Almacenado en otra Base de Datos AGAG4 Conexión con bases de datos 2 20-09-2004 21:12:44


La franja horaria es GMT +2. Ahora son las 12:08:38.


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