scorpioer 发表于 2009-11-06 10:49

asp页面输入中文字符查询时报错

informix server:IBM Informix Dynamic Server Version 10.00.FC8
informix codeset:
dbs_dbsnamesysmaster
dbs_collateen_US.819

asp webserver: Windows2003 +IIS + IBM InformixClient-SDK 2.90

odbc client locale:en_US.819

odbc database locale:en_US.819

setnet32config: CLIENT_LOCAL=en_US.819

setnet32 config: DB_LOCAL:en_US.819



具体问题:我在webserver上新建了systemdsn,通过asp调用dsn,在输入中文字符(例如姓名)来查询informix数据库的内容就会报错。但输入英文帐号就可以查询出来数据。我想应该是字符集设置的问题,但不知道该如何解决。。请各位帮帮忙,谢谢



报错内容:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'
ODBC 驱动程序不支持所需的属性。

[ 本帖最后由 scorpioer 于 2009-11-6 10:53 编辑 ]

3sane 发表于 2009-11-06 10:54

回复 #1 scorpioer 的帖子

可以在服务器端看看你链接的session返回的信息,比如SQL语句,sqlcode等,另外可以用excel用这个ODBC的数据源倒些带中文的表看看?
我反而碰到把字符集设成zh_CN.gb反而有问题,用en_US.819却好了:mrgreen:

scorpioer 发表于 2009-11-06 11:19

我导出来的中文数据是正常显示的呀,我是在asp页面中输入中文姓名,然后想通过中文姓名查找出相关信息的时候报错啊

scorpioer 发表于 2009-11-06 16:53

自己顶上去:em17:

ziggler 发表于 2009-11-06 16:59

找支持中文的ODBC驱动。

liaosnet 发表于 2009-11-06 16:59

回复 #3 scorpioer 的帖子

曾经使用过jsp+jdbc连informix数据库..
也许asp+odbc方式也应当类似..需要将数据库服务器的环境设置为zh_CN.gb
需要更改的环境包括:
LANG=zh_CN.gb
DBLANG=zhCN.gb
DB_LOCALE=zh_CN.gb
SERVER_LOCALE=zh_CN.gb
CLIENT_LOCALE=zh_CN.gb

[ 本帖最后由 liaosnet 于 2009-11-6 17:01 编辑 ]

MicroHard 发表于 2009-11-06 21:38

可以非常肯定地告诉楼主,在你这个环境下,不可能解决这个问题。

悄悄地告诉你,除了换CSDK,你的一切努力都将是浪费时间。

liaosnet 发表于 2009-11-26 22:44

今天做了下测试,在数据库服务器上的用户环境设置为
LANG=zh_CN.gb
DBLANG=zh_CN.gb
DB_LOCALE=zh_CN.gb
SERVER_LOCALE=zh_CN.gb
CLIENT_LOCALE=zh_CN.gb

WINDOWS下的CSDK的用户环境设置与服务端相同,可以通过winsql更改中文记录(不然直接在winsql中输入中文,但拷贝中文到界面上可以.).winsql也是通过ODBC连到数据库的..

使用的环境是:rhel4.7,ids11.40uc5

liaosnet 发表于 2009-11-30 16:41

今天测试了一下..数据库环境为上面所说..
使用ODBC连库,然后使用ASP查询中文正常..

BTW:zh_CN.gb 即是GB2312,支持的汉字数约为6700多个,若不在这个范围内的可能有问题..

[ 本帖最后由 liaosnet 于 2009-11-30 16:42 编辑 ]

scorpioer 发表于 2010-01-11 18:34

不好意思这么久才回来回帖

LANG=zh_CN.gb
DBLANG=zh_CN.gb
DB_LOCALE=zh_CN.gb
SERVER_LOCALE=zh_CN.gb
CLIENT_LOCALE=zh_CN.gb

我直接把下面这段copy到informix用户中的.bash_profile后重新登陆了一下。

然后在设置odbc-Environment-Use Server Database Locale时,只要点上这个复选框,Database Locale的值就自动变成en_US.819了。

然后执行asp的时候会提示:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
Error opening required code-set conversion object file.

**********************************************
。bash_profile文件:

echo "***********************************"
echo "*                                 *"
echo "*1.DATABASE ADMIN - version10 *"
echo "*                                 *"
echo "*2.SQL 4GL      - version7*"
echo "*                                 *"
echo "***********************************"
echo "please enter your choice: \c"
read CHOICE
case $CHOICE in
'1') INFORMIXDIR=/home/informix
    PATH=$INFORMIXDIR/bin:$INFORMIXDIR/lib:$PATH
#    LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:/home/informix/cognos:$INFORMIXDIR/version7/lib:$INFORMIXDIR/version7/lib/esql:/usr/bin/ld:$INFORMIXDIR/lib/esql:/home/informix/local_test:$INFORMIXDIR/lib/esql:/home/informix/dg_eos:$INFORMIXDIR/lib/esql:/home/informix/dg_jingsuan
#    DBLANG=/home/informix/version7/en_us.0333
    ;;
'2') INFORMIXDIR=/home/informix/version7
    LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:$INFORMIXDIR/lib/tools
    PATH=$INFORMIXDIR/bin:$INFORMIXDIR/lib:$PATH:/home/informix/cognos:$PATH:/home/informix/ywfx:$PATH:/home/informix/idscheck:$PATH:/home/informix/local_test:$PATH:/home/informix/dg_eos:$PATH:/home/informix/dg_jingsuan:.
    HOME=/home/informix/versionn7
    export HOME
    cd $HOME
    ;;
*) echo "choice has to be 1 or 2, please retry"
    sleep 3
    exit
    ;;
esac
clear

INFORMIXSERVER=dgserver
ONCONFIG=onconfig.dgcx
INFORMIXSQLHOSTS=/home/informix/etc/sqlhosts
export INFORMIXSERVER INFORMIXDIR ONCONFIG PATH LIBPATH LD_LIBRARY_PATH INFORMIXSQLHOSTS
TERMCAP=$INFORMIXDIR/etc/termcap;export TERMCAP
#LC_ALL=zh.CN.GB18030

LANG="zh_CN.gb"
LANG=zh_CN.gb
DBLANG=zh_CN.gb
DB_LOCALE=zh_CN.gb
SERVER_LOCALE=zh_CN.gb
CLIENT_LOCALE=zh_CN.gb

LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
export LANG LANGUAGE SUPPORTED SYSFONT

**********************************************


新手,还请多多指教。
页: [1] 2
查看完整版本: asp页面输入中文字符查询时报错