test ok ... query1.FieldbyName('MemoField').AsString:=Memo1.Text; ...
lwm8246的在数据量很大(几十M以上)会出问题的,最后一个字节会变成0,可能是 delphi的bug。bcb的也有问题。 如下: var bs: TMemoryStream; bs := tmemorystream.create; MyMemo.lines.savetostream(bs); bs.postion := 0; (query1.fieldbyname('MemoField') as tblobfield).loadfromstream(bs); bs.free;这样应该可以了。
不好意思,我自己已找到了方法。 可能是我的意思没有表达清楚,我的意思是要把MEMO中的内容连同其他数据一起写入到数据库中。所以,各位给我的方法都不太好用。 源程序: ... //数据库中定义:A,B,C,D:VarChar; E:Blob With DataModule1.IBQuery1 do begin SQL.Clear; SQL.Text:='Insert Into Table (A,B,C,D) Value("A","B","C","D"); ExecSQL; end; ... 如果用各位的方法,我实在不知加到什么地方,还有,各位有没有发现,如果用你们的方法,有一个问题,我不知道如何去描述它,提示一下,SQL插入一段数据后,在数据库中保存的位置比较不固定,这样会出现数据混乱的情况,是不是?我的方法: ... //数据库中定义:A,B,C,D:VarChar; E:Blob With DataModule1.IBQuery1 do begin SQL.Clear; SQL.Text:='Insert Into Table (A,B,C,D,E) Value("A","B","C","D",:S); Param[0].AsBlob:=Memo1.Lines.Text;//注意这一行 ExecSQL; end; ... 验证通过!
to ether(void) length(memo.text)<64k 怎么会有问题呢
With DataModule1.IBQuery1 do begin SQL.Clear; SQL.Text:='Insert Into Table (A,B,C,D,E) Value("A","B","C","D",:S); // Param[0].AsBlob:=Memo1.Lines.Text;//注意这一行] Param[0].AsString:=Memo1.Text;//注意这一行] ExecSQL; end;
...
query1.FieldbyName('MemoField').AsString:=Memo1.Text;
...
delphi的bug。bcb的也有问题。
如下:
var
bs: TMemoryStream;
bs := tmemorystream.create;
MyMemo.lines.savetostream(bs);
bs.postion := 0;
(query1.fieldbyname('MemoField') as tblobfield).loadfromstream(bs);
bs.free;这样应该可以了。
可能是我的意思没有表达清楚,我的意思是要把MEMO中的内容连同其他数据一起写入到数据库中。所以,各位给我的方法都不太好用。
源程序:
...
//数据库中定义:A,B,C,D:VarChar; E:Blob
With DataModule1.IBQuery1 do
begin
SQL.Clear;
SQL.Text:='Insert Into Table (A,B,C,D) Value("A","B","C","D");
ExecSQL;
end;
...
如果用各位的方法,我实在不知加到什么地方,还有,各位有没有发现,如果用你们的方法,有一个问题,我不知道如何去描述它,提示一下,SQL插入一段数据后,在数据库中保存的位置比较不固定,这样会出现数据混乱的情况,是不是?我的方法:
...
//数据库中定义:A,B,C,D:VarChar; E:Blob
With DataModule1.IBQuery1 do
begin
SQL.Clear;
SQL.Text:='Insert Into Table (A,B,C,D,E) Value("A","B","C","D",:S);
Param[0].AsBlob:=Memo1.Lines.Text;//注意这一行
ExecSQL;
end;
...
验证通过!
begin
SQL.Clear;
SQL.Text:='Insert Into Table (A,B,C,D,E) Value("A","B","C","D",:S);
// Param[0].AsBlob:=Memo1.Lines.Text;//注意这一行]
Param[0].AsString:=Memo1.Text;//注意这一行]
ExecSQL;
end;