SQL Server中字段长度超过255字符的问题

时间:2022-12-30 21:19:33
我现在碰到这样一个问题,如果我在SQL Server中的一个字段的长度超过255字符,在Delphi程序中就会被截断为255字符。我在Query Analyzer中碰到的同样问题可以通过设置它的属性解决,但是在Delphi中我找不到类似的属性,哪位大虾可以给一些提示或解决方案?谢谢

我的数据库操作环境:BDE+SQL Server 7

8 个解决方案

#1


var
  Ls : string;
  
begin
  ls := '';
  ls := ls+'fdasdfa';
  ls := ls+'fdsafdasfdas';
end;

用这种方式就可以了

#2


谢谢 zsjzwj(北极熊)。我想过这种办法,但是这样对我的程序影响太大,我希望能找到一个办法,比如设置数据控件的属性什么的,可以让程序直接接收到超过255字符的字段中的所有内容。

哪位大虾有这样的经验吗?谢谢

#3


目前是不行的,只有进行分割的。

#4


var ls:WideString;
begin
  ls:=ds.FieldByName('FieldName').Value;
end;
不知道這樣可以不?

#5


樓主說的在delphi程序中會被截斷字段,好像不對吧?
要看你是如何取的數據了。我的500個字符都不會被截掉呀。

#6


楼主应该把问题描述得更清楚一点,写个例子吧,大家也好明白,要不瞎猜半天,都不是问题的所在

#7


是这样的,我在数据库中有一个字段长度是400字节,但是在Delphi的程序中读取这个字段的时候发现字符串被截断了。经检查在TQuery中该字段的长度只有255个字节。我想请教的是:是不是数据库连接的参数或者SQL Server上可以修改某些配置使我的TQuery可以读到完整的超过255个字节的字符串。

#8


经过测试,发现是BDE的SQL Server驱动的问题,如果我采用ADO或ODBC,就没有这个问题了。谢谢大家。

#1


var
  Ls : string;
  
begin
  ls := '';
  ls := ls+'fdasdfa';
  ls := ls+'fdsafdasfdas';
end;

用这种方式就可以了

#2


谢谢 zsjzwj(北极熊)。我想过这种办法,但是这样对我的程序影响太大,我希望能找到一个办法,比如设置数据控件的属性什么的,可以让程序直接接收到超过255字符的字段中的所有内容。

哪位大虾有这样的经验吗?谢谢

#3


目前是不行的,只有进行分割的。

#4


var ls:WideString;
begin
  ls:=ds.FieldByName('FieldName').Value;
end;
不知道這樣可以不?

#5


樓主說的在delphi程序中會被截斷字段,好像不對吧?
要看你是如何取的數據了。我的500個字符都不會被截掉呀。

#6


楼主应该把问题描述得更清楚一点,写个例子吧,大家也好明白,要不瞎猜半天,都不是问题的所在

#7


是这样的,我在数据库中有一个字段长度是400字节,但是在Delphi的程序中读取这个字段的时候发现字符串被截断了。经检查在TQuery中该字段的长度只有255个字节。我想请教的是:是不是数据库连接的参数或者SQL Server上可以修改某些配置使我的TQuery可以读到完整的超过255个字节的字符串。

#8


经过测试,发现是BDE的SQL Server驱动的问题,如果我采用ADO或ODBC,就没有这个问题了。谢谢大家。