我刚开始学习dephi和sql,请问在dephi中如何调用sql中的存储过程?

解决方案 »

  1.   

    用query调用。
    with query1 do
    begin
      close;
      SQL.clear;
      SQL.Add(这里加sql语句就可以);
      ExecSQL;
      open;//如果需要返回结果
    end;
      

  2.   

    自己首先在SQL里建立一个存储过程
    ADOStoredProc1.Close;
    ADOStoredProc1.Parameters.ParamByName('@Name').Value := trim(edit1.Text);
    ADOStoredProc1.ExecProc;
    ADOStoredProc1.Open;
      

  3.   

    //打开一个数据表
    var
        sqlstr:string;
    begin
        dm.CloseQueryData(query);
        sqlstr:='select * from stat_cod order by bc';
         with  query do
           begin
              close;
              sql.clear;
              sql.add(sqlstr);
              try
                prepare;
                open;
              except
                 close;
                 sql.clear;
              end;
           end;
    end;//执行一条数据库的操作
    var
        sqlstr:string;
    begin
        dm.CloseQueryData(query);
        sqlstr:='delete  from stat_cod where bc='''+uppercase(trim(x_bc))+'''';
         with  query do
           begin
              close;
              sql.clear;
              sql.add(sqlstr);
              try
                 Query.Prepare;
                 Query.ExecSQL;
              except  on edbengineerror do
                begin
                  Application.MessageBox('数据有误,请查证,谢谢使用!','提示',mb_OK+MB_ICONQUESTION);
                  exit;
                end;          end;
           end;
    end;
      

  4.   

    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('exec 存儲過程名 +要傳的參數);
    adoquery1.execsql;
      

  5.   

    if ADOStoredProc1.Active then
        ADOStoredProc1.Close;
      with ADOStoredProc1 do
      begin
        Parameters.ParamValues['@sid'] := Edit1.Text;
        Parameters.ParamValues['@sname'] := edit2.Text;
        Parameters.ParamValues['@sage'] := edit3.Text;
        Parameters.ParamValues['@sdate'] := DateTimePicker1.DateTime;
        ExecProc;
      end;
      

  6.   

    with ADOCommand1 do
      begin
        CommandText := 'Proc_insert';
        CommandType := cmdStoredProc;
        Parameters.CreateParameter('@sid',ftinteger,pdinput,10,edit1.Text);
        Parameters.CreateParameter('@sname',ftstring,pdinput,10,edit2.Text);
        Parameters.CreateParameter('@sage',ftfloat,pdinput,10,edit3.Text);
        Parameters.CreateParameter('@sdate',ftdate,pdinput,10,DateTimePicker1.Date);
        //Parameters.ParamValues['@sdate'] := DateTimePicker1.Date;
        Execute;
      end;