Connection problemen met MySQL op een 64 bits machine

Status
Niet open voor verdere reacties.

harolda1980

Gebruiker
Lid geworden
7 aug 2007
Berichten
488
Bij het maken van de verbinding met een mysql database krijg ik op geen mogelijkheid verbinding.
Kan iemand mij vertellen wat er verkeerd gaat of wat ik moet aanpassen.

hier onder de code die verbinding maakt en altijd keurig draaide op een 32bits machine

Code:
Private Sub Connection()
    Dim Strsql As String
    Dim strDir As String
    Dim i As Long
        If Connopen = False Then
            On Error GoTo err2
            Set CNNAPP = New ADODB.Connection
            CNNAPP.Open "DRIVER={MySQL ODBC 5.1 Driver}" & ";SERVER=" & MySQL_server_name & ";DATABASE=" & MySQL_database_nameA & ";UID=" & MySQL_User_IDA & ";PWD=" & MySQL_PasswordA & ";OPTION=16427" ' Option 16427 = Convert LongLong to Int: This just helps makes sure that large numeric results get properly interpreted
            If (CNNAPP.State = adStateClosed) Then
                'lbstate.Caption = "  Gesloten VM01REP..."
                MsgBox "Let op: er is geen verbinding met de datebase, ga terug en haal het receptuur opnieuw op!" & vbNewLine & vbNewLine & "Foutmelding 1 - geen verbinding <cnn>", vbCritical, "Receptuur informatie"
            ElseIf (CNNAPP.State = adStateOpen) Then
                'lbstate.Caption = "  Geopend VM01REP..."
            End If
            On Error GoTo 0
            On Error GoTo err1

            Set CNNINK = New ADODB.Connection
            CNNINK.Open "DRIVER={MySQL ODBC 5.1 Driver}" & ";SERVER=" & MySQL_server_name & ";DATABASE=" & MySQL_database_nameI & ";UID=" & MySQL_User_IDI & ";PWD=" & MySQL_PasswordI & ";OPTION=16427" ' Option 16427 = Convert LongLong to Int: This just helps makes sure that large numeric results get properly interpreted
            If (CNNINK.State = adStateClosed) Then
                'lbstatus.Caption = "  Gesloten INK DB..."
                MsgBox "Let op: er is geen verbinding met de datebase, ga terug en haal het receptuur opnieuw op!" & vbNewLine & vbNewLine & "Foutmelding 1 - geen verbinding <cnn>", vbCritical, "Receptuur informatie"
            ElseIf (CNNINK.State = adStateOpen) Then
                'lbstatus.Caption = "  Geopend INK DB..."
            End If
            Connopen = True
            Exit Sub
err1:
        'lbstatus.Caption = "  Gesloten INK DB..."
        MsgBox "Let op: er is geen verbinding met de datebase, ga terug en haal het receptuur opnieuw op!" & vbNewLine & vbNewLine & "Foutmelding 1 - geen verbinding <cnn>", vbCritical, "Receptuur informatie"
err2:
        'lbstate.Caption = "  Gesloten VM01REP..."
        MsgBox "Let op: er is geen verbinding met de datebase, ga terug en haal het receptuur opnieuw op!" & vbNewLine & vbNewLine & "Foutmelding 1 - geen verbinding <cnn>", vbCritical, "Receptuur informatie"

        End If
  
End Sub
 
Het is handig een verbinding te leggen naar de ADO bibliotheek.
Overigens zou ik de code tot 5% van wat je nu hebt willen terugbrengen (een beetje erg veel redundantie)
 
Je bedoeld:

Public CNNAPP As ADODB.Connection
Public CNNINK As ADODB.Connection

Deze staat hoger in de code zodat hij door het hele programma opgepakt kan worden.

Ik ben benieuwd hoe jij hem zou schrijven.

IK heb deze foutmelding weten te traceren terwijl de driver die ik kies wel is geïnstalleerd.
foutx64.jpg
 
Nee ik bedoel de references: VBEditor/extra/references/aanklikken Microsoft ActiveX ADO...

Code:
Private Sub Connection()
   c00="DRIVER={MySQL ODBC 5.1 Driver};SERVER=" & MySQL_server_name & ";DATABASE=" & MySQL_database_nameA & ";UID=#;PWD=" & MySQL_PasswordA & ";OPTION=16427"
   c01="Let op: er is geen verbinding met de datebase, ga terug en haal de receptuur opnieuw op!" & string(2,vblf) & "Foutmelding 1 - geen verbinding <cnn>", 
  
   with  New ADODB.Connection
      .Open replace(c00,"#",MySQL_User_IDA)
      If .State = adStateOpen  
        Then c01=""
      else
        .Open replace(c00,"#",MySQL_User_IDI)
         If .State = adStateOpen Then c01=""
      end if
   end with
   
  if c01<>"" then msgbox c01
End Sub
 
En in jou voorbeeld word C00 dan de connectie met de database waarmee je elke keer kunt gaan werken?
 
Ja, lijkt me wel: c00 is de connectionstring, niet de connectie

De kun je gebruiken in new recordset.
Waarom die crosspost in the codecage ?
 
Oke... Top! Tja soms word er gevraagd het op meerdere plekken uit te zetten! Ter verificatie niet mijn keus dus!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan