请教数组中的数据如何存、取于数据库的二进制字段中????数组可能长达1024字节
谢谢
谢谢
解决方案 »
- 想对从A-Z的单词随机排布,在tStringlist
- 只知控件的句柄Handle,如何获取控件的属性?
- 100分求PDU解码(delphi源代码)急急急!!!
- 各位朋友,我知道你们只关心技术,其实我也一样
- ics控件包中的问题。急!
- 奇怪的现象:value of field 'COUNT(*)' if out of range
- 怎样设置短消息的有效期??发送短消息(PDU模式),如果对方关机超过5分钟以上,短消息中心不再发送该短消息。
- 我在用TidHTTP控件执行get方法时为什么出现错误?
- 文本文件分段读取的问题,大送分!!!
- 高分求解,关于DBGrid和合计的问题
- listview好象只有第一列才能被选种啊,怎样让后面的列被选种呢?
- 在Delphi中,除了下载第三方软件外,有没有给源代码加密的办法?
整个访问过程又该如何做呢??
高手帮帮忙
TMemoryStream (for working with a memory buffer)
TBlobStream (for working with BLOB fields)
Var
SqlStr:String;
Buffer: PChar;
MemSize,i,j: Integer;
Stream: TMemoryStream;
S:string;
DoorParam:array[1..1024]of byte;
begin
for i:=1 to 1024 do
DoorParam[i]:=i; Stream :=TMemoryStream.Create();
try
Stream.Seek(0, 2); {Seek 0 bytes from the stream's end point}
S := ' This line will be added to the end';
//Buffer:=@s;
Stream.Write(pchar(s)^, Length(s));
//memo1.setTextBuf
TRY
if Edit2.text='' then
begin
MessageDlg('请确定添加的控制器名称',mtError,[mbOK],0);
end;
SqlStr:='Insert into Controlors(ControlorID,Model,ControlorType,DoorCFG)';
SqlStr:=SqlStr+' values(:p1,:p2,:p3,:p4)';
with DM.DataMD.QPublic do
begin
if Active then close;
Sql.Clear;
sql.Add(SqlStr);
Parameters.parambyname('p1').Value:=StrToInt(TRIM(Edit1.Text));
{型号\控制器类型}
if Trim(ComBoBox1.Text)='DCU9010/XP 两门控制器'then
Begin
Parameters.parambyname('p2').Value:='DCU9010/XP';
Parameters.parambyname('p3').Value:=16;
end;
if Trim(ComBoBox1.Text)='DCU9020 四门控制器'then
begin
Parameters.parambyname('p2').Value:='DCU9020';
Parameters.parambyname('p3').Value:=0;
end;
if Trim(ComBoBox1.Text)='DCU9020XP 四门控制器'then
begin
Parameters.parambyname('p2').Value:='DCU9020XP';
Parameters.parambyname('p3').Value:=8;
end;
Parameters.parambyname('p4').LoadFromStream(Stream,ftBlob);
Execsql;
end;
except
on E: Exception do
MessageDlg(String(E.message),mtError,[mbOK],0);
end;
finally
Stream.Free;
end;
end;
写进去了可不知道如何读出来
高手帮忙啊
Buffer: PChar;
Stream: TMemoryStream;
DoorParam:array[1..1024]of byte;
begin
for i:=1 to 1024 do
DoorParam[i]:=i;//初始化数组 Stream :=TMemoryStream.Create();
try
Stream.Seek(0, 2); {Seek 0 bytes from the stream's end point}
Stream.Write(pchar(@DoorParam)^, Length(s));
{写数据库} {DoorCFG 为image字段}
SqlStr:='Insert into Controlors(ControlorID,DoorCFG)';
SqlStr:=SqlStr+' values(:p1,:p2)';
with DataSet do
begin
if Active then close;
Sql.Clear;
sql.Add(SqlStr);
Parameters.parambyname('p1').Value:=StrToInt(TRIM(Edit1.Text));
{通过内存流写}
Parameters.parambyname('p4').LoadFromStream(Stream,ftBlob);
execsql;
finally
Stream.Free;
end;
看看有没错
可能写进去了,可不知道咋读出来
读出来后看到的是一堆乱码,何顾呀???
谁能解不??