DELPHI中利用AdvStringGrid往数据库中导入数据出现的问题

在使用AdvStringGrid进行数据库导入时,遇到已存在数据可能导致重复的问题。尤其当导入数据与基础表中的非主键数据关联时,可能会引发错误。为解决这一问题,作者编写了相关代码来避免重复并确保数据的正确关联。
摘要由CSDN通过智能技术生成

最近客户需要往数据库中导入数据,直接通过AdvStringGrid导入是比较简单的,后来发现了一个问题,如果数据库中已经存在的数据,那么在导入进去,岂不是重复了?特别是那个表如果是基础表,正好你导入的时候,有数据需要和那两个相同的数据关联,而且用的不是主键,问题岂不是打了,就写了如下的代码:

procedure TForm1.ToolButton2Click(Sender: TObject);
var
    i :integer;
begin
      adoTbCarrier.Close;
      adoTbCarrier.Open;
      for i := 0 to asg.RowCount-1 do
      begin
      adoQ.SQL.Text :='Select * from carrier where carrierid ='+ #39+asg.Cells[0,i]+#39;
      adoQ.Open;
      if adoQ.RecordCount > 0 then
       begin
          adoQ.Edit;
          adoQ.FieldByName('carrierCode').AsString := asg.Cells[1,i];
          adoQ.Post;
       end
      else
        begin
        adoTbCarrier.Append;
        adoTbCarrier.FieldByName(&

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值