DMMain.cdsSQL.Active:=True;
DMMain.cdsSQL.SQL.Text:=' update Tbl_warehouse set WareHouseName='+#39+fWareHouseName.Text+#39+' , '
+' WareHouseAddr= '+#39+fWareHouseAddr.Text+#39+' , WareHouseMan='+#39+fWareHouseMan.Text+#39+''
+' WareHouseTel= '+#39+fWareHouseTel.Text+#39+' , WareHouseFax='+#39+fWareHouseFax.Text+#39+''
+' WarehouseBank= '+#39+fWarehouseBank.Text+#39+' , WarehouseBankNo='+#39+fWarehouseBankNo.Text+#39+''
+' WarehouseTaxNo= '+#39+fWarehouseTaxNo.Text+#39+''
+' where WareHouseID='+#39+fWareHouseID.Text+#39+'';
ShowMessage(DMMain.cdsSQL.SQL.Text);
DMMain.cdsSQL.ExecSQL;界面上有9个DBedit, 用户可能修改部分字段,对于空字段,Update 失败,怎么解决
换成
QuotedStr(fXXX.Text)
可以用Delphi自带的函数QuotedStr(),代替你的#39单引号。
修改后的代码为:
With DMMain.cdsSQL Do
SQL.Clear;
SQL.Text:=' update Tbl_warehouse set WareHouseName='+QuotedStr(fWareHouseName.Text)+' , '
+' WareHouseAddr= '+QuotedStr(fWareHouseAddr.Text)+' , WareHouseMan='+QuotedStr(fWareHouseMan.Text)+''
+' WareHouseTel= '+QuotedStr(fWareHouseTel.Text)+' , WareHouseFax='+QuotedStr(fWareHouseFax.Text)+''
+' WarehouseBank= '+QuotedStr(fWarehouseBank.Text)+' , WarehouseBankNo='+QuotedStr(fWarehouseBankNo.Text)+''
+' WarehouseTaxNo= '+QuotedStr(fWarehouseTaxNo.Text)+''
+' where WareHouseID='+QuotedStr(fWareHouseID.Text)+'';
ShowMessage(SQL.Text);
ExecSQL;
end;