欢迎来到天天文库
浏览记录
ID:34753462
大小:63.68 KB
页数:3页
时间:2019-03-10
《在pb中显示保存unicode》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、我在做数据库程序是遇到这么一个问题,是关于小语种的问题,还望各位高手大力协助!!!应用的pb是11.5,数据库是sqlserver2005sp3我现在在做关于韩语的一个程序,在数据库中,我把该字段的类型设为nvarchar(50),设好后在该字段中存储任何语种的字都没有问题,包括多种语种混合,如韩语+泰语+越南语+中文+英文。也没有问题。在pb11.5中,我创建一个关于该表的数据窗口,然后预览其中的内容,也没有问题。也就是该字段任何语种都能显示,包括多种语种的混合。也没有问题。但是我新建一行,然后在该列中写入文字的时候却出现了问题。存储大语种,如中文、英文、日文、英文都没有问题。
2、但是在一些小语种上却出现了问题。比如在存储韩文、越南文、泰文是存进去的是?,存入后再检索出来后显示的也是?。不知为何,还望各位给予帮助。在SQL语句中存储小语种是updatetablesetcol=N'value'wherecol='条件',也即在要存的值前面加N,小语种的文字才能够正常存入,如果不加的话存入的就是乱码。在测试pb的数据窗口如何存储小语种是偶尔发现了一个问题。就是当pb的数据窗口update失败时的提示窗口,上面显示的失败原因以及失败的sql语句。图贴不上来,大家看错误提示语句:Rowchangedbetweenretrieveandupdate.Nochange
3、smadetodatabase.UPDATEtable1SETname='안전지역Khôngcóchi'WHEREcode=22ANDname='안전지역'ANDlanguage='pb'这是我想到一个方法,如果能把数据窗口的insert,update语句给提取出来,修改一下,也就是在值前面加N,然后再写回去,这样不久实现了小语种在数据窗口中的存储了吗?但是pb有dw.getselect可以取出数据窗口的sql,有什么办法能够取出数据窗口的insert,update语句呢??另外,如果pb用odbc连接数据库时,在以上的操作中,数据窗口可以直接存储小语种,但是以其它方式比如ADO
4、连接数据库是却不能够在数据窗口直接存储小语种,为什么呢??欢迎大家跟帖这个问题第1个回答:在内地使用的,没有这么多要求.既然ODBC能用,就用ODBC吧,况且ODBC不用安装专用的接口驱动.这个问题第2个回答:菜单->rows->updateproperties->whereclauseforupdate/delete改为KeyColumns即可这个问题第3个回答:三楼误会我的意思了,我的意思不是说保存不上的问题,而是怎么保存多国小语种语言的问题。你说的是不能保存的问题这个问题第4个回答:修改DW的SQLPreview事件中获取DB级语句后return2跳过他自身的更新,再编写代
5、码格式化成你要想要的效果人为提交。这个问题第5个回答:关注...这个问题第6个回答:谢谢楼上的回复,我想能不能有什么办法,在dwupdate时,就像wangxun0997说的那样在dwupdate更新之前,取得dw的update的sql语句,然后修改该sql语句,在修改之后把sql语句写回到dw中,然后在执行dw的update,就像我在该帖子上说的,在update语句的值之前加上N,来实现小语种的保存这个问题第7个回答:可以考虑改变一下连接的方式看看,比如odbc这个问题第8个回答:谢谢各位,这个问题在各位的帮助和我的思考下终于解决了。此后小语种可以在pb上自由的保存了!首先说环
6、境,我的数据库是sqlserver2005,在sqlserver2000也应该能实现,在sqlserver2008上没有测试,应该没有问题。只用把需要保存小语种的列的类型设为nvarchar,nchar,ntext等即可接口:odbc最简单,不用做任何额外的操作,但是用其它连接接口如ado,ole等就需要进行以下的操作才能在pb的数据窗口中保存小语种。我用的是pb11.5,应该是在pb9以上是没有问题的,具体没有测试,各位如果有兴趣可以试试解决方法:利用sql语句,在sql语句中如果需要unicode保存的话就需要在要保存的内容前加N,odbc接口好像是自动加N的(猜测),但是其
7、它接口不是。UPDATEtable1SETname='안전지역Khôngcóchi'WHEREcode=22 保存是肯定失败的UPDATEtable1SETname=N'안전지역Khôngcóchi'WHEREcode=22保存是成功的,原因就在于加N了。方法:在datawindow的sqlpreview事件中添加代码,修改datawindow保存数据窗口中的数据的sql语句。datawindow的sqlpreview事件是数据窗口每保存一条记录执行一次我做了一个通用的,大家可以
此文档下载收益归作者所有