为何利用参数(TParam)传入中文会丢失数据? (100分)

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

lgm

Unregistered / Unconfirmed
GUEST, unregistred user!
我在向数据库插入数据时,利用参数传入各个字段对应的值,但是
当传入中文较长时,则后面的字则会被自动截断,不知为何?
请各位同仁伸出援助之手。
此问题与字段定义大小无关,
若直接使用sql语句而不通过参数传入值则不会被截断。
例如:INSERT INTO TABLE (PATIENDID,NAME) VALUES(1,'大富翁论坛大富翁论坛大富翁论坛大富翁论坛')
则成功。
 
你的字段长度够吗?
 
是吗
不会吧
 
你的参数指定了类型吗?
 
你一定是建立了永久字段,建議你將此字段的Size屬性值改為與其數據庫字段長度相等。
 
以上所说的解决方法我们都试过了,好像不行
 
还有二种可能
一、没有选中Huge String使Delphi默认只有256的字符长度
二、如果是中文最好使用WideString类型。
 
各位大虾,我想知道从TParam 或 TParameter 到 OleVariant 之间是怎样进行转换的,请赐教!!!
最好有个Demo,,,Thanks!
 
这种情况,是需要明确指定 TParameter(ADO) 或 TParam的DataType和size才行的。
 
不会吧 我在3层中用Mome传过整篇文章(上千字)的 没有问题啊!
代码片断如下: 用ClirntDataSet
........
CommandText:=' ..... =:Text_x,............... ';
Params.ParamByName('Text_X').AsString:=Text_Memo.Lines.Text;

.........
DB是Oracel,定义是:
TextCode VARCHAR2(4000) null,
 

你加上这句就可以了
tparams.size=length('your string')
 

Similar threads

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