Delphi+SQLServer2005 使用Varchar(MAX)时有问题,谁帮忙看一下。(100分)

  • 主题发起人 主题发起人 xagyj
  • 开始时间 开始时间
X

xagyj

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi+SQLServer2005 使用Varchar(MAX)时有问题,无法存取字节数大于400K的文件。(300K以下的文件没有问题),提示出错信息是:text或image指针值与指定的列名冲突。程序如下:
var strm: Tstream;
begin
if openpicturedialog1.Execute then
begin
strm := TFileStream.Create(openpicturedialog1.FileName , fmOpenRead) ;
try
adodataset1.Edit ;
strm.Position :=0;
TBlobfield(adodataset1.FieldByName('bitmap')).LoadFromStream(strm);
adodataset1.Post ;
finally
strm.Free ;
end;
end;
 
补充一点:'bitmap'是Varbaniry(MAX)类型。
[:(]问题有一点进展。如果不用Stream 而直接读取文件则可以保存。看来是Stream用于Varchar(MAX)时有问题。但是为什么呢?下边是改过的程序:
begin
 if openpicturedialog1.Execute then
 begin
adodataset1.Edit ;
TBlobfield(adodataset1.FieldByName('bitmap')).LoadFromFile
  (openpicturedialog1.FileName);
  adodataset1.Post ;
end;
 
嗨,更正:这条语句不能通过。
TBlobfield(adodataset1.FieldByName('bitmap')).LoadFromFileopenpicturedialog1.FileName);

看来就是TBlobFiled的问题,哪位高手指点一二 !!!
 
怎么没有人帮忙呢?对于一个 400 k的文件, 同样的语句,可以通过Image字段,不可以通过Varbinary(MAX)字段。怎么会这样?[:(!]
 
你怎么不用Image类型的字段来保存文件呢?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部