blueforgetmenot 2023-09-01 16:22 采纳率: 100%
浏览 7
已结题

SQLServer 插入记录报错


begin
          RzProgressStatus1.Percent:=0;
          s1:='';
          for i2:=1 to mylist.Count do
          begin
            //rid1:=IntToStr(i2+1);
            rid1:= IntToStr(i2);
            RzProgressStatus1.Percent:=50*i2 div i1 ;
            s2:= QuotedStr(Utf8Decode(mylist[i2-1]));
            //s1:=s1+'insert into CUXIAOINFO (P_ID,G_ID,R_ID,DATE) values('+bagid+','+s2+','+rid1+') ';
            s1:=s1+'insert into CUXIAOINFO (R_ID,P_ID,G_ID) values('+rid1+','+bagid+','+s2+') ';
          end;
          con1.Open;
          con1.BeginTrans;
          cmd1.CommandText:=s1;
          cmd1.Execute();
          con1.CommitTrans;
          RzStatusPane2.Caption:= 'Êý¾Ýµ¼Èë³É¹¦£¡';
          RzProgressStatus1.Percent:=100;
          Time:=(GetTickCount-Time);
          MsgStr:=Format('ÓÃʱ %d ºÁÃë',[Time]);
          ShowMessage(MsgStr);

        end ;

用ADO连接SQLServer, 字符串bagid如果是全数字,没问题,一旦出现非数字字符串,就报告附近有语法错误,不明白是什么问题。反倒是字符串s2就没问题,难道对bagid字符串用 QuotedStr函数处理?但是这个函数只是解决汉字乱码的问题啊。字段P_ID,G_ID都是nchar类型,到底是什么问题啊?

  • 写回答

2条回答 默认 最新

  • blueforgetmenot 2023-09-02 10:56
    关注

    还是字符串处理问题,真的需要对bagid字符串用 QuotedStr函数处理!唉!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月12日
  • 已采纳回答 9月4日
  • 创建了问题 9月1日