一个关于更新数据库的问题,很简单的!

TripleH 2003-08-29 09:28:32
怎样将一个StringGrid显示的所有记录,用ADOQuery一下子写入数据库中?(注意:StringGrid中的记录有的是数据库中已存在的( 存在的记录就用Update)。也就是说写入之前要判断记录是不是已存在的)怎么做?
...全文
32 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bad_kit 2003-08-31
  • 打赏
  • 举报
回复
appendrecord
fenglaile 2003-08-31
  • 打赏
  • 举报
回复
用笨方法
从stringgrid读出然后判断是否存在,存在update,不存在用insert
最好是用存储过程
TripleH 2003-08-31
  • 打赏
  • 举报
回复
也就是从STringGrid中读出数据后,往数据库中写!
TripleH 2003-08-31
  • 打赏
  • 举报
回复
我还想知道怎么把这些记录写到数据库中!
zhoutian618 2003-08-31
  • 打赏
  • 举报
回复
//开始事务
try
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('update Table1 set vcMC='aa' where vcBM='001'');
ADOQuery1.SQL.Add('if @@rowcount<=0 ');
ADOQuery1.SQL.Add('begin');
ADOQuery1.SQL.Add('insert into Table1(vcBM, vcMC) values(''001'', ''aa'')
');
ADOQuery1.SQL.Add('end');
ADOQuery1.SQL.Add('select 1');
ADOQuery1.Active:=True;
//提交事务
except
//回滚事务
raise;
end;

//这种方式是最好的,
//这种方式不及适应用EXISTS
//这样造成死锁的机会会少一点
TripleH 2003-08-30
  • 打赏
  • 举报
回复
有谁能帮帮我啊!小弟是初学者!
TripleH 2003-08-29
  • 打赏
  • 举报
回复
我还想知道怎么把这些记录写到数据库中!
silenceboy 2003-08-29
  • 打赏
  • 举报
回复
前面应该加
if exists
zhoutian618 2003-08-29
  • 打赏
  • 举报
回复
SQL形式如下:
update Table1 set vcMC='aa' where vcBM='001'

if @@rowcount<=0
begin
insert into Table1(vcBM, vcMC) values('001', 'aa')
end

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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