刚才有人去VC那边叫我们学得儿非,我过来瞧瞧
ADOQuery1.sql.Text="exec StoreKeeper2000.MonthCostRpt ";
try 
   ADOQuery1.open();
 catch{e}{
massageBox("系统连接数据库失败,请再试一次!","Kao!");
}throw(e){
//???
}return "You Lost it";

解决方案 »

  1.   

    你可以用ADOStoredProc执行存储过程来试试
      

  2.   

    存储过程是不能返回数据集的,你怎么能用Adoquery1.Open呢!!??,试一下Adoquery1.ExecSQL
      

  3.   

    我把存储过程的查找时间由一个月改为半个月就可以得到部分结果,可那样要查两次才可以得到全部数据,所以我觉得存储过程本身也没错,用OPEN方法也对,就是命令超时的设置有问题,可不知道怎么解决,请高手指点。
      

  4.   

    重载TADOQUERY,把属性CommandTimeout公布为运行期可用公开属性。
    如下:
    type
      TMyADOQuery = class(TADOQuery)
        public
          property CommandTimeout;
        end;
    然后使用控件:TMyADOQuery 。
      

  5.   

    to NetFriend(NetFriend) :
        朋友,你说的方法不错,可以设置CommandTimeout了,可是编译不过去,这是怎么回事???下面是我改的程序:
    type
      TMyADOQuery = class(TADOQuery)
        public
          property CommandTimeout;
        end;type
      TForm1 = class(TForm)
        ADOConnection1: TADOConnection;
        ADOQuery1: TMyADOQuery;
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;