Tempquery.FieldByName(Fieldname).AsString
如果字段Fieldname长度为1500是否不能得到值,怎样才能得到比较长的字段中的值??显示错误为“Invalid BLOB handle in record buffer”
如果字段Fieldname长度为1500是否不能得到值,怎样才能得到比较长的字段中的值??显示错误为“Invalid BLOB handle in record buffer”
可以用字段的位置进行过访问
Tempquery.Fields[数据集中序号].AsString
沒測試過, 感覺應該沒問題!
TO aiirii(ari)但是不知道为什么,就是得不到值是不是string类型有长度限制???
你的数据库是ORACLE还是SQLSERVER?
我的数据库是oracle
To:47522341(睡到8:30)
将数据库的字段属性设置成Text吗?
我不知道如何设置,还要请教!
还要其他设置吗?
试过了,也不行!
是否数据库字段的缺省设置是blob
在哪里可以修改字段属性??
我们可以利用OleContainer来打开保存数据,特别是保存Word文件,但是大部分的情况下,用Word的话,需要生成临时文件,然后载入,这样在性能方面有很大的影响!那么有没有可能不用临时文件而把Word文档保存到数据库中呢?可以,利用流就可以了!将BLob字段中的内容取出, 在OleContainer中显示。VarOleStream : TMemoryStream;begin// OleContainer1OleStream := TMemoryStream.Create;try(Table1.FieldByName('Text') as TBlobField).SaveToStream(OleStream);OleStream.Position := 0;OleContainer1.LoadFromStream(OleStream);OleContainer1.DoVerb(1); //显示finallyOleStream.Free;end;end;
如何取看下面:
var
I:integer;
alist:Tlist;
begin
alist :=GetTemperatureData(FieldByName('PestSet') as TBlobField);
For I:=0 to alist.count do
begin
//放到指定的变量即可
end;
//从数据库得到数据
其中表名是aaa,字段test的类型是BLOB
sqlplus报错是SQL> insert into aaa(test) values('testtest');
insert into aaa(test) values('testtest')
*
ERROR 位于第 1 行:
ORA-01465: invalid hex number
tmp: TBlobStream;
Str: TStringStream;
begin
tmp:=TSlobStream.create(Query.FieldByName('test'), bmRead{//??});
Str.CopyFromStream{//??}(tmp, tmp.Size);
ShowMessage(Str.DataString{//??});
end;
操作与其他一样的,我没有Oracle那个大家伙,没法做了