ADOQuery增加记录问题

laohai 2003-09-12 11:17:39
我从1个表里选出了想要的字段,用ADOQuery控件显示出来了。
现在我想向这个组合表里增加(或修改)一个记录。
选表的SQL语句如下:
select f_lineno as 线路代码,f_name as 线路名称 from a_tline order by f_lineno

我是这样写的:
procedure TForm9.Button1Click(Sender: TObject);
begin
form8.ADOQuery1.append;
form8.ADOQuery1.fieldvalues['线路代码']:=Form9.Edit1.Text;
form8.ADOQuery1.fieldvalues['线路名称']:=Form9.Edit2.Text;
form8.ADOQuery1.post;
form8.ADOQuery1.refresh;
end;
运行通过,但当操作时报错如下:
[microsoft][odbc driver for oracle][oracle]ora-12704:字符集不匹配
不知道怎么改
...全文
66 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pdcdiy163 2003-09-29
  • 打赏
  • 举报
回复
form8.ADOQuery1.append;
form8.ADOQuery1.fieldvalues['线路代码']:=Form9.Edit1.Text;
form8.ADOQuery1.fieldvalues['线路名称']:=Form9.Edit2.Text;
form8.ADOQuery1.post;
laohai 2003-09-17
  • 打赏
  • 举报
回复
这都好几天了,怎么还没人回答啊,快郁闷死了
高手你在那里啊!!!
lyx19990623 2003-09-12
  • 打赏
  • 举报
回复
用SQL语句完全可以实现,而且非常简单,但是需要两个ADOQUERY,一个用来显示你的字段,另一个用来进行追加记录

查询:
with ADOquery1 do
begin
close;
sql.clear;
sql.add(' select * from a_tline where 条件 ');
open;
end;
追加:
with ADOquery1 do
begin
close;
sql.clear;
sql.add(' insert into a_tline values('''+edit1.text+''',等等) ');
execSQL;
end;

OK!!!!
hongqi162 2003-09-12
  • 打赏
  • 举报
回复
adoquery没open
yongxin800 2003-09-12
  • 打赏
  • 举报
回复
ADOQuery是否open?
yongxin800 2003-09-12
  • 打赏
  • 举报
回复
用sql语句不行吗
with ADOquery do
begin
close;
sql.clear;
sql.add('insert into a_tline(f_lineno) values('+chr(39)+Form9.Edit1.Text+chr(39)+ ')';
sql.execute;
end;
laohai 2003-09-12
  • 打赏
  • 举报
回复
用了大家说的方法,还是老毛病,唉
用法如下:
strsql:= 'insert into a_tline(f_lineno,f_name)values'('''+Edit1.Text+''','''+Edit2.Text+''')';

with form8.ADOQuery1 do
begin
close;
sql.clear;
sql.add(strsql);
execSQL;
end;
还是报错,字符集不匹配

再问:如果我是从多个表取得所需字段用ADOAquery组合成一个表,需要插入或修改记录,那又该如何办?
tulippopo 2003-09-12
  • 打赏
  • 举报
回复
1、首先要adoqry.OPEN,才能进行adoqry.Append.
2、在数据库结构字段中不要用中文字符,这样非常容易出错!
到时也可以在ADOqry中修改!
lijx18 2003-09-12
  • 打赏
  • 举报
回复
字段取了别名,造成的。
select f_lineno ,f_name from a_tline
order by f_lineno

显示中文字段名,可以有其他很多方式吗?
为什么要这样做呢!
lqxmm 2003-09-12
  • 打赏
  • 举报
回复
你的form8.ADOQuery1 Open了吗?
form8.ADOQuery1.append;
form8.ADOQuery1.fieldByName('线路代码').asstring:=Form9.Edit1.Text;
form8.ADOQuery1.fieldByName('线路名称').asstring:=Form9.Edit2.Text;
form8.ADOQuery1.post;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧