delphi操作dbf数据库 用ADOQuery,插入、删除操作该如何实现?用普通的sql语句好像不行~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我是用tquery和ttable处理dbf的还有,帖一下你的SQL语句看看 ADOQuery连接上dbf后,就和操作ado一样append,insert,delete sqlstr:= 'insert into GOODS(' + ' N_id,' + ' N_barcode,' + ' N_code,' + ' N_goodName,' + ' N_price1,' + ' N_price2,' + ' N_price3,' + ' N_price4) values(''' + FieldByName('WPCODE').AsString + ''', ''' + FieldByName('TXM').AsString + ''', ''' + FieldByName('WPCODE').AsString + ''', ''' + FieldByName('WPMC').AsString + ''', ' + FieldByName('LS_DJ').AsString + ', ' + FieldByName('PF_DJ').AsString + ', ' + FieldByName('YS_DJ1').AsString + ', ' + FieldByName('YS_DJ2').AsString + ')'; exesql(ADOQryDbf, sqlstr);procedure exesql(ADOQuery: TADOQuery; sqlstr:string);begin addsql(ADOQuery,sqlstr); ADOQuery.ExecSQL;end;procedure addsql(ADOQuery: TADOQuery; sqlstr:string);begin with ADOQuery do begin close; SQL.Text:= sqlstr; end;end; procedure addsql(ADOQuery: TADOQuery; sqlstr:string); begin with ADOQuery do begin close; sql.clear; //加上这句试试 SQL.Text:= sqlstr; end; end; procedure addsql(ADOQuery: TADOQuery; sqlstr:string); begin with ADOQuery do begin close; sql.clear; //加上这句试试 SQL.Text:= sqlstr; end; end; ado没试过我用tquery query1.sql.text:= 'insert into yourtable.db ...'; 插入的问题解决了,不是大家想的那样,我的sql语句完全没问题而是adoconnection连接的时候没有把只读属性改过来: ADOConnectionDbf.ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0;' +' Data Source= '+ExtractFilePath(Paramstr(0))+ 'data\; ' +' Extended Properties=dbase 5.0;' //必须把Mode改为ReadWrite,默认为Read +' Mode = ReadWrite; Persist Security Info=False'; 但是删除的问题还是没有解决:用delete语句只能加标记,不能彻底删除~~ adoquerysql.text:= 'pack yourtable' 看似上述语句不行的,哈哈请看 http://info.8844.com/ViewEntry_14637.html 小问题 有关证券交易所数据读取,一分钟刷新几十次覆盖记录表(dbf),影响我读取数据吗? 下面三位哥们进来领分 yujohny(踏网无痕) ,lxh00789(li) wyr521(论坛王子) 百万级的数据处理问题,各位高手请进,在线等待! 关于中国大陆开发网络游戏的前景 怎样让程序启动的更快!? 关于对象的奇怪问题,请高手看一下,多谢了 高手请帮帮我把 用临时表的问题 To:Kingron(WinAPI)如果可以的话,你愿意公布一下你的资料吗?比如:年龄,所学专业之类的??? 代码不执行的问题 SPCOMM 接收数据 中间漏一字节
append,insert,delete
+ ' N_id,'
+ ' N_barcode,'
+ ' N_code,'
+ ' N_goodName,'
+ ' N_price1,'
+ ' N_price2,'
+ ' N_price3,'
+ ' N_price4) values('''
+ FieldByName('WPCODE').AsString + ''', '''
+ FieldByName('TXM').AsString + ''', '''
+ FieldByName('WPCODE').AsString + ''', '''
+ FieldByName('WPMC').AsString + ''', '
+ FieldByName('LS_DJ').AsString + ', '
+ FieldByName('PF_DJ').AsString + ', '
+ FieldByName('YS_DJ1').AsString + ', '
+ FieldByName('YS_DJ2').AsString + ')';
exesql(ADOQryDbf, sqlstr);procedure exesql(ADOQuery: TADOQuery; sqlstr:string);
begin
addsql(ADOQuery,sqlstr);
ADOQuery.ExecSQL;
end;procedure addsql(ADOQuery: TADOQuery; sqlstr:string);
begin
with ADOQuery do
begin
close;
SQL.Text:= sqlstr;
end;
end;
begin
with ADOQuery do
begin
close;
sql.clear; //加上这句试试
SQL.Text:= sqlstr;
end;
end;
begin
with ADOQuery do
begin
close;
sql.clear; //加上这句试试
SQL.Text:= sqlstr;
end;
end;
而是adoconnection连接的时候没有把只读属性改过来:
ADOConnectionDbf.ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0;'
+' Data Source= '+ExtractFilePath(Paramstr(0))+ 'data\; '
+' Extended Properties=dbase 5.0;'
//必须把Mode改为ReadWrite,默认为Read
+' Mode = ReadWrite; Persist Security Info=False';