我是一位新手。刚学DELPHI不久。我现在急需解决一个问题。我想知道怎么样在DELHI中调用我写的一个存储过程
CREATE PROCEDURE student
as
select * from st1 
GO
我现在要在DELPHI里面调用这个存储过程。当然我的那个存储过程比这个要难一些。要用到那些控件。我用ADO连接数据库的。还问教一下什么叫做触发器谢谢。
在线等待

解决方案 »

  1.   

    给你一个例子
    Function SP_YD_CheckFQ( Oracle    : TOraSession;
                            Const Pmd : String ) : Integer;
    begin
         Result := DB_ERROR;
         StoredProc := TOraStoredProc.Create( Nil );
         Try
            StoredProc.Session := Oracle;
            StoredProc.StoredProcName := 'YD_CHECKFQ';        StoredProc.Params.Add;
            StoredProc.Params[ 0 ].ParamType := ptInput;
            StoredProc.Params[ 0 ].Name      := 'v_pmd';
            StoredProc.Params[ 0 ].DataType  := ftString;
            StoredProc.Params[ 0 ].AsString  := Pmd;        StoredProc.Params.Add;
            StoredProc.Params[ 1 ].ParamType := ptOutput;
            StoredProc.Params[ 1 ].Name      := 'v_status';
            StoredProc.Params[ 1 ].DataType  := ftInteger;
            Try
               StoredProc.ExecProc;
               Result := StoredProc.Params[ 1 ].AsInteger;
            Except
            End;
         Finally
                StoredProc.Free;
         End;
    end;
    这是根据Oracle数据库写的,与SQL Server差不多!!!连接SQL Server存储过程需要的控件有:ADOConnection, ADOStoredProc!!!触发器是数据库对象,类似于Windows中的消息!!!就在在数据库的数据发生变动的时候需要运行的代码!!!
      

  2.   

    建立觸發程序。觸發程序是當使用者在指定的資料上嘗試執行指定的資料變動陳述式時,便會自動執行的特殊預存程序。Microsoft® SQL Server™ 允許針對任意給定的 INSERT、UPDATE、或 DELETE 陳述式建立多重觸發程序。
      

  3.   

    用ADOStoredProc 控件ProcedureName属性设置你在数据库的存储过程的名.
    with ADOStoredProc do
      begin
       Parameters[0].Value:=参数1值;//存储过程的第一参数
       Parameters[1].Value:=参数2值;//存储过程的第二参数
       ExecProc;//open(如有返回数据集用open)
      end;