Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 18-02-2017
sabroso sabroso is offline
Miembro
NULL
 
Registrado: feb 2017
Posts: 13
Poder: 0
sabroso Va por buen camino
Cita:
Empezado por rgstuamigo Ver Mensaje
Y dónde estas creando el parámetro '_TERMINAL'?
Lo que esta diciendo es que el componente TZStoredProc no tiene ningun parámetro creado por lo que no se puede acceder a ninguno.
Quisas deberías crearlo en tiempo de ejecución algo asi:
Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var SProc:TZStoredProc;
begin
SProc:= TZStoredProc.Create(Self);
  try
    SProc.Connection := dm.Conecta;
    Sproc.StoredProcName:= 'SP_EJECUTA_XXX_YYY_ZZZ';
    Sproc.Params.CreateParam(ftString,'_TERMINAL',ptInput);//creo un parámetro string de entrada
    Sproc.Active:= False;//esta lines es innecesaria ya que por defecto se crea con Active=False
    Sproc.Params[0].AsString:= QuotedStr(gs_terminal);//el primer parametro se encuentra en la
        // posición cero (0) y no en uno(1).
    Sproc.ExecProc;
   finally
   SProc.Free;//liberamos y destruimos para no tener fugas de  memoria
   end;
end;
Sin olvidar que cuando creas un objeto debes eliminarlo cuando ya no lo necesites para no tener memoria reservado sin estar ocupandose..
Por si acaso en lo personal ami no megusta usar el componente TZStoredProc en su lugar yo uso un TZQuery y en su propiedad SQL llamo a mi procedimiento almacenado; en tu caso sería mas o menos asi:



Código Delphi [-]
 procedure TForm1.Button4Click(Sender: TObject);
var MyQuery:TZQuery;
begin
   MyQuery:=TZQuery.Create(Application);
   try
     MyQuery.Connection:=dm.Conecta;

     //si nuestro procedimiento no tiene parametro de entrada entoces seria asi
     MyQuery.SQL.Text:='Call SP_EJECUTA_XXX_YYY_ZZZ();';
     // ó
     //si nuestro procedimiento tiene parametro de entrada entoces seria asi
     MyQuery.SQL.Text:='Call SP_EJECUTA_XXX_YYY_ZZZ(:Parametro1,:Parametro2);'; //Al poner dos puntos (:) Delphi 
      //crea los parámetros automáticamente 

     MyQuery.ParamByName('Parametro1').AsString:=Lo_que_Sea;
     ...
     ...
     MyQuery.Open;
   finally
    MyQuery.Free;
   end;

end;
Espero que te sea de utilidad.
Saludos...



Y como seria el código a incluir en su la propiedad SQL para llamar al procedimiento almacenado?
Responder Con Cita
 



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
Problema con Zeos + Stored Procedure+ MySql makina Conexión con bases de datos 4 18-02-2017 04:04:29
Stored Procedure StartKill MySQL 2 27-08-2008 06:18:44
For dentro de un Stored Procedure en IB alapaco Firebird e Interbase 2 24-07-2006 18:10:19
Ver los Stored Procedure tgsistemas SQL 0 06-04-2004 17:18:22
Stored Procedure tgsistemas SQL 1 27-02-2004 13:10:33


La franja horaria es GMT +2. Ahora son las 05:38:56.


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