我用VC.Net写了一个COM,用Sql Server的sp_OAMethod方法调用,确始终提示执行失败VC函数原形是:
SetInputProp([in] BSTR bstrServer, [in] BSTR bstrInstance, [in] BSTR bstrDatabase, [in] BSTR bstrUser, [in] BSTR bstrPassword);用Sql Server调用时,可以创建这个实例,但是当调用SetInputProp函数时出错,调用方法如下:exec @hr = sp_OAMethod @object, 'SetInputProp', 'fc', 'esri_sde', 'sde', 'sde', 'sde'错误号是:-2147211483
错误提示:sp_OAMethod 的用法: ObjPointer int IN, MethodName varchar IN [, @returnval <any> OUT [, additional IN, OUT, or BOTH param但我用VB调用正常,请大家给参谋参谋,谢谢拉~~~~
SetInputProp([in] BSTR bstrServer, [in] BSTR bstrInstance, [in] BSTR bstrDatabase, [in] BSTR bstrUser, [in] BSTR bstrPassword);用Sql Server调用时,可以创建这个实例,但是当调用SetInputProp函数时出错,调用方法如下:exec @hr = sp_OAMethod @object, 'SetInputProp', 'fc', 'esri_sde', 'sde', 'sde', 'sde'错误号是:-2147211483
错误提示:sp_OAMethod 的用法: ObjPointer int IN, MethodName varchar IN [, @returnval <any> OUT [, additional IN, OUT, or BOTH param但我用VB调用正常,请大家给参谋参谋,谢谢拉~~~~
sp_OAMethod objecttoken,
methodname
[, returnvalue OUTPUT]
[ , [ @parametername = ] parameter [ OUTPUT ]
[...n]]
这里的returnvalue应该设置为NULL,
exec @hr = sp_OAMethod @object, 'SetInputProp',NULL, 'fc', 'esri_sde', 'sde', 'sde', 'sde'
good luck!
(0x80020005)
用于存储返回的属性值或者方法返回值的 Transact-SQL 局部变量的数据类型与属性或方法返回值的 Visual Basic 数据类型不匹配。或者,要求属性或方法返回值,但该属性或方法未返回值。你在看看!!
===========================================================
类型不匹配
(0x80020005)
用于存储返回的属性值或者方法返回值的 Transact-SQL 局部变量的数据类型与属性或方法返回值的 Visual Basic 数据类型不匹配。或者,要求属性或方法返回值,但该属性或方法未返回值。
===========================================================我的函数没有返回值啊,但是上面提示为什么总是提示返回值问题呢?必须要先找到BSTR在VB中的对应类型,才能在sql server里调,但是我在vb里调用这个函数返回正常啊....