关于追加记录的问题(50分)

  • 主题发起人 主题发起人 阳光1
  • 开始时间 开始时间

阳光1

Unregistered / Unconfirmed
GUEST, unregistred user!
我想将表中一部分记录追加到后面,用的是adocommand,commandtext是这样写的
insert dbf1 select * from dbf1 where name='jack'
执行时说有不认识的动词,请问高手,错在哪里
 
要不要into呢
 
记录重复
你的表没有主关键字吗
 
加上into 又说语法错误,请高手帮帮忙吧
 
我用是dbf 文件,而且是用ado访问的呀
 

dbf库,是否支持
insert dbf1 select * from dbf1 where name='jack'
这们的SQL?
我只知道oracle 8是支持的。
这样试试。
insert into dbf1 as
select * from dbf1 where name='jack';
如果不行,就是你的表不支持这样的语句了。
 
adoquery1.Close;
adoquery1.sql.Clear;
adoquery1.sql.add('insert into dbf1 select * from dbf1 where name=''jack''');
adoquery1.ExecSQL;

用adoquery1试试,已经测试过的,还不行,看看adoconnection设置是否正确。
Extended Properties设为dbase 5.0
Data Source为文件所在路径
 
好像不行,还是语法错误
 
insert into dbf(子段名1,子段名2,...) select 子段名1,子段名2,... from dbf where name=''jack'' '
 
你用的是什么库?oracle 支持这么写,但access不支持
 
insert dbf1 select * from dbf1 where name='jack'
看一下你写的这条语句,
插入到dbf1中 从dbf1中取出
如果真的执行了,数据库就锁死了
 
create #temptable 各字段与原表相同
insert into TempTable select 字段名1,字段名2,字段名3..... from table
insert into table select 字段名1,字段名2,字段名3..... from #temptable
 
adocommand1.Connection.DefaultDatabase:='d:/bpk/shag/out/';
adocommand1.CommandText:='insert into log(time,xmmx,bjmc,sjmx,id,fid) values(:tim,:xmmx,:bjmc,:sjmx,:id,:fid)';
adocommand1.Parameters.ParamByName('tim').Value:=DateTimeToStr(now);
adocommand1.Parameters.ParamByName('xmmx').Value:=strck(wtck[index].name);
adocommand1.Parameters.ParamByName('bjmc').Value:=strck(wtck[index].name+wt_rightview);
adocommand1.Parameters.ParamByName('sjmx').Value:=strck(s);
adocommand1.Parameters.ParamByName('id').Value:=wtck[index].id;
adocommand1.Parameters.ParamByName('fid').Value:=wtck[index].id ;
adocommand1.Execute;
注:STRCK是我的一个字符串处理涵数,因为当插入的字符中有汉字时,插入会不完整
 
再建一个数据源,用来保存查询后的数据的结果。再用
adoquery1.fieldbyname('字段名').asstring:=adoquery1.fieldbyname('字段名').asstring;
这样行吗?
 
支持下面的语法么?

--建立临时表
select * from dbf1 where name='jack' into temp temp_table;

--从临时表取得数据
insert into dbf1 from select * from temp_table;
 
insert dbf1 select * from dbf1 where name='jack'
如果执行n次这条查询,那数据库中得记录会以2的n次方递增,不好吧
 
高手在吗
 
insert dbf1 select * from dbf1 where name=''jack''
 
接受答案了.
 
后退
顶部