Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Cambio de Stored Procedure (https://www.clubdelphi.com/foros/showthread.php?t=21684)

Juanito-Kun 24-05-2005 23:21:19

Cambio de Stored Procedure
 
Hola otra ves :cool: ..

TEngo el siguiente problema:

Tengo un Objeto ADOStoredProc el cual manejo para hacer todas mis operaciones(Insert, Update, Delete)... lo que quiero hacer es hacer el cambio de stored procedure cuando sea el caso..


utilizo lo siguiente:
//Borro los parametro(eso piendo):confused:
ADOStoredProc2.Parameters.Clear;
//Coloco el nuevo Stored procedure :confused:
ADOStoredProc2.ProcedureName:=('update_Grupo_1;1');
//Asigno valores a los parametros
ADOStoredProc2.Parameters.ParamValues['@id_1']:=StrToInt(Edit1.Text);
ADOStoredProc2.Parameters.ParamValues['@Grado_2']:=Edit2.Text;
ADOStoredProc2.Parameters.ParamValues['@Grupo_3']:=Edit3.Text;
///Ejecuto el Proceso.
ADOStoredProc2.ExecProc;

Esto es lo que hago despues de hacer un insert... osea inserto y si quiero actualizar otro campo cambio del stored procedure me marca: que no encontro los parametro.. diganme que estoy haciendo mal :D:p

de ante mano Gracias!!:D

lgarcia 24-05-2005 23:47:57

Cambio de SP
 
Hola

Me parece que lo que te falta es la sentencia Prepared:= True; que va antes de ejecutarlo (ExecProc). Para que tu codigo sea mas compacto por que no utilizas el with StoredProcedure y te ahorras mucho codigo.

Saludos
Luis Garcia

_____________________________
La mejor manera de decir es hacer

Juanito-Kun 25-05-2005 00:38:40

Cambio de Stored Procedure
 
Tanks por responder... perdona mi ignorancia... pero como utilizo el With en esto.. me podrias decir...

Gracias !! :D

Juanito-Kun 25-05-2005 01:52:02

Cambio de Stored Procedure
 
Ok, lo hice con el with.. quedo asi:

with ADOStoredProc2 do
begin
Parameters.Clear;
ProcedureName:=('ActualizarGru;1');
Parameters.ParamValues['@ID']:=StrToInt(Edit1.Text);
Parameters.ParamValues['@Grado']:=Edit2.Text;
Parameters.ParamValues['@Grupo']:=Edit3.Text;
Prepared:=True;
ExecProc;
end;

pero me sigue marcando el mismo error, que no encuentra los parametros... :(

lgarcia 25-05-2005 14:28:57

Cambio de SP
 
Hola

Nunca he trabajado usando la propiedad ProcedureName pasandole el nombre del SP en tiempo de ejecucion, hice una prueba y me da el mismo error que a ti. Pero se que se puede hacer porque yo he visto a un colega mio realizar esa operacion. Seguire buscando.

Saludos
Luis Garcia

_____________________________
La mejor manera de decir es hacer

Juanito-Kun 25-05-2005 23:14:25

Cambio de Stored Procedure Resuelto!!
 
Bueno al parecer solo faltaba la instruccion para refrescar los paremetros :p

with ADOStoredProc2 do
begin
Parameters.Clear;
ProcedureName:=('ActualizarGru;1');
Prepared:=True;

Parameters.Refresh;

Parameters.ParamValues['@ID']:=StrToInt(Edit1.Text);
Parameters.ParamValues['@Grado']:=Edit2.Text;
Parameters.ParamValues['@Grupo']:=Edit3.Text;
ExecProc;
end;
ADODataSet1.Refresh;
end;

Con esto me funciono todo bien, me cambia el Stored procedure con sus parametros corespondientes.

Gracias a todos!!! y saludos :D

Juanito-Kun 30-05-2005 16:24:45

Cambio de Stored Procedure 2
 
Oks, disculpen..

EL ultimo codigo me dio algunos problemas. cuando lo ejecutaba por segunda ves...

el codigo que les menciono ahora es el que estoy usando en la aplicacion y funciona excelente::D

Código:

dmConocimiento.AdoOpePre2.Parameters.Clear;
dmConocimiento.AdoOpePre2.ProcedureName:=('ActualizarPre;1');
dmConocimiento.AdoOpePre2.Parameters.Refresh;
dmConocimiento.AdoOpePre2.Parameters.ParamValues['@ID']:=StrToInt(EID.Text);
dmConocimiento.AdoOpePre2.Parameters.ParamValues['@TipoT']:=StrToInt(ETema.Text);
dmConocimiento.AdoOpePre2.Parameters.ParamValues['@descripcion']:=EDescripcion.Text;
dmConocimiento.AdoOpePre2.Parameters.ParamValues['@Estado']:=StrToInt(EEstado.Text);
dmConocimiento.AdoOpePre2.Parameters.ParamValues['@Responsable']:=Eresponsable.Text;
dmConocimiento.AdoOpePre2.Parameters.ParamValues['@Fecha']:=StrToDate(EFecha.Text);
dmConocimiento.AdoOpePre2.ExecProc;
dmConocimiento.AdoConPre.Refresh;

Saludos!!! :p


La franja horaria es GMT +2. Ahora son las 15:48:15.

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