代码大致如下:
procedure TForm_Main.ServerToClient_Delegate();
var
i:integer;
Sql:String;
D_Birth:String;
Finger1:TBlobField;
Finger2:TBlobField;
Finger3:TBlobField;
begin
AConn_Server.Connected:=true;
AQry_Server.Close;
AQry_Server.SQL.Text:='select * from TB_RD_DELEGATE';
AQry_Server.Open; AQry_Client.Close;
AQry_Client.SQL.Text:='delete from TB_RD_DELEGATE';
AQry_Client.ExecSQL; for i:=1 to AQry_Server.RecordCount do
begin
if (AQry_Server.FieldByName('D_BIRTHDAY').AsString='') then
D_Birth:='null'
else
D_Birth:='CDATE('''+AQry_Server.FieldByName('D_BIRTHDAY').AsString+''')'; Finger1:=Tblobfield(AQry_Server.FieldByName('FingerMark1'));
Finger2:=Tblobfield(AQry_Server.FieldByName('FingerMark2'));
Finger3:=Tblobfield(AQry_Server.FieldByName('FingerMark3')); Sql:= 'INSERT INTO TB_RD_DELEGATE ('+
'D_CODE, '+ //1
'D_NAME, '+ //2
'FingerMark1,'+ //27
'FingerMark2,'+ //28
'FingerMark3,'+ //29
'D_PIC) '+ //30
'values( '+
''''+AQry_Server.FieldByName('D_CODE').AsString+''','+ //1
''''+AQry_Server.FieldByName('D_Name').AsString+''','+ //2
':FINGER1,'+ //27
':FINGER2,'+ //28
':FINGER3,'+ //29
''''+AQry_Server.FieldByName('D_PIC').AsString+''')'; //30 AQry_Client.Close;
AQry_Client.SQL.Text:=Sql;
AQry_Client.Parameters.ParamByName('FINGER1').Value:=Finger1.AsVariant;
AQry_Client.Parameters.ParamByName('FINGER2').Value:=Finger2.AsVariant;
AQry_Client.Parameters.ParamByName('FINGER3').Value:=Finger3.AsVariant;
AQry_Client.ExecSQL;
AQry_Server.Next;
end;
//showMessage(Sql);
showMessage('代表信息导入完毕!');
AConn_Server.Connected:=false;
end;为方便阅读,中间省去无关sql若干,
AQry_Server连接Oracle数据库
AQry_Client连接Access
FingerMark1、FingerMark2、FingerMark3为指纹信息
在oracle和access中分别为blob和ole对象
执行程序时报错:“非法的精确度数值”
我用的是Delphi7有没有这方面的高人帮个忙解答一下?
多谢了!
procedure TForm_Main.ServerToClient_Delegate();
var
i:integer;
Sql:String;
D_Birth:String;
Finger1:TBlobField;
Finger2:TBlobField;
Finger3:TBlobField;
begin
AConn_Server.Connected:=true;
AQry_Server.Close;
AQry_Server.SQL.Text:='select * from TB_RD_DELEGATE';
AQry_Server.Open; AQry_Client.Close;
AQry_Client.SQL.Text:='delete from TB_RD_DELEGATE';
AQry_Client.ExecSQL; for i:=1 to AQry_Server.RecordCount do
begin
if (AQry_Server.FieldByName('D_BIRTHDAY').AsString='') then
D_Birth:='null'
else
D_Birth:='CDATE('''+AQry_Server.FieldByName('D_BIRTHDAY').AsString+''')'; Finger1:=Tblobfield(AQry_Server.FieldByName('FingerMark1'));
Finger2:=Tblobfield(AQry_Server.FieldByName('FingerMark2'));
Finger3:=Tblobfield(AQry_Server.FieldByName('FingerMark3')); Sql:= 'INSERT INTO TB_RD_DELEGATE ('+
'D_CODE, '+ //1
'D_NAME, '+ //2
'FingerMark1,'+ //27
'FingerMark2,'+ //28
'FingerMark3,'+ //29
'D_PIC) '+ //30
'values( '+
''''+AQry_Server.FieldByName('D_CODE').AsString+''','+ //1
''''+AQry_Server.FieldByName('D_Name').AsString+''','+ //2
':FINGER1,'+ //27
':FINGER2,'+ //28
':FINGER3,'+ //29
''''+AQry_Server.FieldByName('D_PIC').AsString+''')'; //30 AQry_Client.Close;
AQry_Client.SQL.Text:=Sql;
AQry_Client.Parameters.ParamByName('FINGER1').Value:=Finger1.AsVariant;
AQry_Client.Parameters.ParamByName('FINGER2').Value:=Finger2.AsVariant;
AQry_Client.Parameters.ParamByName('FINGER3').Value:=Finger3.AsVariant;
AQry_Client.ExecSQL;
AQry_Server.Next;
end;
//showMessage(Sql);
showMessage('代表信息导入完毕!');
AConn_Server.Connected:=false;
end;为方便阅读,中间省去无关sql若干,
AQry_Server连接Oracle数据库
AQry_Client连接Access
FingerMark1、FingerMark2、FingerMark3为指纹信息
在oracle和access中分别为blob和ole对象
执行程序时报错:“非法的精确度数值”
我用的是Delphi7有没有这方面的高人帮个忙解答一下?
多谢了!
解决方案 »
- Delphi 如何设置win7 64位右键菜单?
- 最近在公司实习,没什么事,就泡CSDN向前辈们学习,又有水分了,散分吧,增强一下节日气氛!!
- 如何在Delphi中调用DLL中函数?
- 几个与string有关的问题,请各位指点
- ???DBGrid1DrawColumnCell??
- 都来看看呀!!!!UP有分!!!
- 超菜问题:Printdialog怎么用.
- 关于dbimage的问题!
- 三层结构 存储blob失败? 告急 —— 大侠们帮忙,在线等
- 问一个C++调用delphi编写的dll的问题。麻烦有空的看看。
- bde错误$2b32,谁能告诉我怎么解决?
- 大哥大姐,小妹有事相求,请指教!!在线等,谢谢,急!!!
(AQry_Client.FieldByName('FINGER1') As TBlobField).Assign(AQry_Server.FieldByName('FingerMark1') As TBLobField)