用AdoConnection时出错,不知道什么原因?代码如下
if Connection.InTransaction then Connection.RollbackTrans;
Connection.BeginTrans;
begin
Query.FieldByName('dpt_id').AsString:=edit1.Text;
Query.FieldByName('dpt_name').AsString:=edit2.Text;
Query.FieldByName('dpt_id').AsBoolean:=strtobool(x);//var x:string
Query.ExecSQL;
Connection.CommitTrans;
运行时报错:query: field 'dpt_id' not found,求教
问题点数:50、回复次数:9Top
1 楼Jackeystone(晋少)回复于 2002-11-27 10:05:22 得分 10
表里面没有dpt_id字段。Top
2 楼siyu2002(阿努比斯)回复于 2002-11-27 10:09:28 得分 10
同意楼上的,Query数据集中没有dpt_id的字段Top
3 楼flyingkiller(大飞虫)回复于 2002-11-27 10:10:10 得分 10
query.sql.clear;
query.sql.add('select * from dpt');
query.insert;
Query.FieldByName('dpt_id').AsString:=edit1.Text;
Query.FieldByName('dpt_name').AsString:=edit2.Text;
Query.FieldByName('dpt_id').AsBoolean:=strtobool(x);
query.post;
Top
4 楼lightninglu(竹联)回复于 2002-11-27 10:17:25 得分 0
不可能没有dpt_id字段Top
5 楼esu(ESU)回复于 2002-11-27 10:21:09 得分 10
你先双击你的query看看有没有dpt_id字段Top
6 楼mrfanghansheng(☆☆☆木鱼☆☆☆)回复于 2002-11-27 10:21:17 得分 0
Connection的默认数据库指向了哪里?可能指错了而造成找不到这个字段Top
7 楼lightninglu(竹联)回复于 2002-11-27 10:57:36 得分 0
我把代码全贴出来:
VAR X:string;
try
iF CHECK1.Checked THEN X:='1';
IF NOT CHECK1.Checked THEN X:='0';
if datamodule1.DepCnn.InTransaction then datamodule1.DepCnn.RollbackTrans;
datamodule1.DepCnn.BeginTrans;
begin
datamodule1.QryDepart.SQL.Clear;
datamodule1.QryDepart.sql.Add('select count(*) as dpt_id from department_info where dpt_id='+''''+eid.Text+'''');
datamodule1.QryDepart.open;
if datamodule1.QryDepart.FieldByName('DPT_ID').AsInteger>1 then
Messagebox(0,pchar('123'),'1211',MB_OK+MB_iconwarning)
Else IF datamodule1.QryDepart.FieldByName('DPT_ID').AsInteger<=1 then
datamodule1.QryDepart.Insert;
datamodule1.QryDepart.FieldByName('dpt_id').AsString:=eid.Text;
datamodule1.QryDepart.FieldByName('dpt_name').AsString:=ename.Text;
datamodule1.QryDepart.FieldByName('dpt_id').AsBoolean:=strtobool(x);
datamodule1.QryDepart.Post;
//datamodule1.QryDepart.ExecSQL;
datamodule1.DepCnn.CommitTrans;
datamodule1.QryDepart.Refresh;
close;
end;
except
begin
MessageBox(0,pchar('Insert Failed!!!'),'Bath',mb_ok+mb_iconinformation);
datamodule1.DepCnn.RollbackTrans;
exit;
end;
我照楼上的改了一下,问题依旧。
运行时报错:query: field 'dpt_id' not found,Top
8 楼happysl(小星)回复于 2002-11-27 11:01:32 得分 10
你先把那一行删掉,试试下一个字段看看,就知道问题了Top
9 楼lightninglu(竹联)回复于 2002-11-27 11:24:49 得分 0
上面有些错
应该是:
datamodule1.QryDepart.Insert;
datamodule1.QryDepart.FieldByName('dpt_id').AsString:=eid.Text;
datamodule1.QryDepart.FieldByName('dpt_name').AsString:=ename.Text;
datamodule1.QryDepart.FieldByName('dpt_state').AsBoolean:=strtobool(x);
datamodule1.QryDepart.Post;
//datamodule1.QryDepart.ExecSQL;
datamodule1.DepCnn.CommitTrans;
datamodule1.QryDepart.Refresh
Top




