全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5853
推到 Plurk!
推到 Facebook!

當 qryT.open 時會出現 capability not supported

缺席
energybody
一般會員


發表:44
回覆:32
積分:15
註冊:2007-04-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-18 18:37:43 IP:211.21.xxx.xxx 訂閱
小弟 trace delphi 6 的程式, 結果當 qryT.open 執行時, 出現 capability not supported 的錯誤訊息, 請問在何種情況下會出現這種錯誤.

begin
lblFWD.Caption:=qry1FWD.FieldByName('uniname').asString '[' cbFWD.text ']';
qrlabel20.Caption:='¶i¤f´Á¶¡·~°È·~ÁZªí';
qrlabel22.Caption:=xetaC;
qrsysdata1.Caption:='»sªí¤é´Á:';
end;//..2004/05/21}
qryH.close;
qryH.SQL.clear;
qryH.SQL.Add('select * from thblrev');
qryH.SQL.Add('where fn is not null');
if cbSales.Text<>'' then
qryH.SQL.Add('and sales like "%' cbSales.Text '%" ' );
case cbTCK.ItemIndex of
1: qryH.SQL.Add('and loc =''T''');
2: qryH.SQL.Add('and loc =''C''');
3: qryH.SQL.Add('and loc =''K''');
end;
if cbLine.ItemIndex>0 then
qryH.SQL.Add('and line =''' cbLine.Text '''');
case cbSort.ItemIndex of
0: qryH.SQL.Add('order by sales, type, job, hbl');//JOB HBL
1: qryH.SQL.Add('order by sales, guest , type, job , hbl');//³f¥D JOB
2: qryH.SQL.Add('order by sales, type, fn'); //..2004/07/12 «C¯è¥u¥ÎJob±Æ§Ç
3: qryH.SQL.Add('order by sales, type, line, fn');
end;
qryH.open; <-- 出現錯誤
energybody
一般會員


發表:44
回覆:32
積分:15
註冊:2007-04-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-23 23:18:04 IP:61.62.xxx.xxx 訂閱
根據我的使用, 這通常發生在 delphi 的計憶體不夠, 只要去掉不需要的應用程式, 就可以執行, 如果還不行, 就要關掉 delphi 再重新執行, 再不行, 就要重開機.
harpist
資深會員


發表:3
回覆:251
積分:430
註冊:2002-10-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-23 23:39:45 IP:211.74.xxx.xxx 未訂閱
你是否有將TQuery 的 RequestLive 設為 true 呢?
capability not supported 似乎不容易聯想到記憶體不夠
------
~§~迷時師渡,悟了自渡~§~
kadee
高階會員


發表:11
回覆:141
積分:165
註冊:2002-03-20

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-05-24 10:41:25 IP:59.127.xxx.xxx 訂閱

===================引 用 energybody 文 章===================
小弟 trace delphi 6 的程式, 結果當 qryT.open 執行時, 出現 capability not supported 的錯誤訊息, 請問在何種情況下會出現這種錯誤.

begin
lblFWD.Caption:=qry1FWD.FieldByName('uniname').asString '[' cbFWD.text ']';
qrlabel20.Caption:='if~ȷ~Z';
qrlabel22.Caption:=xetaC;
qrsysdata1.Caption:='s:';
end;//..2004/05/21}
qryH.close;
qryH.SQL.clear;
qryH.SQL.Add('select * from thblrev');
qryH.SQL.Add('where fn is not null');
if cbSales.Text<>'' then
qryH.SQL.Add('and sales like "%' cbSales.Text '%" ' );
此行改成
qryH.SQL.Add('and sales like QuotedStr(%' cbSales.Text '%' );

以下依此類推,以後建議 sql中的條件字串都用 QuotedStr() 會比較好處理,也比較不會搞錯。

case cbTCK.ItemIndex of
1: qryH.SQL.Add('and loc =''T''');
2: qryH.SQL.Add('and loc =''C''');
3: qryH.SQL.Add('and loc =''K''');
end;
if cbLine.ItemIndex>0 then
qryH.SQL.Add('and line =''' cbLine.Text '''');

case cbSort.ItemIndex of
0: qryH.SQL.Add('order by sales, type, job, hbl');//JOB HBL
1: qryH.SQL.Add('order by sales, guest , type, job , hbl');//fD JOB
2: qryH.SQL.Add('order by sales, type, fn'); //..2004/07/12 CuJobƧ
3: qryH.SQL.Add('order by sales, type, line, fn');
end;
qryH.open; <-- 出現錯誤
------
Kadee/BigRed Ent.
www.tw165.com
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-05-24 11:43:19 IP:218.163.xxx.xxx 訂閱
你好:

BDE 從 5.2 版後, 已不再更新.....

看看你 Table "thblrev" 是不是有啥 "特別" 的欄位

可以改用 select F1,F2... 不要用 select *
energybody
一般會員


發表:44
回覆:32
積分:15
註冊:2007-04-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-05-24 20:48:40 IP:61.62.xxx.xxx 訂閱
小弟的 delphi 6 常常會在 qry.open 時會出現 capability not supported, 查 delphi 的論壇, 是 sql 的語法錯誤, 可是檢查 sql 語法確是正確的, 如果把應用程式少開一些, 並且在 qry.open 時設中斷點, 程式再執行就不會出現錯誤. 而且下次再執行時就不會再出現此錯誤.
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-05-25 18:03:46 IP:220.142.xxx.xxx 訂閱
資料庫最好每次執行完程式都要做連線關閉的動作
------
======================
昏睡~
不昏睡~
不由昏睡~
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-05-29 18:35:35 IP:61.67.xxx.xxx 未訂閱
我猜(看po上來的部份)
'select * from thblrev'
'where fn is not null'
似乎並沒有預留各保留字的空格,是否會因為這樣把語法串起來後變成
select * from thblrevwhere fn is not nullorder by ......
結果有一些字可能變成組合後違反保留字的定義,
建議你把字串後都加入一個空白
'select * from thblrev '
'where fn is not null '
babyfish0226
一般會員


發表:9
回覆:82
積分:23
註冊:2002-06-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-05-30 10:12:07 IP:211.76.xxx.xxx 訂閱
等一下,有一個問題要先釐清~~

您說的是 qryT.open 時會有錯誤,可是您列出的程式碼卻都是使用qryH.......

是筆誤還是?我猜應該是筆誤~~~

建議您將您的sql查詢逐一分解後測試,先用最單純的開始再逐一加上後面的查詢,若是語法錯誤我相信是很容易查得出來的.

減少記憶體 設中斷點就不會出錯 ->
這是一個印象式的概念誤導,在delphi會因為記憶體而造成您的adoquery使用出錯...我是沒遇到過,
除非您的程式很龐大所以有交叉影響(這就沒人幫得了你了),我想寫delphi的最大好處就是....不用太過擔心系統會對您的"程式碼"造成莫名的錯誤,
有錯大多是寫法或語法的問題,試試吧!
energybody
一般會員


發表:44
回覆:32
積分:15
註冊:2007-04-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-06-01 12:36:26 IP:211.21.xxx.xxx 訂閱
此程式很大, 大約要 40~50 M 的計憶體用量(包括虛擬計憶體).
babyfish0226
一般會員


發表:9
回覆:82
積分:23
註冊:2002-06-14

發送簡訊給我
#11 引用回覆 回覆 發表時間:2007-06-01 13:13:47 IP:211.76.xxx.xxx 訂閱
檢查一下qryH是否有在其他地方或某個時間點"同時"使用,或是新增一個adoqyer1元件然後讓這裡獨立使用。

我是常常犯這樣的錯誤,總以為共用沒關係,但有時...就是會有衝突的時候,不然就不要用元件的方式,直接建立然後使用完釋放。
energybody
一般會員


發表:44
回覆:32
積分:15
註冊:2007-04-12

發送簡訊給我
#12 引用回覆 回覆 發表時間:2007-06-07 09:45:46 IP:211.21.xxx.xxx 訂閱
小弟有檢查過程式, 並沒有與其他程式共用, 用另一台電腦就可以執行, 末非是 BDE 有問題.
系統時間:2024-05-02 7:56:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!