Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VB6] ORA-00911 Invalid character.

    Con il seguente codice cerco di invocare dal mio client una stored procedure in oracle:

    codice:
    Public Function ControllaCFBrasile(cf As String, tipo As String, msgErr As String) As Integer
    
        strSql = "{?={call sial_gestione_lav_esterni.ctrl_codice_fiscale(?,?,?)}"
    
        Set Com = this.ISIALApplication_SIALDatabase.command
        With Com
            .CommandText = strSql
            .CommandType = adCmdText
            .Parameters.Append .CreateParameter("RetVal", adInteger, 1, adParamReturnValue)
            .Parameters.Append .CreateParameter("i_codice_fiscale", adVarChar, adParamInput, 30, Trim(cf))
            .Parameters.Append .CreateParameter("i_tipo", adVarChar, adParamInput, 3, tipo)
            .Parameters.Append .CreateParameter("o_msg_err", adVarChar, adParamOutput, 1000, msgErr)
            .Execute
        End With
    
        ControllaCFBrasile = command("RetVal").Value
        msgErr = command("msgErr").Value
        
    End Function
    Premesso che i parametri di input alla funzione arrivano correttamente, quando cerca di effettuare la Excecute, mi restituisce il messaggio dell'oggetto; mentre se con gli stessi parametri eseguo la stored direttamente da oracle, la stessa funziona correttamente determinando l'esito se positivo o negativo.

    Cosa sbaglio?

    Grazie anticipatamente.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    1) Devi indicare al Command anche il campo ActiveConnection
    2) nel CommandType va indicato adCmdStoredProc

    vedi qui:
    http://nuke.vbcorner.net/Articoli/VB...T/Default.aspx

  3. #3
    Il problema si è risolto semplicemente eliminando la seconda parentesi graffa da sinistra della strSql.
    Ecco il codice che mi ha permesso la corretta funzionalità:

    codice:
    Public Function ControllaCFBrasile(cf As String, tipo As String, msgErr As String) As Integer
    
        strSql = "{?=call sial_gestione_lav_esterni.ctrl_codice_fiscale(?,?,?)}"
    
        Set Com = this.ISIALApplication_SIALDatabase.command
        With Com
            .CommandText = strSql
            .CommandType = adCmdText
            .Parameters.Append .CreateParameter("RetVal", adInteger, 1, adParamReturnValue)
            .Parameters.Append .CreateParameter("i_codice_fiscale", adVarChar, adParamInput, 30, Trim(cf))
            .Parameters.Append .CreateParameter("i_tipo", adVarChar, adParamInput, 3, tipo)
            .Parameters.Append .CreateParameter("o_msg_err", adVarChar, adParamOutput, 1000, msgErr)
            .Execute
        End With
    
        ControllaCFBrasile = Com("RetVal").Value
        msgErr = Iif IsNull(Com("msgErr").Value, "", Com ("msgErr").Value)
        
    End Function
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    In effetti c'era una parentesi aperta e non chiusa ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.