Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-02-2010
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
Como mandar llamar un procedimiento almacenado desde delphi

Buenos tardes compañeros hace ya bastante tiempo que no usaba procedimientos almacenados y se me olvido como mandarlos llamar desde delphi he estado leyendo un rato pero nada funciona este es mi procedimiento almacenado creado en mssql
Código SQL [-]
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER procedure [dbo].[Frm_posgueInsert] (@npost int, @sservice_code varchar(5), @ccost money, @dfech datetime, @stypexp varchar(30), @sdestypexp varchar(30)
 ,@ssuplier varchar(5), @ngue int, @iti varchar(1), @staini datetime, @staend datetime, @houini varchar(8)
 ,@houend varchar(8), @nconf int) 
as 
declare 
  @por int, @adeduc varchar(5), @identit int, @totalgen money 
begin
    insert into renposteosgue( npost, sservice_code, ccost, dfech, stypexp, sdestypexp, ssupplier, ngue, iti , staini, staend, houini, houend, scadena) 
    values (@npost, @sservice_code, @ccost, @dfech, @stypexp, @sdestypexp, @ssuplier,  @ngue, @iti, @staini, @staend, @houini, @houend, 0)

    select @identit=SCOPE_IDENTITY()
 

    Declare inserta Cursor For
    select por, adeduc from tablaservices t, reservededuc r
    where t.sdepartment =r.sapli
    and t.sservice_code=@sservice_code
    and r.nconf=@nconf and iva='N'

    open inserta

    FETCH NEXT from inserta into @por, @adeduc

    while @@fetch_status = 0
    begin
      select @totalgen=(@ccost*(@por/100))

      insert into renposteosgue( npost, sservice_code, ccost, dfech, stypexp, sdestypexp, ssupplier, ngue, iti,scadena) 
      values (@npost, @adeduc, @totalgen, @dfech, '', '', 'IMANT',  @ngue,'N', @identit)

    FETCH NEXT from inserta into @por, @adeduc
    end
    close inserta
    deallocate inserta
end

y este es el pedazo de codigo con el que lo intento llamar alguna ide de por que medice que los parametros no existen
Código Delphi [-]
 SP_Inserta.Close;
         SP_Inserta.Parameters[1].Value:=Qry_principal.fieldbyname('npost').Value;
         SP_Inserta.Parameters[2].Value:=trim(edt_services.Text);
         if Qry_TipCap.FieldByName('bkindchan').Value='D' then
         begin
           Md_Gral.Qry_KindChan.Close;
           Md_Gral.Qry_KindChan.open;
           SP_Inserta.Parameters[3].Value:=Qry_detalle.fieldbyname('ccost').value*Md_Gral.Qry_KindChan.fieldbyname('kind').Value;
         end
         else
         begin
           SP_Inserta.Parameters[3].Value:=Qry_detalle.fieldbyname('ccost').value;
         end;
         SP_Inserta.Parameters[4].Value:=Qry_detalle.fieldbyname('dfech').value;
         SP_Inserta.Parameters[5].Value:=Qry_detalle.fieldbyname('sTypExp').value;
         SP_Inserta.Parameters[6].Value:=Qry_detalle.fieldbyname('sDesTypExp').value;
         SP_Inserta.Parameters[7].Value:=trim(edt_sup.Text);
         SP_Inserta.Parameters[8].Value:=dbg_notin.Fields[2].Value;
         SP_Inserta.Parameters[9].Value:='N';
         SP_Inserta.Parameters[10].Value:='';
         SP_Inserta.Parameters[11].Value:='';
         SP_Inserta.Parameters[12].Value:='';
         SP_Inserta.Parameters[13].Value:='';
         SP_Inserta.Parameters[14].Value:=qry_principal.fieldbyname('nconf').Value;
         SP_Inserta.Prepared:=true;
         SP_Inserta.Open;
estoy utilizando un tadostoredprocedure en el cual no tengo nada de codigo adentro, ya le puse la conexion a la bd asi como el nombre del procedimiento gracias por cualquier comentario
Responder Con Cita
  #2  
Antiguo 03-02-2010
Avatar de richy08
richy08 richy08 is offline
Miembro
 
Registrado: may 2007
Ubicación: Bucerias, Nayarit Mexico
Posts: 529
Poder: 17
richy08 Va por buen camino
por fin logro que se ejecute pero tengo un detalle en esta linea del procedimiento

Código:
 select @totalgen=@ccost*(@porcentaje/100)
      print @ccost
      print @porcentaje
      print @totalgen
puse unos print paara ver que llos select y los parametros llegaran hasta este punto y en su defecto si lo hacen este es el resultado que me da la consola de mssql
Código:
 (1 row(s) affected)
16848.04
10
0.00

(1 row(s) affected)
alguna idea de por que @totalgen siempre me arroja 0 mil gracias por su tiempo
Responder Con Cita
Respuesta



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
Procedimiento almacenado desde Delphi hmv MS SQL Server 6 06-01-2010 23:02:05
llamar Procedimiento almacenado en una consulta tcp_ip_es MySQL 3 17-06-2008 12:47:38
llamando Procedimiento Almacenado desde Delphi jjaen26 MySQL 2 15-08-2007 02:53:26
Como llamar a un procediento almacenado desde delphi hperez Conexión con bases de datos 1 25-05-2007 18:31:52
Ayuda, como llamar a un procedimiento desde otro procedimiento? Ariatna Varios 1 01-02-2005 04:05:35


La franja horaria es GMT +2. Ahora son las 23:14:06.


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
Copyright 1996-2007 Club Delphi