请问下面几句代码如果访问本地SQL服务器则一切正常,一旦访问远程服务器则出错,请问这是为什么,多谢了
With frmDatas.AdoCards do
Begin
frmDatas.AdoConn.BeginTrans ;
Try //如果变动
if (frmCards.sBianDong=IntToStr(FieldByName('TId').AsInteger)+FieldByName('Nos').AsString) then
Begin
frmDatas.QueryExec(frmDatas.AdoQRUser,'Insert Into CardsChange Select * from Cards10 Where CAST(Tid AS VARCHAR(10))+NOS='+QuotedStr(sBianDong) ); //插入历史记录到变动表 //审核时间是唯一的,因为每次审核,只能变动一次
frmDatas.QueryExec(frmDatas.AdoQRUser,'Update CardsChange SET MEMO='+QuotedStr(DateTimeToStr(Date)+P_User)+'+ISNULL(MEMO,'''') Where CAST(Tid AS VARCHAR(10))+NOS='+QuotedStr(sBianDong)+' and CheckDate='''+DateTimeToStr(FieldByName('CheckDate').AsDateTime)+'''' ); //在变动表里更新当前插入的记录的备注(更新人+时间)
if not(state in [dsEdit,dsInsert]) then Edit;
if NOT VarIsNull(FieldByName('Dept').OldValue) then FieldByName('yDept').AsString:=FieldByName('Dept').OldValue;
if NOT VarIsNull(FieldByName('Users').OldValue) then FieldByName('yUsers').AsString:=FieldByName('Users').OldValue;
FieldByName('EditDate').AsDateTime:=Date;
FieldByName('ChangeDate').AsDateTime:=Date;
FieldByName('BodState').AsInteger:=7;
end; if FieldByName('NewUser').AsString='' then
Begin
if not(state in [dsEdit,dsInsert]) then Edit;
FieldByName('NewUser').AsString:=P_User;
end;
Post;
frmDatas.AdoConn.CommitTrans ;
Refresh;
if frmCards.sBianDong=IntToStr(FieldByName('TId').AsInteger)+FieldByName('Nos').AsString then
MessageBox(0,'变动数据成功','提示',MB_ICONINFORMATION+MB_OK);
frmCards.sBianDong:='';
SetBtnState(THREE_VIEW);
Except
MessageBox(0,'数据保存失败,请检查数据。','提示',MB_ICONINFORMATION+MB_OK);
frmDatas.AdoConn.RollbackTrans ;
End;
end;end;
With frmDatas.AdoCards do
Begin
frmDatas.AdoConn.BeginTrans ;
Try //如果变动
if (frmCards.sBianDong=IntToStr(FieldByName('TId').AsInteger)+FieldByName('Nos').AsString) then
Begin
frmDatas.QueryExec(frmDatas.AdoQRUser,'Insert Into CardsChange Select * from Cards10 Where CAST(Tid AS VARCHAR(10))+NOS='+QuotedStr(sBianDong) ); //插入历史记录到变动表 //审核时间是唯一的,因为每次审核,只能变动一次
frmDatas.QueryExec(frmDatas.AdoQRUser,'Update CardsChange SET MEMO='+QuotedStr(DateTimeToStr(Date)+P_User)+'+ISNULL(MEMO,'''') Where CAST(Tid AS VARCHAR(10))+NOS='+QuotedStr(sBianDong)+' and CheckDate='''+DateTimeToStr(FieldByName('CheckDate').AsDateTime)+'''' ); //在变动表里更新当前插入的记录的备注(更新人+时间)
if not(state in [dsEdit,dsInsert]) then Edit;
if NOT VarIsNull(FieldByName('Dept').OldValue) then FieldByName('yDept').AsString:=FieldByName('Dept').OldValue;
if NOT VarIsNull(FieldByName('Users').OldValue) then FieldByName('yUsers').AsString:=FieldByName('Users').OldValue;
FieldByName('EditDate').AsDateTime:=Date;
FieldByName('ChangeDate').AsDateTime:=Date;
FieldByName('BodState').AsInteger:=7;
end; if FieldByName('NewUser').AsString='' then
Begin
if not(state in [dsEdit,dsInsert]) then Edit;
FieldByName('NewUser').AsString:=P_User;
end;
Post;
frmDatas.AdoConn.CommitTrans ;
Refresh;
if frmCards.sBianDong=IntToStr(FieldByName('TId').AsInteger)+FieldByName('Nos').AsString then
MessageBox(0,'变动数据成功','提示',MB_ICONINFORMATION+MB_OK);
frmCards.sBianDong:='';
SetBtnState(THREE_VIEW);
Except
MessageBox(0,'数据保存失败,请检查数据。','提示',MB_ICONINFORMATION+MB_OK);
frmDatas.AdoConn.RollbackTrans ;
End;
end;end;
解决方案 »
- [高手进]delphi的窗体文件dfm里的<>是什么类型?
- 用SPComm单元中的TCOmm类通过串口发送数据时为速度过快则程序出错.
- 将字符(如:名字,年龄,年月等)转化为16进制该怎么转???
- 这个问题很简单的,请大家进来看看吧!来帮帮我!谢谢
- 修改WINDOWS的长时间格式为短时间格式
- SQL Server 数据库恢复的问题
- 三层结构中如何调用存储过程?
- 怎样在delphi里把整型数转换成型为 xxxx-xx-xx的形式的日期格式。在线
- 快救救我吧!关于线程的内存释放问题!!!
- 有没有可以显示图片的DBNavigator1控件
- DCOM连接报错
- 用BDE的控件查询TEXT类型字段怎么会有截断的现象---很着急
try
//…
except
on e.Exception do
begin
MessageBox(0,'数据保存失败,请检查数据。'+#13#10+e.Message,'提示',MB_ICONINFORMATION+MB_OK);
frmDatas.AdoConn.RollbackTrans ;
end;
end;