FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Procedimiento almacenado desde Delphi
Hola a todos,
Como puedo llamar a un procedimiento almacenado desde delphi, estoy usando ADO. El codigo del procedure es:
|
#2
|
|||
|
|||
SP desde Delphi
Hola:
Para llamar un SP desde Delphi debes hacer lo siguiente tienes que poner un ADOStoredProcedure en el formulario realizar la conexion con la BD y buscar el nombre del procedimiento en la propiedad procedurename y despues usar el siguiente codigo Código:
with Insertar do begin Parameters.ParamByName('@cat_name').Value:= editcatname.Text; Parameters.ParamByName('@cat_description').Value:= editcatname.Text; Prepared:= True; ExecProc; end; Luis Garcia |
#3
|
|||
|
|||
Gracias por tu ayuda,
Hice lo que me dijiste, pero me sale un error: Insertar: Paramater '@cat_name' not found Gracias nuevamente Uso SQLServer 2000 |
#4
|
|||
|
|||
Ya esta solucionado,
Lo q pasa es que el componente hacia referencia a otro SP jejej Gracias Y como seria el codigo para recibir un parametro de salida, ejemplo q me devuelva el codigo de la categoria. Última edición por hmv fecha: 28-10-2006 a las 19:29:59. |
#5
|
||||
|
||||
alternativa al proc
En delphi, ademas de crear una instancia del procedimiento almacenado para ejecutarlo, existe alguna otra?
Lo pregunto por que deseo solo llamar al procedimiento sin tener la necesidad de crear una instancia ADOStoreProcedure de antemano agradezco su apoyo |
#6
|
||||
|
||||
dudas proc
Hola de nuevo, espero contar con su apoyo:
tengo un proc almacenado llamado Calcular que recibe un parametro entero > ALTER procedure CALCULAR @folio int cuando lo ejecuto desde el analizador de consultas de SQL todo correcto. > Execute Calcular 103 --asi llamo Pero cuando quiero ejecuar desde Delphi me aparece que el campo no lo encuentra: "StoredProc:Parameter '@folio' not found" He intentado de varias formas, agregue el TstoredProc y el folio lo tomo de un Tedit: try StoredProc.DatabaseName:='nomDB'; StoredProc.StoredProcName:='Calcular'; //storedProc.Params.ParamByName('@folio').AsInteger:=StrToInt(Folio.Text); //storedProc.Params.ParamByName('folio').AsInteger:=StrToInt(Folio.Text); //storedProc.ParamByName('@folio').AsInteger:=StrToInt(Folio.Text); //storedProc.ParamByName('@folio').Value:=StrToInt(Folio.Text); //storedProc.ParamByName('@folio').Value:=Folio.Text; //storedProc.ParamByName('folio').Value:=Folio.Text; //storedProc.Params.ParamByName('@folio').Value:=Folio.Text; //storedProc.Params.ParamValues['@folio']:=Folio.Text; storedProc.Params.ParamValues[Folio.Text]; storedProc.Prepared:=true; storedProc.ExecProc; Finally storedProc.Free; end; Entiendo que el parametro lo tengo que enviar de alguna de estas maneras pero coloque lo que coloque aparece siempre esa leyenda. supongo que me falta hacer algo pero no tengo idea que. uso la version SQL 8.0 y borlanddelphi 7.0 gracias x su apoyo |
#7
|
||||
|
||||
solucion
Despues de varias pruebas, ya tengo incluso varias soluciones:
//***con un storedproc try storedProc1.DatabaseName:='DataBase'; storedProc1.StoredProcName:='Calcular'; storedProc1.Params.Clear; folio_:=TParam.Create(storedProc1.Params, ptInput); storedProc1.Params[0].Name:='folio'; storedProc1.ParamByName('folio').AsInteger:=StrToInt(Folio.Text); storedProc1.ExecProc; except //manejo de error end; //****con un adoStoredProc StoredProc.Connection:=Adoconnection; StoredProc.ProcedureName:='Calcula'; storedProc.Parameters.AddParameter; try StoredProc.Parameters[0].Value:=Folio.Text; StoredProc.ExecProc; except begin //manejo de error end; end; //****con un adoCommand Command.CommandType:=cmdStoredProc; Command.Connection:=Adoconnection; Command.CommandText:='Calcula'; try Command.Parameters.Refresh; Command.Parameters.ParamByName('@folio').Value:=folio; Command.Execute; except begin //manejo de error end;//except end; Lo escribo por si a algun novato como yo le es de ayuda |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
insertar desde un procedimiento almacenado | Gabriel2 | Firebird e Interbase | 5 | 28-10-2005 18:48:29 |
Desactivar trigger desde procedimiento almacenado | oliverinf | Firebird e Interbase | 5 | 09-10-2004 17:17:45 |
Crear un proceso almacenado desde Delphi | chemoide | Firebird e Interbase | 1 | 09-09-2004 14:41:05 |
Procedimiento Almacenado | Ulises | Providers | 3 | 30-01-2004 19:14:58 |
Como Ejecutar Un Query Desde Un Procedimiento Almacenado | multisof | Firebird e Interbase | 2 | 04-11-2003 07:15:28 |
|