📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB, ExtCtrls;
type
TForm1 = class(TForm)
btnWrite: TButton;
Button2: TButton;
ADOcon: TADOConnection;
table1: TADOTable;
ds: TDataSource;
grid: TDBGrid;
imgSou: TImage;
imgDest: TImage;
btnRead: TButton;
ADOConnection1: TADOConnection;
btnWRImage: TButton;
DataSource1: TDataSource;
Button1: TButton;
ADOTable1: TADOTable;
ADOQuery1: TADOQuery;
Button3: TButton;
procedure btnWriteClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure btnReadClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btnWRImageClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnWriteClick(Sender: TObject);
var adoqry : TADOQuery;
strm:tmemorystream;
// stream: TStream;
rf : TReader;
n,n2: integer;
w: TWriter;
nb,nb2 :byte;
dd,d2,d3 : double;
str,s2,s3: string;
lw,lw2 : longword;
buf,buf2 :array[0..255] of char;
pbuf,pbuf2 : pchar;
ii : integer;
cbuf : char;
begin
adoqry := TADOQuery.Create(Nil);
adoqry.Connection := ADOcon;
{ strm:=tmemorystream.Create;
imgsou.Picture.Bitmap.SaveToStream(strm);//将图像数据写入内存流
showMessage(Inttostr(strm.size));
table1.Edit;
(table1.FieldByName('obj') as TBlobField).loadfromstream(strm);//从内存流中装载图像数据
strm.Free;
strm:=tmemorystream.Create;
(table1.FieldByName('obj') as TBlobField).SaveToStream(strm);//从内存流中装载图像数据
showMessage(Inttostr(strm.size));
imgDest.Picture.Bitmap.LoadFromStream(strm);
imgDest.Refresh;
strm.Free; }
strm:=tmemorystream.Create;
dd := 12.35;
strm.Write(dd,sizeof(double));
str := 'strong据fdsfdasfdhhgdygdgsgfsdgfsdgdfsgdsgfgffsa';
// pbuf := pchar(@str);
//strm.Write(pbuf^, Length(str));
// for ii := 0 to Length
//strm.Write(Char(str),255);
strm.Write(str,sizeof(string));
nb := 25;
n := 25;
strm.Write(n,sizeof(byte));
s2 := '';
// strm.Write(s2,sizeof(string));
lw := 5678;
strm.Write(lw,sizeof(longword));
table1.First;
table1.Edit;
(table1.FieldByName('obj') as TBlobField).loadfromstream(strm);//从内存流中装载数据
table1.Post;
strm.Free;
//stream:=TFileStream.Create('',fmCreate);
strm:=tmemorystream.Create;
n := (table1.FieldByName('obj') as TBlobField).BlobSize;
//showMessage(Inttostr(n));
table1.First;
table1.Edit;
(table1.FieldByName('obj') as TBlobField).SaveToStream(strm);//装载数据到内存流中
strm.Position := 0;
strm.Read(d2,sizeof(double));
s2 := '';
strm.Read(s2,sizeof(string));
strm.Read(nb2,sizeof(byte));
//strm.Read(s3,sizeof(string));
strm.Read(lw2,sizeof(longword));
showmessage(FloattoStr(d2) + ',' + s2 + ',' + InttoStr(nb2) + ',' + InttoStr(lw2) + '.');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
stream: TStream;
n: integer;
str: string;
w: TWriter;
rf : TReader;
begin
n := 10;
str := 'test string';
stream := TFileStream.Create ('e:\temp\test.txt', fmCreate);
w := TWriter.Create (stream, 1024);
w.WriteFloat(12.35);
w.WriteFloat(22.53);
{ w.WriteInteger (n);
w.WriteString (str);
w.WriteString('Second');
w.WriteString('Third');
} w.Free;
stream.Free;
stream := TFileStream.Create ('e:\temp\test.txt', fmOpenRead);
rf := TReader.Create(stream,1024);
showMessage(Inttostr(stream.size));
n := rf.ReadInteger;
str := rf.ReadString;
str := str+'-' + rf.ReadString;
showmessage(InttoStr(n) + ',' + str);
end;
procedure TForm1.btnReadClick(Sender: TObject);
var adoqry : TADOQuery;
str : String;
strm:tmemorystream;
dd : double ;
table : TADOTable;
begin
adoqry := TADOQuery.Create(Nil);
adoqry.Connection := ADOConnection1;
// str := 'insert into T_BLOB_TEST (ID) values (5)';
// adoqry.SQL.Add(str);
// adoqry.ExecSQL;
strm:=tmemorystream.Create;
dd := 335;
strm.Write(dd,sizeof(double));
adoqry.Close;
table := TADOTable.Create(Self);
table.Connection := ADOConnection1;
table.TableName :='T_RIVER';// 'T_BLOB_TEST';
table.Active := True;
table.Insert;
table.FieldByName('Name').AsString := 'ertre';
(table.FieldByName('obj') as TBlobField).loadfromstream(strm);
// (table.FieldByName('obj') as TBinaryField).as .loadfromstream(strm);
table.Post;
ShowMessage(inttostr(table.RecordCount));
{
adoqry.SQL.Clear;
str := 'insert into T_RIVER (Name,obj) values (''qqq'',:obj)';
adoqry.SQL.Add(str);
adoqry.Parameters.Items[0]. .asblob:=Strm.datastring;
}
strm.Free;
end;
procedure TForm1.FormShow(Sender: TObject);
var sCon,sCon2 : string;
begin
if ADOcon.Connected then ADOcon.Close;
sCon :='Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + 'db1.mdb' +
';Mode=ReadWrite|Share Deny None;Persist Security Info=False';
sCon2 := 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=dev;Initial Catalog=fiberdb;Data Source=F\FIBER';
sCon2 := 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=dev;Initial Catalog=fiberdb;Data Source=F\FIBER;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=WJM;Use Encryption for Data=False';
ADOcon.ConnectionString := sCon;
//ADOcon.LoginPrompt := True;
ADOcon.ConnectionTimeout := 15;
ADOcon.CursorLocation := clUseClient;
ADOcon.Mode := cmReadWrite;
ADOcon.Open;
table1.Active := True;
end;
procedure TForm1.btnWRImageClick(Sender: TObject);
var adoqry : TADOQuery;
strm:tmemorystream;
// stream: TStream;
begin
strm:=tmemorystream.Create;
imgsou.Picture.Bitmap.SaveToStream(strm);//将图像数据写入内存流
table1.Edit;
(table1.FieldByName('obj') as TBlobField).loadfromstream(strm);//从内存流中装载图像数据
strm.Free;
strm:=tmemorystream.Create;
(table1.FieldByName('obj') as TBlobField).SaveToStream(strm);//从内存流中装载图像数据
strm.Position := 0;
imgDest.Picture.Bitmap.LoadFromStream(strm);
imgDest.Refresh;
strm.Free;
;
end;
procedure TForm1.Button1Click(Sender: TObject);
var adoqry : TADOQuery;
strm:tmemorystream;
// stream: TStream;
begin
strm:=tmemorystream.Create;
imgsou.Picture.Bitmap.SaveToStream(strm);//将图像数据写入内存流
ADOQuery1.Edit;
(ADOQuery1.FieldByName('BUILD_MAP') as TBlobField).loadfromstream(strm);//从内存流中装载图像数据
strm.Free;
adoquery1.Post;
{
strm:=tmemorystream.Create;
(ADOQuery1.FieldByName('BUILD_MAP') as TBlobField).SaveToStream(strm);//从内存流中装载图像数据
strm.Position := 0;
ShowMessage(InttoStr(strm.Size));
imgDest.Picture.Bitmap.LoadFromStream(strm);
imgDest.Refresh; strm.Free; }
end;
procedure TForm1.Button3Click(Sender: TObject);
var adoqry : TADOQuery;
strm:tmemorystream;
begin
strm:=tmemorystream.Create;
(ADOQuery1.FieldByName('BUILD_MAP') as TBlobField).SaveToStream(strm);//从内存流中装载图像数据
strm.Position := 0;
ShowMessage(InttoStr(strm.Size));
imgDest.Picture.Bitmap.LoadFromStream(strm);
imgDest.Refresh;
strm.Free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -