Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [VB.Net 05] Leggere elenco server in rete

    Ciao ragazzi.
    Qualche giorno fa avevo implementato una procedura che carica in una listbox l'elenco dei server di sql presenti sulla rete. e tutto funzionava alla perfezione.

    Oggi ho riportato la stessa procedura in un nuovo progetto e mi sono accorta che non funziona più, nemmeno sul progetto "originario"; l'errore viene generato sulla riga in rosso.

    Vi posto di seguito la procedura e l'errore che mi genera:
    codice:
    Private Function fCaricaListaServer() As Boolean
    '   carica nella listbox l'elenco dei server SQL disponibili
    
        fCaricaListaServer = False
        Dim i As Long
        Dim SQL_App As New SQLDMO.Application
        Dim SQL_Lst As SQLDMO.NameList
    
        SQL_Lst = SQL_App.ListAvailableSQLServers
        lBox_ElencoServer.Sorted = True
        lBox_ElencoServer.Items.Clear()
        For i = 1 To SQL_Lst.Count
            lBox_ElencoServer.Items.Add(SQL_Lst.Item(i))
        Next
    
        fCaricaListaServer = True
    
    End Function
    Questo è l'errore che mi genera quando l'esecuzione arriva sulla riga evidenziata in rosso:

    13: Unable to cast COM object of type 'System.__ComObject' to interface type 'SQLDMO.NameList'.
    This operation failed because the QueryInterface call on the COM component for the interface with IID '{100....}' failed with HRESULT: 0x800004002 (Interfaccia non supportata. (Exception from HRESULT: ... (E_NOINTERFACE))).



    Qualcuno di voi sa da cosa può dipendere?
    Grazie a tutti




    EDIT:
    Ho dimenticato di dire che nel progetto ho ovviamente inserito già la referenza alla dll SQLDMO.dll

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Re: [VB.Net 05] Leggere elenco server in rete

    Originariamente inviato da ladyBlu
    Qualcuno di voi sa da cosa può dipendere?
    Sembra che il problema sia dovuto ad un oggetto COM che non è più presente nel sistema e veniva precedentemente interrogato per ottenere le informazioni desiderate.

    Penso di conoscere già la risposta a questa domanda ma...hai installato/disinstallato qualcosa o apportato modifiche al sistema tra una sessione di prova (funzionante) e l'altra?

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3

    Re: Re: [VB.Net 05] Leggere elenco server in rete

    Originariamente inviato da alka
    Sembra che il problema sia dovuto ad un oggetto COM che non è più presente nel sistema e veniva precedentemente interrogato per ottenere le informazioni desiderate.

    Penso di conoscere già la risposta a questa domanda ma...hai installato/disinstallato qualcosa o apportato modifiche al sistema tra una sessione di prova (funzionante) e l'altra?

    Ciao!
    La dll esiste. Ho notato che nell'elenco delle references assegnabili la dll in questione si trova nella directory di installazione di SQLServer, come è corretto che sia. Mentre nell'elenco delle references del progetto il puntamento è ad una dll (Interop.SQLDML.dll) che sta nella cartella di progetto.

    ho cambiato pc e ieri ho reinstallato tutto, ma la dll c'è e il progetto a cui sto lavorando l'ho iniziato oggi.

    non capisco :master:

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Quando si utilizzano oggetti COM, nel Registro di Configurazione devono essere presenti le informazioni relative che vengono poi interrogate dal programma client COM per raggiungere, infine, la DLL.

    In sostanza, non è sufficiente copiare la DLL (come avviene per gli assembly .NET, molto più facili da installare), ma tale libreria deve anche essere registrata.

    Prova ad utilizzare l'utility regsvr32 che dovrebbe trovarsi nella cartella System32 (basta lanciarla per vedere i parametri) specificando il percorso della tua libreria come parametro per inserire le informazioni relative nel Registro.

    Poi, ritenta l'esecuzione del tuo progetto.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Originariamente inviato da alka
    Quando si utilizzano oggetti COM, nel Registro di Configurazione devono essere presenti le informazioni relative che vengono poi interrogate dal programma client COM per raggiungere, infine, la DLL.

    In sostanza, non è sufficiente copiare la DLL (come avviene per gli assembly .NET, molto più facili da installare), ma tale libreria deve anche essere registrata.

    Prova ad utilizzare l'utility regsvr32 che dovrebbe trovarsi nella cartella System32 (basta lanciarla per vedere i parametri) specificando il percorso della tua libreria come parametro per inserire le informazioni relative nel Registro.

    Poi, ritenta l'esecuzione del tuo progetto.

    Ciao!
    continua a darmi lo stesso errore.
    la copia in locale comunque se la fa da solo, io non glielo dico da nessuna parte di farla. e tra l'altro una volta che l'ha copiata, anche se nella finestra proprietà della referenza gli dico che non deve copiarla in locale, lui continua a far riferimento alla sua.


    francamente non so proprio cosa ci sia di diverso. ho installato esattamente tutto l'ambiente di sviluppo che usavo prima. che poi nulla è che vb e sqlserver.

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da ladyBlu
    continua a darmi lo stesso errore.
    Hai usato "regsvr32"? Che responso ti ha dato?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Originariamente inviato da alka
    Hai usato "regsvr32"? Che responso ti ha dato?
    dll registrata con successo.


    comunque ora l'errore me lo da qui:
    SQL_Lst = SQL_App.ListAvailableSQLServers

    in pratica una riga dopo.

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da ladyBlu
    dll registrata con successo.
    Ok.

    Originariamente inviato da ladyBlu
    comunque ora l'errore me lo da qui:
    SQL_Lst = SQL_App.ListAvailableSQLServers
    in pratica una riga dopo.
    Non vorrei che la DLL utilizzasse a sua volta altri oggetti COM che risiedono in altre librerie da registrare anch'esse.

    Se hai installato quelle librerie a suo tempo utilizzando un "setup" o qualcosa del genere, forse dovresti ripetere l'installazione per avere la certezza che vengano eseguite tutte le operazioni necessarie affinchè le librerie funzionino tutte a dovere.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Originariamente inviato da alka
    Ok.


    Non vorrei che la DLL utilizzasse a sua volta altri oggetti COM che risiedono in altre librerie da registrare anch'esse.

    Se hai installato quelle librerie a suo tempo utilizzando un "setup" o qualcosa del genere, forse dovresti ripetere l'installazione per avere la certezza che vengano eseguite tutte le operazioni necessarie affinchè le librerie funzionino tutte a dovere.

    Ciao!
    Il fatto è che non ho installato assolutamente nulla di diverso da ciò che ho qui. sto impazzendo mi credi? ieri funzionava e oggi no. queste cose inspiegabili a me mi mandano in bestia.

    Ah! ora mi è venuta in mente una cosa, però non credo che c'entra molto.
    Allora, visto che il nuovo pc non ha il lettore dvd me ne hanno messo uno esterno per fare le installazioni da dvd. Fino a ieri sera ce l'avevo, stamattina quando sono arrivata ho trovato il pc richiuso e senza il dvd esterno.
    All'avvio della macchina il bios si è accorto della modifca hardware e mi ha chiesto se volessi salvare le modifiche per continuare a caricare win. Ovviamente ho detto di sì.
    E' possibile che sia successo qualcosa a causa di questo aggiornamento?
    ...mi sembra strano, ma di sistemistica e similari non ci capisco granchè.
    tu che ne pensi?

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da ladyBlu
    tu che ne pensi?
    Non credo che una simile modifica possa comportare problemi con gli oggetti che utilizzi, che purtroppo conosco anche poco.

    La vera domanda è...chi garantisce che, oltre al lettore DVD, qualcuno non abbia "asportato" anche qualcos'altro?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.