PB9.0通过odbc连接sqlserver2008R2数据库。调用存储过程 的命令的宽度的问题

crazy_boom 2020-08-23 01:52:53
Pb:PowerBuilder9.0
数据库:SqlServer2008R2
数据库连接方式:ODBC

问题如下:
PB中 定义执行存储过程的代码 如下
DECLARE logical_procedure_name2 PROCEDURE FOR Mapping
@Param1 = :ls_typeCode, //值为 '001'
@Param2 = :ls_code, //值为 '002'
@Param3 = :ls_name, //值为 '中国好孩子'
@Param4 = :ls_Comments, //值为 '参加'
@Param5 = :ls_doccode, //值为 '0003'
@Param6 = :ls_docname //值为 '大中国'
USING pacs_tran;

PB中调用存储过程的地方 如下
EXECUTE logical_procedure_name2 ;

我在数据库中跟踪到的执行结果是下面的
Exec Mapping '001','002','中国好孩子','参加','0003','大

如果将@Param3 = :ls_name, //值为 '中国好孩'

在PB中执行EXECUTE logical_procedure_name2 ; 后

在数据库中跟踪到的结果是
Exec Mapping '001','002','中国好孩子','参加','0003','大中


非常奇怪 开始怀疑是ODBC的问题 检查了 也没什么。
有可能是字符集的问题?

...全文
365 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazy_boom 2020-08-23
  • 打赏
  • 举报
回复
问题已经找到了 是PB 连接ODBC的参数的问题 s.DBParm = "ConnectString='DSN=sql2008R2;UID=sa;PWD=zxxxc(*&',DisableBind=1,StaticBind=0,CallEscape='No',DelimitIdentifier='Yes',StripParmNames='Yes'" 换成 s.DBParm = "ConnectString='DSN=sql2008R2;UID=sa;PWD=zxxxc(*&',CallEscape='No',DelimitIdentifier='Yes',StripParmNames='Yes'"

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧