線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1905
推到 Plurk!
推到 Facebook!

adocommand执行存储过程进度条显示?

答題得分者是:malanlk
baby2321
初階會員


發表:52
回覆:165
積分:48
註冊:2005-06-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-02 00:13:25 IP:219.140.xxx.xxx 未訂閱
procedure TForm1.Button1Click(Sender: TObject); begin adocommand1.CommandText:='exec 存储过程名'; adocommand1.Execute; end; 存储过程执行中 在前台希望同时运行进度条ProgressBar显示执行进度 找到http://delphi.ktop.com.tw/topic.php?topic_id=54496 但还是不知道在adocommand下 如何实现 發表人 - baby2321 於 2005/09/02 00:14:21
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-09-02 09:59:35 IP:203.69.xxx.xxx 未訂閱
TADOCommand 的 Help 已經說明    TADOCommand is most often used for executing data definition language (DDL) SQL commands or to execute a stored procedure that does not return a result set. For SQL statements that return a result set, TADODataSet, TADOQuery, or TADOStoredProc is better suited. 因此 TADOCommand 並無法(也不需要)設置 ProgressBar 進度顯示, 如果要傳回進度還是用 TADOStoredProc 來做. 不過, 如果是那種沒有回應資料的 Stored Process, 用 TADOStoreProc 也是沒效果...
baby2321
初階會員


發表:52
回覆:165
積分:48
註冊:2005-06-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-09-02 20:09:53 IP:219.140.xxx.xxx 未訂閱
我试着用ADOStoredProc 连接SQLSERVER数据库表后 将ProcedureName 设为“存储过程一”点击Active 但实现不了将false 改为True 提示:Commandtext does not return a result set 你说的回应资料具体指什么 我这个存储过程一实现的主要作用是把表一的数据处理后形成表二的数据 中间还涉及游标 故写在存储过程里 我刚才又试了一下 即把一个表的数据显示在DBGrid上 ProgressBar可以显示 回应资料 有什么特点吗 请大大指教 發表人 - baby2321 於 2005/09/02 21:02:16
baby2321
初階會員


發表:52
回覆:165
積分:48
註冊:2005-06-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-09-02 21:40:55 IP:219.140.xxx.xxx 未訂閱
请问malanlk 我的存储过程中除了有update外 还使用了游标 以你看 如果 考虑游标的处理次数 建一个变量 统计处理次数 然后根据处理次数设置进度条可否?
baby2321
初階會員


發表:52
回覆:165
積分:48
註冊:2005-06-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-09-03 15:12:34 IP:219.140.xxx.xxx 未訂閱
各位大大 请赐教 如果实在不行 可否做一个“假”的进度条 以表示在执行存储过程时 不让人感觉是“死机”? 如果是假的进度条 不知该怎么写 恳请赐教 發表人 -
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-09-03 17:08:58 IP:61.219.xxx.xxx 未訂閱
基本上完全交給 Server 去做的事要給進度條, 是件很怪的事, 因為這並不會造成 "死機" , 如果一定要做 "監控", 那就做一個監控的 Table , StoredProc ㄧ開始就設定該 Table 的欄位, 並在適當時候(比如 異動 100 筆後) 去更新欄位, 而 Client 端在 StoredProc 呼叫之後, 另開一個連線每隔固定時間讀取該 Table 資料. 直到程序完成(欄位設定為"完成") .... 與其作假的乾脆就真實監控吧....
baby2321
初階會員


發表:52
回覆:165
積分:48
註冊:2005-06-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-09-03 20:46:39 IP:219.140.xxx.xxx 未訂閱
小弟技术比较菜 阁下方法我慢慢消化 还是用的“假”进度条实现了过程的“同步” 呵呵
系統時間:2024-06-16 12:10:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!