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

    Vb6 Adodc accesso non riuscito per l'utente sa in Windows 7

    Salve a tutti,

    io ho un progetto vb6 con un form con una Apex TruedbGrid 6 Oledb che ha come datasource un Adodc (Ado 6.0 sp6) sempre sullo stesso form.

    cn.ConnectionString = "Provider=SQLNCLI.1;Data Source=pc-musica;Initial Catalog=QdE;User ID=sa;Password=*******"

    Nel Form_Load ho:

    Adodc.ConnectionString = cn.ConnectionString

    Adodc.RecordSource = "Select Codice, Descrizione from Cantine"

    Adodc.Refresh

    Quando esegue l'ultima istruzione Adodc.Refresh solo su Windows 7 (perchè in Xp funziona tutto tranquillamente) mi dà l'errore:

    Accesso non riuscito per l'utente, Tipo: -2147217843 Automation Error.

    Ho controllato la connection string ed è giusta inoltre quando parte il programma usa la stessa connessione per aprire un recordset e funziona tranquillamente.

    La connessione è dichiarata in un modulo.

    Secondo voi come posso risolvere su Windows 7 32 bit?

    Grazie Mille

  2. #2
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,289
    Come definisci cn?
    dim cn = new...?

  3. #3
    Originariamente inviato da URANIO
    Come definisci cn?
    dim cn = new...?
    Public cn As New ADODB.Connection

  4. #4
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,289
    Prova a mettere
    Public cn As New ADODC.Connection

  5. #5
    Originariamente inviato da URANIO
    Prova a mettere
    Public cn As New ADODC.Connection
    E' quello che ho scritto io e poi come ho scritto, in una fase iniziale nel login la connection per un recordset funziona tranquillamente.

  6. #6
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,289
    Originariamente inviato da marcobruni
    E' quello che ho scritto io e poi come ho scritto, in una fase iniziale nel login la connection per un recordset funziona tranquillamente.
    Hai scritto tu che usi le connessione ADODB ma poi usi le ADODC
    Cmq è una vita che non programmo in VB6 e la mia osservazione nasce da quello che ho trovato:
    http://vbcity.com/forums/p/99070/418352.aspx

  7. #7
    Originariamente inviato da URANIO
    Hai scritto tu che usi le connessione ADODB ma poi usi le ADODC
    Cmq è una vita che non programmo in VB6 e la mia osservazione nasce da quello che ho trovato:
    http://vbcity.com/forums/p/99070/418352.aspx
    L'adodc è l'oggetto nel form utilizzato come datasource per l'Apex True Db Grid 6.0

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Originariamente inviato da URANIO
    Hai scritto tu che usi le connessione ADODB ma poi usi le ADODC
    Cmq è una vita che non programmo in VB6 e la mia osservazione nasce da quello che ho trovato:
    http://vbcity.com/forums/p/99070/418352.aspx
    Cosa sarebbero le ADODC? ADODC sta per ADO Data Control, non è una libreria. Non sempre quello che si trova a casaccio sul web è corretto.

    @marcobruni
    L'errore potrebbe dipendere dalla proprietà CommandType che, se come DataSource usi una query, dovrebbe essere impostata su adCommandText.

    Però tieni presente che la TrueDbGrid in versione OLE DB e in modalità Bound può essere associata direttamente ad un recordset ADO, senza bisogno (con grande sollievo!) dell'ADODC:
    codice:
    Dim rsAdo As New ADODB.Recordset
    rsAdo.Open ...
    TdbGrid1.DataSource = rsAdo

  9. #9
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Veramente dell'ADODC se ne può, e se ne dovrebbe fare a meno: è un OCX inutile, con bug, e mai più aggiornato da Microsoft.
    Dato che è puramente un banale 'wrapper' (fatto male) per ADODB, è raccomandato l'uso diretto di ADODB che rende l'applicazione più veloce, senza bug e più semplice da gestire.

    Riguardo alle dichiarazioni di ADODB, l'uso di questa sintassi:
    codice:
    Dim rsAdo As New ADODB.Recordset
    non va bene, perchè provoca un'istanziazione implicita che, per vari motivi (errori, uscite premature dalle routine, ecc.) potrebbe restare 'appesa', in secondo luogo perchè alcune proprietà dell'oggetto vengono instanziate in modo errato (ma questo dipende anche dalla versione di ADODB utilizzata).
    Purtroppo questa sintassi è diffusissima nel web (e pure su qualche libro) ed è un retaggio della sintassi del fratello minore DAO (che 'forse' non soffriva di questi problemi).

    Fatto sta che la sintassi corretta per dichiarare le variabili oggetto di qualsiasi membro di ADODB ha questa forma:

    codice:
    Dim VarObj As Tipo
    Set VarObj = New Tipo
    esempio:
    codice:
    Dim CN As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim cmd As ADODB.Command
    poi si crea l'istanza solo quando serve:
    codice:
    Set CN = New ADODB.Connection
    Set rs = New ADODB.Recordset
    Set cmd = New ADODB.Command

  10. #10
    Originariamente inviato da Grumpy
    Cosa sarebbero le ADODC? ADODC sta per ADO Data Control, non è una libreria. Non sempre quello che si trova a casaccio sul web è corretto.

    Davo per scontato che l'adodc è l'ADO Data Control, lasciamo perdere la secondo frase perchè la trovo offensiva.

    @marcobruni
    L'errore potrebbe dipendere dalla proprietà CommandType che, se come DataSource usi una query, dovrebbe essere impostata su adCommandText.

    Nell'Adodc.datasource c'è una query del tipo Select* from tabella

    Dà errore lo stesso, tieni conto che su Windows xp funziona tutto tranquillamente senza dare a Commandtype adCommandText

    Però tieni presente che la TrueDbGrid in versione OLE DB e in modalità Bound può essere associata direttamente ad un recordset ADO, senza bisogno (con grande sollievo!) dell'ADODC:
    codice:
    Dim rsAdo As New ADODB.Recordset
    rsAdo.Open ...
    TdbGrid1.DataSource = rsAdo
    Così funziona però devo modificare una marea di codice

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.