Database 版 (精华区)
发信人: Fear_All@bbs.ustc.edu.cn (大陆守护者), 信区: cndatabase
标 题: 关于 SQL Server 的一个问题?
发信站: 中国科大BBS站 (Fri Sep 26 21:59:59 1997)
转信站: Lilac!ustcnews!ustcnews!ustcbbs
本人用 SQL Server 建立一应用系统时,出现了以下问题:
使用 Stored Procedure 向数据库一表单插入一条记录.
形式如下:
Create Procedure myproc1
@fld1 char(16),@fld2 int,@fld3 char(8),@fld4 char(8)
AS
BEGIN
Insert <TableName> (fldname1,fldname2,fldname3,fldname4)
Values (fld1,fld2,fld3,fld4)
END
在前台(Delphi)程序调用后,在查看数据则发现:
插入的字符串发生了畸变(参数均传入汉字字符串)
畸变的情况是 : fld1 正常, fld3 最后一个汉字(两个字符)被吃掉,
fld4 最后一个汉字被吃掉.
例如:
fld1:='中国人民';
fld3:='计算机';
fld4:='张三';
则 fldname1 => '中国人民'
fldname3 => '计算'
fldname4 => '张'
在 ISQLw 的界面下直接调用,有同样错误.
注1: 语言集是英文(us_english) 字符集是简体中文(cp936)
在安装 SQL Server 6.5 后,安装语言时(Add Language)出现错误:
报告 COMMON.LOC 文件不存在 (搜索 CD 后未发现该文件)
注2: SQL Server 使用的是正版.
注3: 将参数长度改为
@fld1 char(16),@fld2 int,@fld3 char(10),@fld4 char(10)
则
在Delphi调用中仍然丢字,在ISQLw中则正常.
注4: 纯英文串以及中文加英文串不丢字!
例 : fld3:='计算机aa'
fldname3 => '计算机aa'
注5: BDE 设置中的字符集尝试多次多种均无效.
(其中包括 'ansi ASCII','dBase cp936','Paradox cp936'等)
望高手们赐教. 谢谢.
--
※ 来源: 中国科大BBS站 [bbs.ustc.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.024毫秒