我是从数据库里用STRING把数据取出来,
我现在要把数据插到另外一个数据库,如果我用STRING去插的话,那个字段里就没有值,就连续两个逗号,就出错,
如果我用INTEGER去插入的话,我不知道应该怎么写,我都试了,两个引号,三个引号,一个引号都试了,就是不行。
S_开头的都是STRINGSQL
ADOQuery2b.SQL.Clear;
ADOQuery2b.SQL.Text:='INSERT INTO Tb_Machine(Tax_Reg,Machine_No,UpDeclareDate,CardSerial,RetInvDate)
ADOQuery2b.SQL.Text:= ADOQuery2b.SQL.Text +'VALUES ( '''+s_taxreg+''','+s_Machine_No+','''+s_UpDeclareDate+''','+s_CardSerial+','+s_RetInvDate+'';
     
 ADOQuery2b.ExecSQL();
得到的结果:
INSERT INTO Tb_Machine(Tax_Reg,Machine_No,UpDeclareDate,CardSerial,RetInvDate)
VALUES ( '530111727285908', ,'',1000000, ,)
要怎么解决这个问题呢?怎么把逗号间的空附一个NULL值进去呢?

解决方案 »

  1.   

    begin
      ADOQuery2b.SQL.Text := Format(
    'INSERT INTO Tb_Machine(Tax_Reg,Machine_No,UpDeclareDate,CardSerial,RetInvDate)'#13#10 +
    'VALUES (%s,%s,%s,%s,%s)'#13#10, [
        QuotedStr(s_taxreg), QuotedStr(s_Machine_No),
        QuotedStr(s_UpDeclareDate), QuotedStr(s_CardSerial),
        QuotedStr(s_RetInvDate)]);
      try
        ADOQuery2b.ExecSQL;
      except
      end;
    end;
      

  2.   

    我觉得最后应该用四个引号
    SQL
    ADOQuery2b.SQL.Clear;
    ADOQuery2b.SQL.Text:='INSERT INTO Tb_Machine(Tax_Reg,Machine_No,UpDeclareDate,CardSerial,RetInvDate)
    ADOQuery2b.SQL.Text:= ADOQuery2b.SQL.Text +'VALUES ( '''+s_taxreg+''','''+s_Machine_No+''','''+s_UpDeclareDate+''','''+s_CardSerial+''','''+s_RetInvDate+'''';
         
     ADOQuery2b.ExecSQL();
      

  3.   

    SQL
    ADOQuery2b.SQL.Text:='INSERT INTO Tb_Machine(Tax_Reg,Machine_No,UpDeclareDate,CardSerial,RetInvDate)VALUES ( '+#39+s_taxreg+#39+','+#39+s_Machine_No+#39+','+#39+s_UpDeclareDate+#39+','+#39+s_CardSerial+#39+','+#39+s_RetInvDate+#39+')';
         
     ADOQuery2b.ExecSQL;
      

  4.   

    delphi 字符串中两个单引号表示一个实际的一个引号,一个#39也表示一个单引号,另外你也可以用参数传