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

    [VBNET05] ODBCcommand.ExecuteReader

    Salve a tutti ragazzi...
    nn so + dove sbattere la testa... perderci un mese solo per la gestione di una connessione..
    è incredibile...

    aiutatemi

    purtroppo mi trovo a lavorare con un database sybase... e senza strumenti di supporto tipo Ado.net e roba varia...
    utilizzo quindi l' ODBC per collegarmi al database... cosa che tra l'altro mi è stata imposta...

    ogni volta che mi collego al database si carica l'odbc del pc carica il famoso dbeng.exe di sqlanywhere... immaginate che rottura di scatole ogni volta che fai un .open() della connessione...

    per cui per migliorare la cosa, ho pensato di aprire la connessione all ' apertura del form principale ( formcontainer ) e chiuderla all'evento closing dello stesso.

    in breve : ho 4 elementi con cui lavoro
    1 - form.frm principale
    2 - form login.frm al database
    3 - classe dati.vb
    4 - form dati.frm

    all'avvio del formprincipale (1)...si apre il form login(2)
    inserisco user e password...
    e apro la connessione al database...con odbc e connectionstring varia

    fin qui tutto ok...

    ora la connessione è aperta... ( è facile vedere che la connessione è open perchè ridotto a icona c'è anche il dbeng.exe connesso al database )

    il problema è che quando apro il form dati(4)...
    dove faccio le varie query....che si trovano in classedati.vb(3)...

    l' executereader delle varie query mi chiede la connessione aperta...

    COME FACCIO A DIRGLI CHE LA CONNESSIONE E' GIA' APERTA???

    help please...

  2. #2
    Subito prima di usare executereader prova a mettere:
    msgbox cstr(Conn.State)
    e vedi cosa ti restituisce. Se restituisce 1 vuol dire che è aperta. Nel caso in cui sia chiusa devi vedere dov'è che si chiude a tua insaputa.
    Potresti anche fare un controllo sullo stato della connessione prima di usare executeReader con un if del genere:
    codice:
    if conn.State <> 1
    ...
         conn.open
    ...
    end if
    Prova

  3. #3
    grazie per il consiglio.. avevo già provato un controllo simile...
    e la connessione alla messagebox effettivamente è = 0


    MA QUANDO TENTA DI APRIRE LA CONNESSIONE
    MI DA' ERRORE SU Objconnessione.connessione.Open()

    E MI DICE "La proprietà ConnectionString non è stata inizializzata."

    TI POSTO IL CODICE


    CLASSE DATI
    sulla funzione query ho inserito come mi hai detto :

    If Objconnessione.connessione.State <> 1 Then

    Objconnessione.connessione.Open()

    read = command.ExecuteReader

    dove objconnessione =
    dim objconnessione as New LoginForm1

    LOGINFORM1.FRM
    in LoginForm1 ho la stringa di connessione disposta così:

    ' al evento pulsante OK imposto user e password
    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click

    m_user = txtUser.Text
    m_password = txtPassword.Text

    'chiamo la sub prepara connessione
    PreparaConnessione()
    Me.Close()

    End Sub

    Public Sub PreparaConnessione()

    Dim valore As New FrmMain

    connessione = New OdbcConnection
    Try

    connessione.ConnectionString = "Dsn=" & valore.valore & ";Uid=" & m_user & ";Pwd=" & m_password
    connessione.Open()

    Catch ex As Exception

    MessageBox.Show(" Errore di connessione al Database. Controllare i settaggi dell' ODBC ", "Error Database Comunication", MessageBoxButtons.OK, MessageBoxIcon.Warning)
    End Try

    End Sub

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

    Re: [VBNET05] ODBCcommand.ExecuteReader

    Originariamente inviato da ferrate
    purtroppo mi trovo a lavorare con un database sybase... e senza strumenti di supporto tipo Ado.net e roba varia...
    Stai usando ADO.NET, di fatto.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5
    in che senso marco?? :master:

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da ferrate
    in che senso marco?? :master:
    OdbcConnection, OdbcCommand, ecc. sono tutte classi ADO.NET.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  7. #7
    Ma se fai una query nel form principale ti funziona? Prova ad andare per esclusione. Sinceramente mi risulta difficile capire quale possa essere il problema.
    Ps. Quando posti usa i TAG 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.