我在做一个关于sybase的c/s结构的应用程序时碰到一个这样的问题:
在我的sybase数据库中有一个字段类行为image,我在程序中要取得这个字段,并把他的值存在一个文件中,我是这样做的:......
query1.sql.add('select PLD from ......');// 这里是我的加的sql,PLD为那个类
// 型为image NULL的字段,目的是要
//取得我想要得PLD字段;
query1.prepare;
query1.open;
str:=query1.fields.fields[0].asstring;//我要把取得值父给我定义的一个string
//变量str中。
......
之后,我又通过文件读取操作把str的值存到一个文件中,但是,我发现我得到的文件的内容少了很多。我想,是不是string类型的大小是有限制的,在我的sybase库中,我的那个类型为image的字段存储的是一幅图,图的格式是有一些点和线组成,存成文件其实就是一个文本文件,里面的存的字符串是点的坐标。
现在不知道要怎么做,请高手指教。
在我的sybase数据库中有一个字段类行为image,我在程序中要取得这个字段,并把他的值存在一个文件中,我是这样做的:......
query1.sql.add('select PLD from ......');// 这里是我的加的sql,PLD为那个类
// 型为image NULL的字段,目的是要
//取得我想要得PLD字段;
query1.prepare;
query1.open;
str:=query1.fields.fields[0].asstring;//我要把取得值父给我定义的一个string
//变量str中。
......
之后,我又通过文件读取操作把str的值存到一个文件中,但是,我发现我得到的文件的内容少了很多。我想,是不是string类型的大小是有限制的,在我的sybase库中,我的那个类型为image的字段存储的是一幅图,图的格式是有一些点和线组成,存成文件其实就是一个文本文件,里面的存的字符串是点的坐标。
现在不知道要怎么做,请高手指教。
TBlobField(query1.FieldByName('PLD')).LoadFromFile('C:\pld1.bmp');读图片
TBlobField(query1.FieldByName('PLD')).SaveToFile('C:\pld1.bmp');
可以用生成文件的方法
var
FileHandle : integer;
begin
FileHandle := FileCreate('c:\a.txt');
FileWrite(FileHandle, Query1.Fields[0].AsString);
FileClose(FileHandle);
end;
默认string是AnsiString,最大2G,不存在长度限制的问题。
图片的话,用“天外飞仙”