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

Query Open 時,出現"存放裝置空間不足,無法完成此操作"

尚未結案
eric039
中階會員


發表:57
回覆:126
積分:51
註冊:2002-11-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-20 17:23:51 IP:211.75.xxx.xxx 未訂閱
我的語法如下 qyReport.SQL.Clear; qyReport.Sql.Add('Select M.AssetMasterNo,M.AssetMasterDate,M.AssetMasterKind,'); qyReport.Sql.Add('M.BeforeOrganizationNo,M.BeforeEmployeeNo,M.AfterOrganizationNo,M.AfterEmployeeNo,'); qyReport.SQL.Add('M.Notes,D.AssetMasterOrder,D.AssetNo,D.AssetUniq,A.AssetName, A.Unit, '); qyReport.Sql.Add('A.BuyDate, A.FactoryName, A.SerialNo, '); qyReport.Sql.Add('(Select OrganizationName From Organization Where OrganizationNo = M.BeforeOrganizationNo) as BeforeOrganizationName, '); qyReport.Sql.Add('(Select OrganizationName From Organization Where OrganizationNo = M.AfterOrganizationNo) as AfterOrganizationName, '); qyReport.Sql.Add('(Select EmployeeName From Employee Where EmployeeNo = M.BeforeEmployeeNo) as BeforeEmployeeName, '); qyReport.Sql.Add('(Select EmployeeName From Employee Where EmployeeNo = M.AfterEmployeeNo) as AfterEmployeeName'); qyReport.SQL.Add('From AssetMaster M, AssetDetail D, Asset A'); qyReport.Sql.Add('Where M.AssetMasterNo = :pAssetMasterNO'); qyReport.Sql.Add('And D.AssetMasterNo = M.AssetMasterNO'); qyReport.Sql.Add('And A.AssetUniq = D.AssetUniq'); qyReport.SQL.Add('Order By D.AssetUniq Asc'); qyReport.Parameters.ParamByName('pAssetMasterNo').Value := edAssetMasterNo.Text; qyReport.Open; 執行到 Open 就會出現 出現"存放裝置空間不足,無法完成此操作" 這個視窗 我如果沒有用 Parameters 的話 將底下這一行刪掉 qyReport.Sql.Add('Where M.AssetMasterNo = :pAssetMasterNO'); 底下的 And 改成 Where 就沒有問題了 qyReport.Sql.Add('And D.AssetMasterNo = M.AssetMasterNO'); 請問這是什麼問題 Eric Lin
------
Eric Lin
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-20 17:29:00 IP:218.16.xxx.xxx 未訂閱
存放裝置空間不足,無法完成此操作 最直覺的就是你的本也硬盤空間不足,Query 制做 Temp File 時不夠位置,你可看看你的硬盤空間是否只剩很少
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-20 17:31:22 IP:211.74.xxx.xxx 未訂閱
底下的改為這樣 qyReport.Sql.Add('Where M.AssetMasterNo = ' #39 edAssetMasterNo.Text #39); qyReport.Sql.Add('And D.AssetMasterNo = M.AssetMasterNO'); qyReport.Sql.Add('And A.AssetUniq = D.AssetUniq'); qyReport.SQL.Add('Order By D.AssetUniq Asc'); qyReport.Open; TRY TRY SEE
引言: qyReport.Sql.Add('Where M.AssetMasterNo = :pAssetMasterNO'); qyReport.Sql.Add('And D.AssetMasterNo = M.AssetMasterNO'); qyReport.Sql.Add('And A.AssetUniq = D.AssetUniq'); qyReport.SQL.Add('Order By D.AssetUniq Asc'); qyReport.Parameters.ParamByName('pAssetMasterNo').Value := edAssetMasterNo.Text; qyReport.Open;
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-21 09:46:22 IP:61.155.xxx.xxx 未訂閱
qyReport.Sql.Add('Where M.AssetMasterNo = :pAssetMasterNO'); qyReport.Sql.Add('And D.AssetMasterNo = M.AssetMasterNO'); qyReport.Sql.Add('And A.AssetUniq = D.AssetUniq'); qyReport.SQL.Add('Order By D.AssetUniq Asc'); qyReport.Parameters.ParamByName('pAssetMasterNo').ASINTEGER :=TRIM( edAssetMasterNo.Text); qyReport.Open;    实验一下看看!!!    风花雪月 e梦情缘
------
风花雪月 e梦情缘
eric039
中階會員


發表:57
回覆:126
積分:51
註冊:2002-11-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-01 10:19:37 IP:140.111.xxx.xxx 未訂閱
不好意思,最近比較忙 沒有去測試 感謝大家的幫忙 Eric Lin
------
Eric Lin
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-01 11:39:12 IP:218.16.xxx.xxx 未訂閱
可否說說你是甚樣解決的嗎,給以後的使用者作個參考,因為感覺上不使用 parameter 直接加進 SQL 似乎與空間不足無關。 謝謝。
eric039
中階會員


發表:57
回覆:126
積分:51
註冊:2002-11-30

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-06-07 10:22:08 IP:211.75.xxx.xxx 未訂閱
不好意思,最近超忙的。 我把程式碼改成這樣 qyReport.SQL.Clear; qyReport.Sql.Add('Select M.AssetMasterNo, M.AssetMasterDate, M.AssetMasterKind, '); qyReport.Sql.Add('M.BeforeOrganizationNo, M.BeforeEmployeeNo, M.AfterOrganizationNo, M.AfterEmployeeNo, '); qyReport.SQL.Add('M.Notes, D.AssetMasterOrder, D.AssetNo, D.AssetUniq'); qyReport.SQL.Add('From AssetMaster M, AssetDetail D'); qyReport.Sql.Add('Where M.AssetMasterNo = :pAssetMasterNO'); qyReport.Sql.Add('And D.AssetMasterNo = M.AssetMasterNO'); qyReport.SQL.Add('Order By D.AssetMasterOrder Asc'); qyReport.Parameters.ParamByName('pAssetMasterNo').Value := edAssetMasterNo.Text; qyReport.Open; 其他的部分在 Query 元件中用 Lookup 欄位來取得。 我是比較不喜歡用這樣的方式。 Eric Lin
------
Eric Lin
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-06-07 10:30:58 IP:218.16.xxx.xxx 未訂閱
那看來原因是 subQuery 太多太大導致存放裝置空間不足罷    謝謝 eric039 兄的分享
newbie
初階會員


發表:81
回覆:45
積分:25
註冊:2002-11-28

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-07-24 11:56:48 IP:210.201.xxx.xxx 未訂閱
請問大家,    ==== 直覺的就是你的本也硬盤空間不足,Query 制做 Temp File 時不夠位置,你可看看你的硬盤空間是否只剩很少 ====    我也發生同樣的情形, 但是我的硬碟空間還很大說~~~~    還是有記憶體使用限制上的問題?    謝謝大家的幫忙~~    
系統時間:2024-04-26 21:22:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!