从VB6代码调用Microsoft SQL Server函数?

时间:2014-04-29 07:45:33

标签: sql sql-server sql-server-2008 vb6

我正在开发用于调用Microsoft SQL Server函数的Visual Basic 6代码,但是......我无法让它工作......

T-SQL代码:

ALTER FUNCTION [dbo].[fnRutaFichero](@ID_FICHERO VARCHAR(256))
   RETURNS varchar(256)
AS
   .
   .
   .
   RETURN (@rutaFichero)
END

VB6代码:

Set cnn = New ADODB.Connection
cnn.ConnectionString = cStrConn
cnn.Open "File Name=" & App.Path & "\Config\VCH2.udl;"

Set cmd = New ADODB.Command
cmd.ActiveConnection = cnn
cmd.CommandTimeout = 15
cmd.CommandType = adCmdText

cmd.CommandText = "SELECT fnRutaFichero(@ID_FICHERO)"

cmd.Parameters.Append cmd.CreateParameter("@ID_FICHERO", adVarChar, adParamInput, , "VCH2")

cmd.Execute

我不明白如何完成这项任务......

...谢谢

2 个答案:

答案 0 :(得分:0)

通常你会发一个命令=一个resordset。

Set objRs = objCmd.Execute

以下是程序员指南http://msdn.microsoft.com/en-us/library/windows/desktop/ms675065(v=vs.85).aspx

根据文档http://msdn.microsoft.com/en-us/library/windows/desktop/ms677502(v=vs.85).aspx,并非所有命令都可以通过ADODB完成。

  

使用Command对象查询数据库并返回Recordset对象中的记录,执行批量操作或操纵数据库的结构。根据提供程序的功能,某些Command集合,方法或属性在引用时可能会生成错误。

答案 1 :(得分:0)

您需要在参数列表中添加返回值,并且必须包含VarChar字段的大小:

cmd.Parameters.Append cmd.CreateParameter("@rutaFichero", adVarChar, adParamReturnValue, 256)
cmd.Parameters.Append cmd.CreateParameter("@ID_FICHERO", adVarChar, adParamInput, 256, "VCH2")