Welcome to Sign in | Help
in Search

sp_OAMethod - cum parsez functiei incapsulate in COM valorile asteptate?

Last post 05-14-2010, 11:50 AM by Bogdan Constantin. 15 replies.
Page 1 of 2 (16 items)   1 2 Next >
Sort Posts: Previous Next
  •  05-12-2010, 3:32 PM 8265

    sp_OAMethod - cum parsez functiei incapsulate in COM valorile asteptate?

    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.
    Filed under:
  •  05-12-2010, 8:26 PM 8266 in reply to 8265

    Re: sp_OAMethod - cum parsez functiei incapsulate in COM valorile asteptate?

    peste tot chemi
    IF (@retVal <> 0)
    poti, te rog, sa pui si un mesaj, sa vedem care e primul retval= 0 ?

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  05-12-2010, 9:17 PM 8268 in reply to 8265

    Re: sp_OAMethod - cum parsez functiei incapsulate in COM valorile asteptate?

    Ce versiune de SQL Server folositi?
    Cristian Andrei Lefter, SQL Server MVP
    MCT, MCSA, MCDBA, MCAD, MCSD .NET,
    MCTS, MCITP - Database Administrator SQL Server 2005
    http://sqlserver.ro
  •  05-12-2010, 9:44 PM 8269 in reply to 8266

    Re: sp_OAMethod - cum parsez functiei incapsulate in COM valorile asteptate?

    SELECT @retVal returneaza 0 dupa fiecare incercare de captare a unei erori... deci nu am eroare pe cele doua bucle BEGIN...END
  •  05-12-2010, 9:45 PM 8270 in reply to 8268

    Re: sp_OAMethod - cum parsez functiei incapsulate in COM valorile asteptate?

    SQL 2008 (SP1 cred)
    9.00.4053.00
  •  05-13-2010, 7:38 AM 8273 in reply to 8270

    Re: sp_OAMethod - cum parsez functiei incapsulate in COM valorile asteptate?

    eu vad o diferenta intre cele 2 coduri
    in VB.NET mai aveti
    objInterfaces.Initializare(1, "ceva")

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  05-13-2010, 9:46 AM 8274 in reply to 8273

    Re: sp_OAMethod - cum parsez functiei incapsulate in COM valorile asteptate?

    Exact. Asa se face initializarea si cred ca acolo este problema. Nu stiu din T-SQL cum sa parsez acel 1 care stabileste (intern DLL) versiunile functiilor care se pot utiliza. Din pacate DLL-ul este o cutie neagra pentru mine si tot ce stiu este ca codul VB.Net functioneaza pefect.
  •  05-13-2010, 10:08 AM 8275 in reply to 8274

    Re: sp_OAMethod - cum parsez functiei incapsulate in COM valorile asteptate?

    Nu inteleg de ce nu scrii

    EXEC @retVal = sp_OAMethod @comHandle, 'Initializare', @retString OUTPUT, 1, 'ceva'


    http://msdn.microsoft.com/en-us/library/aa238864%28SQL.80%29.aspx
    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  05-13-2010, 11:33 AM 8276 in reply to 8275

    Re: sp_OAMethod - cum parsez functiei incapsulate in COM valorile asteptate?

    Multumesc frumos dar... nu ma prind
    EXEC @retVal = sp_OAMethod @comHandle, 'Initializare', @retString OUTPUT, 1, 'ceva'

    SELECT @retVal
    returneaza -2147221504
  •  05-13-2010, 12:26 PM 8277 in reply to 8276

    Re: sp_OAMethod - cum parsez functiei incapsulate in COM valorile asteptate?

    si sp_OAGetErrorInfo ce zice?

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  05-13-2010, 1:48 PM 8278 in reply to 8277

    Re: sp_OAMethod - cum parsez functiei incapsulate in COM valorile asteptate?

    ODSOLE Extended Procedure Error in parameters, or attempt to retrieve a return value from a method that doesn't supply one.
  •  05-13-2010, 5:05 PM 8279 in reply to 8278

    Re: sp_OAMethod - cum parsez functiei incapsulate in COM valorile asteptate?

    pune fara

    @retString OUTPUT,

    - se pare ca nu intoarce si valoare initialize...

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  05-14-2010, 10:30 AM 8280 in reply to 8279

    Re: sp_OAMethod - cum parsez functiei incapsulate in COM valorile asteptate?

    sp_OAMethod usage: ObjPointer int IN, MethodName varchar IN [, @returnval OUT [, additional IN, OUT, or BOTH params]]

    se pare ca nu este optional @retString OUTPUT

    am acum EXEC @retVal = sp_OAMethod @comHandle, 'Initializare', 1,'ceva'
  •  05-14-2010, 11:03 AM 8281 in reply to 8280

    Re: sp_OAMethod - cum parsez functiei incapsulate in COM valorile asteptate?

    AHA!
    EXEC @retVal = sp_OAMethod @comHandle, 'Initializare', NULL, 1, @pstrNumeFirma

    OK, am mai facut un pas!
    Dar cum fac sa-i parsez functiei cele doua valori @pstrEntitate, @pstrNumeFisier

    DECLARE @pstrEntitate VARCHAR(100)
    DECLARE @pstrNumeFisier VARCHAR(100)
    SET @pstrEntitate = 'Terti'
    SET @pstrNumeFisier = 'C:\a.txt'

    Scopul final este sa export o lista de clienti in fisierul specificat.
  •  05-14-2010, 11:48 AM 8282 in reply to 8281

    Re: sp_OAMethod - cum parsez functiei incapsulate in COM valorile asteptate?

    sa tragem o linie; am ajuns la asta:
    use RESCOSA2009

    DECLARE @retVal INT
    DECLARE @comHandle INT
    DECLARE @errorSource VARCHAR(8000)
    DECLARE @errorDescription VARCHAR(8000)

    DECLARE @pstrVersion INT
    DECLARE @retString VARCHAR(100)
    DECLARE @pstrEntitate VARCHAR(100)
    DECLARE @pstrNumeFisier VARCHAR(100)
    DECLARE @pstrFunctie NVARCHAR(100)
    DECLARE @pstrNumeFirma NVARCHAR(100)

    SET @pstrVersion = 1
    SET @pstrFunctie = 'Export'
    SET @pstrEntitate = 'Terti'
    SET @pstrNumeFisier = 'C: a.txt'
    SET @pstrNumeFirma = 'RESCO SA'

    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

    EXEC @retVal = sp_OAMethod @comHandle, 'Initializare', NULL, @pstrVersion, @pstrNumeFirma
    IF (@retVal <> 0)
    BEGIN
    EXEC sp_OAGetErrorInfo @comHandle, @errorSource OUTPUT, @errorDescription OUTPUT
    SELECT [Error Source] = @errorSource, [Description] = @errorDescription
    RETURN
    END
    SELECT retString = @retString, retVal = @retVal

    EXEC @retVal = sp_OAMethod @comHandle, @pstrFunctie, @retString OUTPUT, @pstrEntitate, @pstrNumeFisier
    IF (@retVal <> 0)
    BEGIN
    EXEC sp_OAGetErrorInfo @comHandle, @errorSource OUTPUT, @errorDescription OUTPUT
    SELECT [Error Source] = @errorSource, [Description] = @errorDescription
    RETURN
    END

    SELECT retString = @retString, retVal = @retVal
    EXEC sp_OADestroy @comHandle

    primul select returneaza:
    NULL 0
    iar al doilea:
    0
Page 1 of 2 (16 items)   1 2 Next >
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems