我用要把一个Oracle表中的数据导入到一个SQL Server表中, 组件连接如下:SQL Server数据库<-->ADOConnection1<-->ADOQuery1<-->DataSetProvider1<-->ClientDataSet1Oracle数据库<-->ADOConnection2<-->ADOQuery2ClientDataSet1.CommandText := 'update ShipComp set ShipName=:SN, Power=:Pw';
ClientDataSet1.Params.ParamByName('SN').Value := ADOQuery2.FieldByName('ShipName').Value;
ClientDataSet1.Params.ParamByName('Pw').Value := ADOQuery2.FieldByName('Power').Value;
ClientDataSet1.Execute; 其中ShipName字段为字符串型, Power字段为整形, 当ADOQuery2里的字段内容为NULL时,无法执行更新. 但我的程序里又不能用AsString或AsInteger这样的方法来硬性转换, 请问还有什么好办法吗?
ClientDataSet1.Params.ParamByName('SN').Value := ADOQuery2.FieldByName('ShipName').Value;
ClientDataSet1.Params.ParamByName('Pw').Value := ADOQuery2.FieldByName('Power').Value;
ClientDataSet1.Execute; 其中ShipName字段为字符串型, Power字段为整形, 当ADOQuery2里的字段内容为NULL时,无法执行更新. 但我的程序里又不能用AsString或AsInteger这样的方法来硬性转换, 请问还有什么好办法吗?
if ADOQuery2.FieldByName('ShipName').value<>null then
ClientDataSet1.Params.ParamValues['SN']:= ADOQuery2.FieldByName('ShipName').Value;
if ADOQuery2.FieldByName('ShipName').value<>null then
ClientDataSet1.Params.ParamValues['Pw']:= ADOQuery2.FieldByName('Power').Value;
ClientDataSet1.Execute;
if ADOQuery2.FieldByName('ShipName').value<>null then
ClientDataSet1.Params.ParamValues['SN']:= ADOQuery2.FieldByName('ShipName').Value;
if ADOQuery2.FieldByName('ShipName').value<>null then
ClientDataSet1.Params.ParamValues['Pw']:= ADOQuery2.FieldByName('Power').Value;
ClientDataSet1.Execute;
if ADOQuery2.FieldByName('ShipName').value<>null then
ClientDataSet1.Params.ParamValues['SN']:= ADOQuery2.FieldByName('ShipName').Value;
if ADOQuery2.FieldByName('ShipName').value<>null then
ClientDataSet1.Params.ParamValues['Pw']:= ADOQuery2.FieldByName('Power').Value;
ClientDataSet1.Execute;