我在做一个修改客户信息的功能,其中一项要修改身份证号码,由于身份证号码ID_Number是主码!所以不能用update来做!因此我用了一个Query_DeleteID指向该客户的信息!
打算把这条客户信息(除了身份证号)复制到另一个以新身份证号码(ComboBox_UpdateTo.Text)建立的记录中去!
然后用另外一个Query_NaturalInfUpdate进行INSERT!最后删除原有的记录!
部分代码如下:
 //用Qery_DeleteID指向原有数据
 Query_DeleteID.Close;
 Query_DeleteID.SQL.Clear;
 Query_DeleteID.SQL.Add('select * from BasicInformation');
 Query_DeleteID.SQL.Add('where ID_Number='''+Form_InformationUpdate.Edit_IDNumber.Text+'''');
 Query_DeleteID.open();
 //以ComboBox_UpdateTo.Text作为身份证号码建立新的记录
 Query_NaturalInfUpdate.Close;
 Query_NaturalInfUpdate.SQL.Clear;
 Query_NaturalInfUpdate.SQL.Add('INSERT INTO BasicInformation');
 Query_NaturalInfUpdate.SQL.Add('VALUES('''+ComboBox_UpdateTo.Text+'''');
 Query_NaturalInfUpdate.SQL.Add(','''+DateTimeToStr(Query_DeleteID.FieldValues['Born'])+''')');
 Query_NaturalInfUpdate.ExecSQL();其中'Born'是datetime类型的!运行时出现“从字符串转换为 datetime 时发生语法错误!”这个错误!各位大哥帮帮忙啊 !

解决方案 »

  1.   

    Query_NaturalInfUpdate.SQL.Add('VALUES('''+ComboBox_UpdateTo.Text+''''); 
    Query_NaturalInfUpdate.SQL.Add(','''+DateTimeToStr(Query_DeleteID.FieldValues['Born'])+''')'); 
    ===>>
    Query_NaturalInfUpdate.SQL.Add(','''+DateTimeToStr(Query_DeleteID.FieldByName('Born').AsDateTime)+''')'); 
      

  2.   

    Query_NaturalInfUpdate.SQL.Add('VALUES('''+ComboBox_UpdateTo.Text+'''');  
    Query_NaturalInfUpdate.SQL.Add(','''+DateTimeToStr(Query_DeleteID.FieldValues['Born'])+''')');  
    ===>> 
    Query_NaturalInfUpdate.SQL.Add(','''+DateTimeToStr(Query_DeleteID.FieldByName('Born').AsDateTime)+''')');