原来用sql6.5的数据库,可以正常调用存储过程,后升级到sql2000,应用程序(delphi4编译)提示找不到存储过程,在delphi6中用TStoredProc调用带参数的存储过程也同样提示找不到存储过程,但通过TQuery组件可以调用,难道delhpi的 TStoredProc组件不支持sql2000带参数的存储过程?!
谢谢!!

解决方案 »

  1.   

    bde很久就没有作后续开发了,可能支持不好,
    你可以试试用tadostoredproc
      

  2.   

    我一直在用
    database1.aliasName:='bb'连接到你的数据库
    database1.databaseName:='dd'
    stroProc1.DatabaseName:='dd';
    StroProc1.StorprocName:='sp_fffff'
      

  3.   

    function TLogin.TableGetUserRight(UserID:Integer):TStoredproc;
    var
      MyStoredproc:TStoredproc;
      p1:TParam;
    begin
      MyStoredproc := TStoredproc.Create(nil);
      MyStoredproc.Name := 'Storedproc1';
      MyStoredproc.SessionName := 'Default';
      MyStoredproc.DatabaseName := DatabaseName;
      MyStoredproc.StoredProcName := StoredprocName;
      MyStoredproc.Params.Clear;
      p1 := TParam.Create(MyStoredproc.Params,ptInput);
      MyStoredproc.Params[0].Name := '@UserID';
      MyStoredproc.Params[0].AsInteger := UserID;
      MyStoredproc.Active := True;
      result :=  MyStoredproc;
      p1.Free;
      MyStoredproc.Free;
    end;
      

  4.   

    我们整个系统都是用bde,若要改为ado不太现实!
    原来的程序调用存储过程的方法和楼上的差不多,只是将数据库升级到sql2000后才出现用TStoreProc组件找不到存储过程的情况!但通过TQuery组件可以调用存储过程,但这样做的话工作量太大,所以请各位帮帮忙,尽量用TStoreProc来调用,谢谢!!