adoquery1: parameter 'A' not found |
答題得分者是:careychen
|
nanpiao
一般會員 發表:12 回覆:18 積分:6 註冊:2007-10-19 發送簡訊給我 |
其中执行下面程序出现错误
ADOQuery1.SQL.Clear ; ADOQuery1.SQL.Text :='select * from fd where 类型=:A'; ADOQuery1.Parameters.ParamByName('A').Value :=TreeView2.Selected.Text ;// 此行出现adoquery1: parameter 'A' not found ADOQuery1.Prepared ; ADOQuery1.Open ; 我也找了相类似的文章但是没有看懂.请各位大大帮忙是什么问题? |
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
===================引 用 nanpiao 文 章=================== 其中执行下面程序出现错误 ADOQuery1.Close; // 請問一下這時候的 ADOQuery 有 Close 嗎? 或是 ADOQuery1 的屬性 ParamCheck 是否為 True 呢? 為 True 才正確哦! ADOQuery1.SQL.Clear ; ADOQuery1.SQL.Text :='select * from fd where 类型=:A'; ADOQuery1.Parameters.ParamByName('A').Value :=TreeView2.Selected.Text ;// 此行出现adoquery1: parameter 'A' not found ADOQuery1.Prepared ; ADOQuery1.Open ; 我也找了相类似的文章但是没有看懂.请各位大大帮忙是什么问题?
------
價值的展現,來自於你用哪一個角度來看待它!! |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
參考這篇: http://www.delphi32.com/info_facts/faq/faq_932.asp
You can easily fix this by creating the parameters before calling by calling: ADOQuery.Parameters.ParseSQL(ADOQuery.SQL.Text, True) ADOQuery.Parameters.ParamByName('ParamName').Value |
nanpiao
一般會員 發表:12 回覆:18 積分:6 註冊:2007-10-19 發送簡訊給我 |
谢谢careychen的回复.
按照您说的方法添加了adoquery1.close; 同时将adoquery1.ParamCheck:=true; 但是仍然出现"adoquery1: parameter 'A' not found" ADOQuery1.close; ADOQuery1.SQL.Clear ; ADOQuery1.SQL.Text :='select * from fd where 类型=:A and 姓名=:B'; ADOQuery1.Parameters.ParamByName('A').Value :=TreeView1.Selected.Parent.Text ; //此行出现问题 adoquery1: parameter 'A' not found" ADOQuery1.Parameters.ParamByName('B').Value :=TreeView1.Selected.Text ; ADOQuery1.Prepared ; ADOQuery1.Open ; |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
nanpiao
一般會員 發表:12 回覆:18 積分:6 註冊:2007-10-19 發送簡訊給我 |
===================引 用 hagar 文 章=================== 參考這篇: http://www.delphi32.com/info_facts/faq/faq_932.asp You can easily fix this by creating the parameters before calling by calling: ADOQuery.Parameters.ParamByName('ParamName').Value ***************************************************** 谢谢hagar 大大回复,我查看了语法 ADOQuery.Parameters.ParseSQL(ADOQuery.SQL.Text, True)如何使用 因为要对其赋值,如果有两个变量如何操作: 再次恳请hagar出手相救,再次谢谢 adoquery1.close; ADOQuery1.SQL.Clear ; ADOQuery1.SQL.Text :='select * from fd where 类型=:A and 姓名=:B'; ADOQuery1.Parameters.ParamByName('A').Value :=TreeView1.Selected.Parent.Text ; (请问如何改写,还有下面一行) ADOQuery1.Parameters.ParamByName('B').Value :=TreeView1.Selected.Text ; ADOQuery1.Prepared ; ADOQuery1.Open ; ADOQuery.Parameters.ParseSQL(ADOQuery.SQL.Text, True) |
nanpiao
一般會員 發表:12 回覆:18 積分:6 註冊:2007-10-19 發送簡訊給我 |
===================引 用 hagar 文 章=================== ADOQuery1.SQL.Text :='select * from fd where 类型=:A and 姓名=:B'; 改成如下試試: ADOQuery1.SQL.Text :='select * from fd where [类型] = :A and [姓名] = :B'; ********************************************************************** 将类型和姓名加上 [ ] 还是adoquery1: parameter 'A' not found |
nanpiao
一般會員 發表:12 回覆:18 積分:6 註冊:2007-10-19 發送簡訊給我 |
新的问题出现了
ADOQuery1.SQL.Clear ; ADOQuery1.SQL.Text :='select * from fd where 类型=:A and 姓名=:B'; ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.Text, true);//此行新添加,没有了adoquery1: parameter 'A' not found出错信息 ADOQuery1.Parameters.ParamByName('A').Value :=TreeView1.Selected.Parent.Text ; ADOQuery1.Parameters.ParamByName('B').Value :=TreeView1.Selected.Text ; ADOQuery1.Prepared ; ADOQuery1.Open ; 但是出现了如下的出错信息 access violation at address 004B56A4 in module 'Project01.exe' Read of address 00000008 ===================引 用 nanpiao 文 章=================== ===================引 用 hagar 文 章=================== ADOQuery1.SQL.Text :='select * from fd where 类型=:A and 姓名=:B'; 改成如下試試: ADOQuery1.SQL.Text :='select * from fd where [类型] = :A and [姓名] = :B'; ********************************************************************** 将类型和姓名加上 [ ] 还是adoquery1: parameter 'A' not found |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
我測到你的問題了
你的問題就是那個 Treeview 那邊, 你現在選的Root,沒有 Parent.Text 可用!! ===================引 用 nanpiao 文 章=================== 新的问题出现了 ADOQuery1.SQL.Clear ; ADOQuery1.SQL.Text :='select * from fd where 类型=:A and 姓名=:B'; ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.Text, true);//此行新添加,没有了adoquery1: parameter 'A' not found出错信息 ADOQuery1.Parameters.ParamByName('A').Value :=TreeView1.Selected.Parent.Text ; ADOQuery1.Parameters.ParamByName('B').Value :=TreeView1.Selected.Text ; ADOQuery1.Prepared ; ADOQuery1.Open ; 但是出现了如下的出错信息 access violation at address 004B56A4 in module 'Project01.exe' Read of address 00000008
------
價值的展現,來自於你用哪一個角度來看待它!!
編輯記錄
careychen 重新編輯於 2008-08-19 21:52:47, 註解 無‧
|
nanpiao
一般會員 發表:12 回覆:18 積分:6 註冊:2007-10-19 發送簡訊給我 |
1.按照hagar 已经指定了connection属性
2.没有执行其他操作 3.ADOQuery1.Parameters.ParamByName('A').Value :=TreeView1.Selected.Parent.Text ; 4.资料库为access数据库. ===================引 用 hagar 文 章=================== 這個就難了 ... 1.ADOQuery1 有沒有指定 Connection 屬性? 2.ADOQuery1 在 select * from fd 之前有沒有執行其它 sql statement? 3.哪一行發生 Access Violation? 4.什麼資料庫? |
nanpiao
一般會員 發表:12 回覆:18 積分:6 註冊:2007-10-19 發送簡訊給我 |
1.不是treeview 问题.
2.重新制作一个project没有问题了.谢谢各位的帮忙和帮助,不胜感激 ===================引 用 careychen 文 章=================== 我測到你的問題了 你的問題就是那個 Treeview 那邊, 你現在選的Root,沒有 Parent.Text 可用!! ===================引 用 nanpiao 文 章=================== 新的问题出现了 ADOQuery1.SQL.Clear ; ADOQuery1.SQL.Text :='select * from fd where 类型=:A and 姓名=:B'; ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.Text, true);//此行新添加,没有了adoquery1: parameter 'A' not found出错信息 ADOQuery1.Parameters.ParamByName('A').Value :=TreeView1.Selected.Parent.Text ; ADOQuery1.Parameters.ParamByName('B').Value :=TreeView1.Selected.Text ; ADOQuery1.Prepared ; ADOQuery1.Open ; 但是出现了如下的出错信息 access violation at address 004B56A4 in module 'Project01.exe' Read of address 00000008 |
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
重新作一個就 OK ...... 恭禧你把問題解決了,
我沒幫到什麼忙,這個分應該是給 hagar 版主的 ===================引 用 nanpiao 文 章=================== 1.不是treeview 问题. 2.重新制作一个project没有问题了.谢谢各位的帮忙和帮助,不胜感激 ===================引 用 careychen 文 章=================== 我測到你的問題了 你的問題就是那個 Treeview 那邊, 你現在選的Root,沒有 Parent.Text 可用!! ===================引 用 nanpiao 文 章=================== 新的问题出现了 ADOQuery1.SQL.Clear ; ADOQuery1.SQL.Text :='select * from fd where 类型=:A and 姓名=:B'; ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.Text, true);//此行新添加,没有了adoquery1: parameter 'A' not found出错信息 ADOQuery1.Parameters.ParamByName('A').Value :=TreeView1.Selected.Parent.Text ; ADOQuery1.Parameters.ParamByName('B').Value :=TreeView1.Selected.Text ; ADOQuery1.Prepared ; ADOQuery1.Open ; 但是出现了如下的出错信息 access violation at address 004B56A4 in module 'Project01.exe' Read of address 00000008
------
價值的展現,來自於你用哪一個角度來看待它!! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |