Mai jos este o bucata din T-SQL-ul meu care nu returneaza nimic si nu executa nimic; testat in VB.Net functioneaza perfect
DECLARE @retVal INT
DECLARE @comHandle INT
DECLARE @errorSource VARCHAR(8000)
DECLARE @errorDescription VARCHAR(8000)
DECLARE @retString VARCHAR(100)
DECLARE @pstr_Entitate VARCHAR(100)
DECLARE @pstr_NumeFisier VARCHAR(100)
SET @pstr_Entitate = 'Terti'
SET @pstr_NumeFisier = 'C:\a.txt'
EXEC @retVal = sp_OACreate 'BGInterfaces.IInterfacesBO', @comHandle OUTPUT
IF (@retVal <> 0)
BEGIN
EXEC sp_OAGetErrorInfo @comHandle, @errorSource OUTPUT, @errorDescription OUTPUT
SELECT [Error Source] = @errorSource, [Description] = @errorDescription
RETURN
END
SELECT @comHandle
EXEC @retVal = sp_OAMethod @comHandle, 'Export', @retString OUTPUT, @pstr_Entitate, @pstr_NumeFisier
IF (@retVal <> 0)
BEGIN
EXEC sp_OAGetErrorInfo @comHandle, @errorSource OUTPUT, @errorDescription OUTPUT
SELECT [Error Source] = @errorSource, [Description] = @errorDescription
RETURN
END
SELECT @retString
EXEC sp_OADestroy @comHandle
SELECT @comHandle returneaza 16711422 si asta este bine
SELECT @retString returneaza "nimic"
In VB.Net
Imports Interop.BGInterfaces
...
objInterfaces = New CInterfacesBO
objInterfaces.Initializare(1, "ceva")
objInterfaces.Export("Terti", "C:\a.txt")
DLL-ul apelat este un COM.