请教高手,这样的SQL语句没人会吗(16分)

  • 主题发起人 主题发起人 ql
  • 开始时间 开始时间
Q

ql

Unregistered / Unconfirmed
GUEST, unregistred user!
这是用SQL对文本进行修改和删除,请教高手:
var
sqlstr : string;
begin
sqlstr := 'update a#txt set a1 = ''3''';
with adoquery1 do
begin
close;
sql.Clear;
sql.Add(sqlstr);
execsql;
end;

sqlstr := 'delete from a#txt where a1 = ''3''';
with adoquery1 do
begin
close;
sql.Clear;
sql.Add(sqlstr);
execsql;
end;
为什么这样会报错:该 ISAM 不支持在链接表中更新数据
如果想进行这方面的操作应该怎么做???
 
你链接或链接的数据库有问题

SQL语句是没问题的,检查一下你数据库中是否有主键?
 
出错应该出在上面的更新数据那里,你看看,表结构是否有唯一索引,还有条件是否可以加一个,以便更准确的查找要修改的数据
 
a#txt ,这是表名么?感觉有点怪
 
我认为可能是你表设置外键造成的,看看有没有别的表把此表的a1列设成了表的外键
 
高手都给你答案了!我来迟了!
 
谢谢大家的回复,a#txt这不是表名,是一个以逗号分割字段的文本文件,希望大家共同探讨一下,请帮忙提前
 
看来我的猜测是胡说了 大家别笑话小弟 [:D]
 
你的update修改条件不明确!
 
to: ww20000309
这是标准的SQL语句,加上WHERE条件其结果也是一样的
 
改成 sqlstr := 'delete from [a#txt] where a1 = ''3''';试试
 
难道真的没有人会吗???
 
????
可以这么写么
我觉得不可能的, 毕竟是文本文件不是数据库,没有主键的说法,所以你的where语句根本是找不到确定的一条记录的,你试试将所有的字段都作为条件加入where语句,也许这样可行,也许还是不允许,毕竟文本文件里有两条完全一样的记录也是可能的。
建议还是自己扫描文本文件找记录的方式,不要指望SQL语句搞定了
 

Similar threads

I
回复
0
查看
667
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
609
import
I
后退
顶部