Unidac 4.6.11 VirtualTable can not load oracle blob data in Win32 XE3
Posted: Mon 31 Dec 2012 01:50
Unidac 4.6.11 VirtualTable can not load oracle blob data in Win32 XE3
--Oracle table
create table t1(
id number(9) not null,
graphic blob,
primary key (id)
);
--insert some pictures
//Delphi XE3(32),Oracle Blob
//Test VirtualTable1.SaveToStream VirtualTable1.LoadFromStream
//It not correct
procedure TForm39.SpeedButton1Click(Sender: TObject);
var
stream: TMemoryStream;
filename: string;
begin
stream := TMemoryStream.Create;
try
UniQuery1.Close;
UniQuery1.Open;
VirtualTable1.Assign(UniQuery1);
VirtualTable1.SaveToStream(stream);
VirtualTable1.LoadFromStream(stream);
VirtualTable1.Open;
while not VirtualTable1.Eof do
begin
filename := 'c:\' + VirtualTable1.FieldByName('id').AsString + '.jpg';
TBlobField(VirtualTable1.FieldByName('graphic')).SaveToFile(filename);
VirtualTable1.Next;
end;
VirtualTable1.Close;
finally
stream.Free;
end;
VirtualTable1.Open;
end;
//Test VirtualTable1.SaveToFile VirtualTable1.LoadFromFile
//It not correct
procedure TForm39.SpeedButton2Click(Sender: TObject);
var
filename: string;
begin
UniQuery1.Close;
UniQuery1.Open;
VirtualTable1.Assign(UniQuery1);
VirtualTable1.SaveToFile('c:\1.vtd');
VirtualTable1.LoadFromFile('c:\1.vtd');
VirtualTable1.Open;
while not VirtualTable1.Eof do
begin
filename := 'c:\' + VirtualTable1.FieldByName('id').AsString + '.jpg';
TBlobField(VirtualTable1.FieldByName('graphic')).SaveToFile(filename);
VirtualTable1.Next;
end;
VirtualTable1.Close;
end;
--Oracle table
create table t1(
id number(9) not null,
graphic blob,
primary key (id)
);
--insert some pictures
//Delphi XE3(32),Oracle Blob
//Test VirtualTable1.SaveToStream VirtualTable1.LoadFromStream
//It not correct
procedure TForm39.SpeedButton1Click(Sender: TObject);
var
stream: TMemoryStream;
filename: string;
begin
stream := TMemoryStream.Create;
try
UniQuery1.Close;
UniQuery1.Open;
VirtualTable1.Assign(UniQuery1);
VirtualTable1.SaveToStream(stream);
VirtualTable1.LoadFromStream(stream);
VirtualTable1.Open;
while not VirtualTable1.Eof do
begin
filename := 'c:\' + VirtualTable1.FieldByName('id').AsString + '.jpg';
TBlobField(VirtualTable1.FieldByName('graphic')).SaveToFile(filename);
VirtualTable1.Next;
end;
VirtualTable1.Close;
finally
stream.Free;
end;
VirtualTable1.Open;
end;
//Test VirtualTable1.SaveToFile VirtualTable1.LoadFromFile
//It not correct
procedure TForm39.SpeedButton2Click(Sender: TObject);
var
filename: string;
begin
UniQuery1.Close;
UniQuery1.Open;
VirtualTable1.Assign(UniQuery1);
VirtualTable1.SaveToFile('c:\1.vtd');
VirtualTable1.LoadFromFile('c:\1.vtd');
VirtualTable1.Open;
while not VirtualTable1.Eof do
begin
filename := 'c:\' + VirtualTable1.FieldByName('id').AsString + '.jpg';
TBlobField(VirtualTable1.FieldByName('graphic')).SaveToFile(filename);
VirtualTable1.Next;
end;
VirtualTable1.Close;
end;