前两贴如下:也是up有分!
http://expert.csdn.net/Expert/topic/2437/2437099.xml?temp=.1110956
http://expert.csdn.net/Expert/topic/2433/2433072.xml?temp=.1897699问题总结如下:
我想读取一个字段中的数据
这个字段类型是varchar2(1500)
数据库是Oracle用Query来读取
Tempquery.FieldByName(Fieldname).AsString
delphi显示错误为“Invalid BLOB handle in record buffer”Tempquery.FieldByName(Fieldname).Value也读取不出我查过资料,varchar2在oracle8中可以支持4000字节的数据
在oracle7中支持2000字节的数据,
所以varchar2(1500)完全可以,不用改成BLOB类型
现在关键是varchar2(1500)无法在delphi中读取出来,请各位高手指教!

解决方案 »

  1.   

    把您讀岀放入字串數組中阿
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i,J:integer;
      STR:STRING;
      arry:array of string;
    begin
        adoquery1.Close;
        adoquery1.Open ;
        STR:=adoquery1.fieldbyname('temp_str').AsString;
        j:=  length(adoquery1.fieldbyname('temp_str').AsString);
        setlength(arry,j);
        for i:=0 to j-1 do
        begin
            arry[i]:=copy(adoquery1.fieldbyname('temp_str').AsString,i+1,1);
            label2.Caption :=label2.Caption +arry[i]+#10;
            label1.Caption :=inttostr(i);
        end;
    end;
    我測試過,沒有問題,都可以讀岀
      

  2.   

    Blob就要读到StringStream再转换为String了
    操作与其他一样的,我没有Oracle那个大家伙,没法做了