不会吧 delphi 6.0 还会犯这么低级的错误(adocommand 不支持中文) (100分)

  • 主题发起人 主题发起人 chshanghai
  • 开始时间 开始时间
将parameters.parambyname('vusername').value:='江泽民';改为
parameters.parambyname('vusername').Asstring:='江泽民';

 
to zzjat
这样是可以的但复杂一点的sql 语名就不行
另:
我的sql 是为了让大家看得明白才简化的
实际上比这个还复杂
后来我发现问题
才简化为上面的sql 语句试试
发现有问题
难道以前大家没有写个这样的语句吗
 
select * from tablename where 字段名= '''+变量名+'''
如select * from tablename where 字段名= '''+Edit1.text+''' ;

应该可以的
 
不可能的
 
6我还没用过[:(]
 
我得意思是
如果只有一句
select * from tablename where 字段名=:变量
用参数是可以的
但如果比较复一点的
则delphi 在提交参数是如果参数中有中文 但只能提交 到第一个汉字其它的没有了
但如果是E 文则全部提交

 
to 花 儿
你试过没有 没有试过怎么知道不可能的
我试了好几台机器了 都是同一个结果
 
我试了试,的确是chshanghai说得那样,原因还再找 :-(
 
SQL语句都是动态生成再ADD进去的,从来不用DATASET的参数,参数没有我自己
写的语句可靠。
 
to GanQuan
有结果后别忘了通知我一声
 
to 沙隆巴斯的主人
我用的是adocommand 不是adodataset
 
我没用过 ado ,bde 应该可以

不行将varchar 改为nvarchar
char nchar试一下
 
唉!用什么都一样的结果!继续找。。。。。。 :-(((
 
to chshanghai:
难道它不能直接写SQL吗

你就不会生成SQL吗?干吗用那些PARAM。
 
我知道用format 生成sql 但有此时候生成sql 语名很麻烦
并且 会有问题
 
我想现在不是讨论哪种方法好的时候
而是出现了这种错误
怎么解决
为什么d6会出现这样的bug
这是d6的bug 吗
 
找到了没有
GanQuan

 
吃了个饭先!继续找~~~~(不过估计没戏了:-(
 
不知道可不可以先设置一下parameters的DATATYPE属性。或者通过STRING的方式生成SQL语句
。不通过PARAMETERS,我觉得可能是parameters的原因。
 
设置 DATATYPE 没有用处
不可设置 size 有点用
我发现 如果改为以下代码
with adocommand1 do begin
commandtext:=' select count(*) from tb_user where username=:vusername '
commandtext:=commandtext+'print ''ok''';
parameters.parambyname('vusername').value:='江泽民';
parameters.parambyname('vusername').size:=length('江泽民') //加上这句
execute;
end;
有点用出 不过还是参数传过去后变为 '江泽民ac' 什么是
如果
parameters.parambyname('vusername').size:=length('江泽民') -1
则变为 '江泽s'
无论怎么改 size 属性
反正是不能达到满意的效果?



 
后退
顶部