ODBC方式连接SQL SERVER,为什么不能执行带参数的存储过程?

waming 2003-07-18 03:19:56
带参数执行存储过程时不能成功,错误提示为:“对于造型说明无效的字符值”。
用JDBC方式连接时也不行。
用直连方式连接时能够成功执行。

我现在做的项目不用直连方式,怎么解决这个问题?

请各位高手不吝赐教。
...全文
108 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
waming 2003-07-31
  • 打赏
  • 举报
回复
感谢各位热心解答,我自己将问题已解决。

我是在用PowerBuilder开发的程序中执行存储过程的,用PowerBuilder的事物对象连接ODBC数据源时,必须在事物对象的DBParm中写上"CallEscape = 'No'",才能执行带参数的存储过程。默认情况下"CallEscape ='Yes'",ODBC接口会避免对存储过程的调用语法的转换;"CallEscape ='No'"时,ODBC接口在发送命令前会使用数据库专用的驱动转换存储过程的语法。
原文:
CallEscape = 'value'

Parameter Description
value Controls whether the ODBC interface uses call escape syntax for stored procedure calls or converts the calls to driver-specific native SQL syntax.

Values are:
?Yes (Default) The ODBC interface uses call escape syntax for stored procedure calls
?No The ODBC interface converts stored procedure calls to driver-specific native SQL syntax before sending the command to the ODBC driver
seth99 2003-07-22
  • 打赏
  • 举报
回复
Sorry,打错了cmd应该为datacmd
========================================
datacmd.Parameters.Refresh
datacmd.parameters(0) = 'b'
datacmd.parameters(1) = 'a'
========================================
seth99 2003-07-22
  • 打赏
  • 举报
回复
好像datacmd.parameters是从0开始的吧,try
cmd.Parameters.Refresh
datacmd.parameters(0) = 'b'
datacmd.parameters(1) = 'a'
liyiding23 2003-07-22
  • 打赏
  • 举报
回复
是不是" 和'的关系,这两个符号有很大区别"有128长度限止
用OLEDB吧
hourger 2003-07-22
  • 打赏
  • 举报
回复
也就是odbc换码序列
nboys 2003-07-22
  • 打赏
  • 举报
回复
都可以已传参数的
create proc proc_Name
@pwd varchar(50),
@name varchar(50)
as
set nocount on
declare @return int
if @name='a' and @pwd='b'
set @return = 1
else
set @return = 0
select result=@return
set nocount off


调用:
datacmd.commandtext="proc_Name" --存储过程名
datacmd.commandtype=4 --标识储存过程
datacmd.parameters(1) = 'b'
datacmd.parameters(2) = 'a'
set rs = datacmd.execute() -执行
if rs("result")=0 then
....
else
......
hourger 2003-07-22
  • 打赏
  • 举报
回复
可以的,或许你传参有问题!!
pengdali 2003-07-18
  • 打赏
  • 举报
回复
http://www.microsoft.com/china/sql/downloads/2000/jdbc.asp

用这个驱动连接数据库
liuyun2003 2003-07-18
  • 打赏
  • 举报
回复
估计可能ODBC不支持你的数据类型。有可能的话,把代码贴上来看看。

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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