FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
cargar un EDIT con el resultado de un AdoStoredProc
Hola a todos,soy nuevo en delphi también.
Estoy usando la versión 7 y tengo un simple procedimiento almacenado en Sql Server que me tiene que devolver solamente un NOMBRE y ese resultado..quiero ponerlo en un EDIT, como sería la sintaxis?? - Muchas Gracias !! Este es mi codigo.., pero...evidentemente..no esta bien.. procedure TForm1.Button4Click(Sender: TObject); begin with ADOStoredProc2 do begin try Parameters.ParamValues ['@id']:= StrToInt(Edit3.Text); Prepared:=true; ExecProc; except on E:exception do showmessage('Ha ocurrido un error: ' +e.Message); end; DataSource1.DataSet.Active:= True; edit3.Text:= ADOStoredProc2.Parameters.ParamValues['@RETURN_VALUE']; end; |
#2
|
|||
|
|||
Cargar un edit con el resultado de un SP
Hola
Del analisis de tu codigo veo que para que un SP te devuelva algo debe tener Output en la declaracion del mismo en SQL Server, en el caso de que tu quieras que te devuelva un select no debes usar las sentencias: Prepared:= True; ExecProc; Ya que las mismas se utilizan en procedimientos de insercion, eliminacion y actualizacion, cuando lo que tu quieres es obtener una consulta solo debes Close; Open; y si el procedimiento lleva parametros va entre el Close y el Open En este caso el valor que debes sacar en el Edit es un campo del procedimiento almacenado y lo puedes obtener edit3.Text:= ADOStoredProc2.Parameters.ParamValues['@tucampo']; Saludos Luis Garcia _____________________________ La mejor manera de decir es hacer |
#3
|
|||
|
|||
Gracias lgarcia...- Aún no termino...de resolver el problema..., pero las sugerencias que me diste..me acotaron la busqueda...
Efectivamente..mi procedimiento almacenado es como decias, este es el codigo: --------------------------------------------------------------------- CREATE PROCEDURE sp_prueba_consul1 @id int, @nombresel varchar(50) output AS BEGIN SELECT @nombresel = nombre FROM prueba WHERE id = @id END GO --------------------------------------------------------------------- y este es mi codigo modificado según me indicaste: procedure TForm1.Button4Click(Sender: TObject); begin try with ADOStoredProc2 do begin Open; Parameters.ParamValues ['@id']:= StrToInt(Edit3.Text); end; DataSource1.DataSet.Active:= True; edit4.Text:= ADOStoredProc2.Parameters.ParamValues['@nombresel']; ADOStoredProc2.close; except on E:exception do showmessage('Ha ocurrido un error: ' +e.Message); end; end; -------------------------------------------------------------------- Pero cuando lo ejecuto y la paso el parametro ID para que me devuelva el nombre me dice el error : AdoStoredProc2: CommandText Does Not Return a Result Set - que puede ser??? Muchas Gracias |
#4
|
||||
|
||||
Re:cargar un EDIT con el resultado de un AdoStoredProc
Estimado Cocoliso:
¿Intentaste colocar el SP asi? Código:
CREATE PROCEDURE TraerNombre @Id Smallint AS BEGIN SELECT Tabla.Nombre FROM Tabla WHERE Tabla.Id=@Id END GO Luego en el codigo de tu programa, con el componente TADOStoredProc (sp) Código:
sp.Close; sp.Parameters.ParamByName('@Id').Value:=1;//supongo es el id que buscas sp.Open; Tambien si queres referenciar al nombre de un campo desde el código , es mas comodo si lo levanta el componente en tiempo de diseño: Haciendo doble clic sobre el componente y luego boton derecho "add all fields" Espero haberte sido de ayuda cualquier cosa pregunta de nuevo sin dudar.. saludos
__________________
desde Corrientes, Argentina.. Cuna del Libertador de America |
#5
|
|||
|
|||
no sale
Fabian:
existe alguna diferencia en poner en los SP del sql server TABLA.CAMPO ? SELECT Tabla.Nombre FROM Tabla WHERE Tabla.Id=@Id Estaba viendo..que...depende como devuelvas...las variables OUTPUT desde el sql server al delphi por ahi no le gusta..., varia si solo le asigas a una variable que si devolves con return... Mas de todas formas...el codigo que esta ahi arriba es lo mejor que pude sacar...- Para un programador de toda su vida de visual basic..no me resulta muy obvio muchos conceptos...delphi...- |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|