Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   ayuda con procedimiento almacenado (https://www.clubdelphi.com/foros/showthread.php?t=59733)

microbiano 05-09-2008 22:22:25

ayuda con procedimiento almacenado
 
hola soy nuevo en delphi, les planteo el siguiente problema a ver si pueden ayudarme.

1.- en un form tengo un tedit en el cual escribo un nombre.
2.- tambien tengo un boton que al precionarlo ejecuta un procedimiento almacenado: este es el cofigo
Código Delphi [-]
procedure Tfrcontrato.btAceptarClick(Sender: TObject);
begin
  try
     spnvocontri.Close;
     spnvocontri.Parameters.Refresh;
     spnvocontri.Parameters.ParamByName('@nombre').Value:=txtnombre.Text;
     spnvocontri.ExecProc;
     label4.Caption:= spnvocontri.Parameters.Byname('@del_error').value;
         //Application.MessageBox('Registro Almacenado con exito','Sapa',mb_iconinformation);
  except
     raise;
  end;
end;
3.- tengo un objetoAdoStoredProcedure qen el cual declaro dos parametros del_error de tipo return.value y nombre de tipos texto.
4.-en sql server 200o tengo el siguiente procedimiento almacenado
Código SQL [-]
ALTER   procedure [spnvocontri]
    @nombre varchar(80)    
as
declare @valida    INT
declare @del_error int
-- Obtiene el total de registros
select @valida = count(*)
        FROM sap_contri
        where nombre_contri = @nombre
-- compara
if @valida = 0 
 begin
  insert into sap_contri  (nombre_contri) values(@nombre)
 end
else
 begin
  print ('ya Existe un registro con ese nombre')
  set @del_error=1
end
  return (@del_error)

bien realmente no existe problea cuando lo ejecuto por el analizador de consulta lo que quiero es recuperar el valor cuando exista el registro en la base de datos para poder mandar un mensaje en delphi de que ese registro ya existe lo intento de la siguiente manera pero no funciona

label4.Caption:= spnvocontri.Parameters.Byname('@del_error').value;

espero que alguien me pueda ayudar

egostar 05-09-2008 22:35:24

Cita:

Empezado por microbiano (Mensaje 312218)
bien realmente no existe problea cuando lo ejecuto por el analizador de consulta lo que quiero es recuperar el valor cuando exista el registro en la base de datos para poder mandar un mensaje en delphi de que ese registro ya existe lo intento de la siguiente manera pero no funciona

label4.Caption:= spnvocontri.Parameters.Byname('@del_error').value;

espero que alguien me pueda ayudar

Hola

Es que no es un parametro lo que te regresa el SP, mas bien es un FieldByName.

Salud OS

microbiano 05-09-2008 22:41:46

hola
 
como podria entonces recuperar el valor algun consejo?

egostar 05-09-2008 22:48:32

Hola

Ya estuve viendo y esta bien como lo haces, solo quita el @ en tu campo

Código Delphi [-]
label4.Caption:= spnvocontri.Parameters.Byname('del_error').value;

Salud OS

Edito:

Puede que te de un error porque tu valor es entero, en todo caso deberia ser así

Código Delphi [-]
label4.Caption:= spnvocontri.Parameters.Byname('del_error').AsString;
o asi
Código Delphi [-]
label4.Caption:= inttostr(spnvocontri.Parameters.Byname('del_error').value);

microbiano 08-09-2008 18:10:00

Aun No Puddo Resolver La Problematica Que Tengo

egostar 09-09-2008 22:34:52

Cita:

Empezado por microbiano (Mensaje 312467)
Aun No Puddo Resolver La Problematica Que Tengo

Y te muestra un error, no te muestra datos, danos mas informacion por favor.

Salud OS

microbiano 10-09-2008 03:11:15

aun no resuelvo el problema
 
no me muestra ningun error, que posiblidad hay de que me pases un ejemplo te lo agradeceria mucho de verdad.


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

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi