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)
页面执行时间:2.668毫秒