delphi只能操作长度不超过255的binary类型吗?(急)(80分)

  • 主题发起人 主题发起人 lycok
  • 开始时间 开始时间
L

lycok

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是delphi6+sql server2000,表中有一字段数据类型binary,当它长度不超过255时,
delphi不会出错,一超过,如256,就会出错,这个问题是什么原因?是delphi的限制,还是
有别的办法?

字段名叫:digitalstatus
delphi调用的程序如下:

var cc:array of integer;
begin
cc:=query1.fieldbyname('DigitalStatus').AsVariant;
end;
 
各位高手,没人关注这个问题吗?真得很急呀!!!
 
要么是BDE的字段长度没设置好,要么就是SQLServer端的长度不符合
 
长度不超过255时,delphi不会出错,一超过256,就会出错,是delphi BDE的限制!
如果你用ADO就没有问题~
 
BDE的字段长度我都设置好了,莲子段的size属性我都设了,还是会出错,错误内容是
“Access violation at address 0047910B in module”,换ADO也是一样的错误
 
用ADO應該不會的!因為我的字段長度有超過2000的!

 
那你的字段是什么类型,字符性的好像没问题,但是现在是binary类型的,这种类型该
怎么才能操作255长度以上的呢?
 
你的程序肯定有问题,你对 cc 都没有分配空间。

如果你原来程序的语法没有问题,就这样做:

var cc:array of integer;
begin
setLength(cc,1024);//要足够大。
cc:=query1.fieldbyname('DigitalStatus').AsVariant;
/// 进行处理
setLength(cc,0);
end;
 
问题不是出在数组长度上,因为,字段长度一小于255就没有任何问题。
 
但不分配空间肯定是有问题的!!!!
因为在那种情况下很有可能是作为 shortstring处理的。

shortstring的最大长度就是 255
 
分配了空间,也是出同样的错误,分配多大的空间都一样
 
各位高手,这个问题真得没法解决吗?
 
这个问题仍然悬而未决,我只好把一个字段拆成几个了
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
724
import
I
I
回复
0
查看
781
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部