EDatabaseError 错误 AdoQuery1:Field 'XXXX' not found |
尚未結案
|
baby2321
初階會員 發表:52 回覆:165 積分:48 註冊:2005-06-11 發送簡訊給我 |
adoquery1连接数据库正常 但运行提示 EDatabaseError 错误 AdoQuery1:Field '人口总数' not found 的错误
方法一: adoquery1.Active设为false 其SQL 的String List Editor中为:select sum(人数) 人口总数 from 人口表 然后 有代码: [code delphi] var people:string; ... adoquery1.Active:=false; adoquery1.Active:=true; people:=adoquery1.FieldByName('人口总数').AsString;//执行到这里 提示EDatabaseError 错误 AdoQuery1:Field '人口总数' not found ... [/code] 方法二(此方案OK 但不知为何 方法一 行不通): adoquery1.Active设为false 代码: [code delphi] var people:string; ... adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('select sum(人数) 人口总数 from 人口表'); adoquery1.Open; people:=adoquery1.FieldByName('人口总数').AsString; ... [/code] 我按方法二执行 却是OK的 不知原因在哪里 谢谢大大们的指点 編輯記錄
baby2321 重新編輯於 2007-10-30 13:35:59, 註解 無‧
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
adoquery1连接数据库正常 但运行提示 EDatabaseError 错误 AdoQuery1:Field '人口总数' not found 的错误
方法一: adoquery1.Active设为false 其SQL 的String List Editor中为:select sum(人数) 人口总数 from 人口表 然后 有代码: [code delphi] var people:string; ... adoquery1.Active:=false; adoquery1.SQL.Clear; adoquery1.SQL.Add('select sum(人数) 人口总数 from 人口表'); adoquery1.Active:=true; people:=adoquery1.FieldByName('人口总数').AsString;//执行到这里 提示EDatabaseError 错误 AdoQuery1:Field '人口总数' not found ... [/code] 是不是少了SQL语句呀!哈哈! |
baby2321
初階會員 發表:52 回覆:165 積分:48 註冊:2005-06-11 發送簡訊給我 |
谢谢大大的回复
方法一中 我把SQL语句写在了ADOQUERY1对应 SQL 属性里 即Adoquery1的SQL 的String List Editor中为:select sum(人数) 人口总数 from 人口表 我觉得 通过 [code delphi] adoquery1.active:=false; adoquery1.active:=true; [/code] 应该可以实现啊 这里 我已经在Adoquery1的SQL 的String List Editor中写了啊
編輯記錄
baby2321 重新編輯於 2007-10-31 03:08:38, 註解 無‧
|
JustinShen
中階會員 發表:22 回覆:104 積分:80 註冊:2003-09-20 發送簡訊給我 |
|
baby2321
初階會員 發表:52 回覆:165 積分:48 註冊:2005-06-11 發送簡訊給我 |
谢谢JustinShen的回复
Adoquery1的SQL 的String List Editor 调整为:select sum(人数) as 人口总数 from 人口表 仍然提示改错误 我把 select sum(人数) 人口总数 from 人口表 或是 select sum(人数) as 人口总数 from 人口表 放到查询分析器里测试都是OK的 但在程序执行里 就提示我上面说的错误 不知何解 |
wuabc
初階會員 發表:6 回覆:60 積分:33 註冊:2002-10-28 發送簡訊給我 |
===================引 用 baby2321 文 章=================== 谢谢JustinShen的回复 Adoquery1的SQL 的String List Editor 调整为:select sum(人数) as 人口总数 from 人口表 仍然提示改错误 我把 select sum(人数) 人口总数 from 人口表 或是 select sum(人数) as 人口总数 from 人口表 放到查询分析器里测试都是OK的 但在程序执行里 就提示我上面说的错误 不知何解 select sum([人数]) [人口总数] from [人口表] 我猜加中括弧應該可以
編輯記錄
wuabc 重新編輯於 2007-11-06 11:49:57, 註解 無‧
|
baby2321
初階會員 發表:52 回覆:165 積分:48 註冊:2005-06-11 發送簡訊給我 |
|
JustinShen
中階會員 發表:22 回覆:104 積分:80 註冊:2003-09-20 發送簡訊給我 |
我做了个测试,你所说的情况不存在,
1:不使用as关键字sql editor 一定不能通过; 2:使用代码控制ADOQuery中的sql语句没有问题。 代码如下: [code delphi] if ADOQuery2.Active then ADOQuery2.Close; ADOQuery2.SQL.Clear; ADOQUery2.SQL.Text := Edit1.Text; ADOQuery2.Open; [/code] 在这里我使用一个TEdit来提供输入的sql语句,执行一直都没有问题。
------
==================== 我为一切作努力! Justin Shen |
ace33022
一般會員 發表:2 回覆:41 積分:23 註冊:2004-05-14 發送簡訊給我 |
請問你是使用Delphi7還是5,大膽猜一下,可能是編碼的問題
因為欄位名稱並非英文,所以可能會有問題,可以用Profiler查一下嗎?看送到SQL Server端時是否仍是一樣的語句? ===================引 用 baby2321 文 章=================== adoquery1连接数据库正常 但运行提示 EDatabaseError 错误 AdoQuery1:Field '人口总数' not found 的错误 方法一: adoquery1.Active设为false 其SQL 的String List Editor中为:select sum(人数) 人口总数 from 人口表 然后 有代码: [code delphi] var people:string; ... adoquery1.Active:=false; adoquery1.Active:=true; people:=adoquery1.FieldByName('人口总数').AsString;//执行到这里 提示EDatabaseError 错误 AdoQuery1:Field '人口总数' not found ... [/code] 方法二(此方案OK 但不知为何 方法一 行不通): adoquery1.Active设为false 代码: [code delphi] var people:string; ... adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('select sum(人数) 人口总数 from 人口表'); adoquery1.Open; people:=adoquery1.FieldByName('人口总数').AsString; ... [/code] 我按方法二执行 却是OK的 不知原因在哪里 谢谢大大们的指点 |
JustinShen
中階會員 發表:22 回覆:104 積分:80 註冊:2003-09-20 發送簡訊給我 |
|
baby2321
初階會員 發表:52 回覆:165 積分:48 註冊:2005-06-11 發送簡訊給我 |
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
procedure TForm1.Button1Click(Sender: TObject);
begin //select sum(人数) as 人口总数 from 人口表 --〉直接放在ADOQuery1中 ADOQuery1.Active := false; ADOQuery1.Active := true; ShowMessage(adoquery1.FieldByName('人口总数').AsString); end; procedure TForm1.Button2Click(Sender: TObject); begin adoquery2.Close; adoquery2.SQL.Clear; adoquery2.SQL.Add('select sum(人数) as 人口总数 from 人口表'); adoquery2.Open; ShowMessage(adoquery2.FieldByName('人口总数').AsString); end; 测试均为有什么问题,可能是你哪儿语法是不是有全角空格符号呀! http://delphi.ktop.com.tw/board.php?cid=31&fid=97&tid=91197 程序代码在这儿,看看与你的有什么不同!
編輯記錄
sos_admin 重新編輯於 2007-11-09 16:23:59, 註解 無‧
|
baby2321
初階會員 發表:52 回覆:165 積分:48 註冊:2005-06-11 發送簡訊給我 |
谢谢版主sos_admin 的悉心回复
放在ADOQuery1中的代码 我是直接从adoquery1.SQL.Add('select sum(人数) as 人口总数 from 人口表');复制粘贴的 刚才我还特别注意的在ADOQuery1中重写了一遍 仍然提示错误 在这里 我想已经是纯讨论一点点 学术的问题 在此 再一次的谢谢大家 我又新换了一个adoquery 如 adoquery5 select sum(人数) as 人口总数 from 人口表 放在 adoquery5中 这一次却是OK的了 再换到 adoquery1 上面的错误情况又出现了 呵呵 好奇怪啊 所有的问题 还是一点 为什么在 adoquery1.SQL.Add('select sum(人数) as 人口总数 from 人口表'); 中 可行 可就是在 adoquery1里就提示错误了 谢谢大家了 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |