[VB6/ADO/MySQL] Data source name not found and no driver....

Pagina: 1
Acties:

  • iznogood
  • Registratie: September 2001
  • Niet online
Ik ben met VB6 bezig een verbinding te leggen met MySQL ( beiden op localhost ) en dan krijg ik de volgende foutmelding :

Data source name not found and no default driver specified.

Nou, volgens mij heb ik deze opgegeven in de connection string ? Ik heb op internet gezocht en zie dat deze foutmelding vaker voorkomt, maar dan ook met andere ODBC / ADO verbindingen in allerlei applicaties/programmeertalen. Al met al, ik kom er niet uit.

code:
1
2
3
4
5
6
7
8
9
10
11
12
  Dim conn As ADODB.Connection
  Dim rs As ADODB.Recordset
  Dim fld As ADODB.Field
  Dim sql As String

  Set conn = New ADODB.Connection
  conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost; DATABASE=align;UID=;PWD=; OPTION=3"
  conn.Open
  rs.Open "SELECT * FROM users WHERE gebruikersnaam='" & FrmLogin.Text1 & "' AND wachtwoord='" & FrmLogin.Text2 & "'", conn
  Debug.Print rs.RecordCount
  rs.Close
  conn.Close

Just as Good


  • stp_4
  • Registratie: Maart 2003
  • Laatst online: 30-04 19:47
rs is niet gedefinieerd zo te zien? zoiets:
code:
1
Set rs = New ADODB.Recordset

[ Voor 45% gewijzigd door stp_4 op 24-04-2005 12:52 ]

stp - PSN ID: stp_4


  • iznogood
  • Registratie: September 2001
  • Niet online
stp_4 schreef op zondag 24 april 2005 @ 12:51:
rs is niet gedefinieerd zo te zien? zoiets:
code:
1
Set rs = New ADODB.Recordset
Nee, klopt.. thanks .. maar de fout wordt gegenereerd op deze regel :
conn.Open en niet op de rs. ;)

Just as Good


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 07-05 10:04
Komt iha voor als de connection string niet klopt.

Gebruik je ODBC of zijn dit 'native' ADO drivers? Anders probeer ff of je in je ODBC panel wel een verbinding kunt maken. Je kunt ook een udl bestand aanmaken en via een gui de verbinding proberen.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • iznogood
  • Registratie: September 2001
  • Niet online
farlane schreef op zondag 24 april 2005 @ 16:58:
Komt iha voor als de connection string niet klopt.

Gebruik je ODBC of zijn dit 'native' ADO drivers? Anders probeer ff of je in je ODBC panel wel een verbinding kunt maken. Je kunt ook een udl bestand aanmaken en via een gui de verbinding proberen.
UDL bestand ? Ik gebruik nu gewoon ODBC. In het ODBC vraagt hij op welke server ik een verbinding wil maken. Ik vul dan de localhost in, maar dat werkt niet zoals ik zou willen terwijl de server standaard wel goed ingesteld staat.

Just as Good


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 07-05 10:04
Probeer dan eens een data source aan te maken in je ODBC schermpje en die data source te openen in je connectionstring.

Een udl bestand is een definitie van een OleDB verbinding. Handig om verbindingen mee te testen en kan ook worden gebruikt als je je connectionstring wilt kunnen wijzigen.
Gewoon een leeg tekst document aanmaken en die renamen naar blaat.udl. Je krijgt dan een vergelijkbaar schermpje als bij de ODBC data sources. ( Werkt dus niet als je een ODBC driver gebuikt )

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • iznogood
  • Registratie: September 2001
  • Niet online
farlane schreef op zondag 24 april 2005 @ 20:44:
Probeer dan eens een data source aan te maken in je ODBC schermpje en die data source te openen in je connectionstring.

Een udl bestand is een definitie van een OleDB verbinding. Handig om verbindingen mee te testen en kan ook worden gebruikt als je je connectionstring wilt kunnen wijzigen.
Gewoon een leeg tekst document aanmaken en die renamen naar blaat.udl. Je krijgt dan een vergelijkbaar schermpje als bij de ODBC data sources. ( Werkt dus niet als je een ODBC driver gebuikt )
Heb ik gedaan... blijf dezelfde foutmelding krijgen :s

Just as Good


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 07-05 10:04
Post je connection string 'es als je van een DSN gebruik maakt dan. De strings die je tot nog toe hebt laten zien zijn DSN less namenlijk.

edit:

Anders lees ook ff dit stukje door : http://www.asp101.com/articles/john/connstring/default.asp

Volgens mij kun je daar wel vinden wat je fout doet

[ Voor 42% gewijzigd door farlane op 26-04-2005 08:57 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • iznogood
  • Registratie: September 2001
  • Niet online
farlane schreef op dinsdag 26 april 2005 @ 08:51:
Post je connection string 'es als je van een DSN gebruik maakt dan. De strings die je tot nog toe hebt laten zien zijn DSN less namenlijk.

edit:

Anders lees ook ff dit stukje door : http://www.asp101.com/articles/john/connstring/default.asp

Volgens mij kun je daar wel vinden wat je fout doet
Dit is mijn connectionstring : DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost; DATABASE=align;UID=;PWD=; OPTION=3

localhost is toch mijn DSN ?

Nu heb ik Provider=SQLOLEDB;DRIVER={MySQL ODBC 3.51 Driver};Data Source=127.0.0.1;SERVER=localhost; DATABASE=align;UID=;PWD=; OPTION=3 gebruikt en nu gebeurt er al wat meer.

Hij blijft een seconde of 10 hangen en zegt dan : Invallid connection string attribute... weet niet of ik er wat mee ben opgeschoten. Requiered ODBC een username en pass?

Ik probeer overigens te connecten op een MySQL server.

[ Voor 30% gewijzigd door iznogood op 26-04-2005 09:30 ]

Just as Good


  • iznogood
  • Registratie: September 2001
  • Niet online
Het probleem is opgelost. Bedankt voor je hulp :) Ik had de ODBC Mysql driver niet geinstalleerd |:(

Just as Good


  • iznogood
  • Registratie: September 2001
  • Niet online
iznogood schreef op dinsdag 26 april 2005 @ 10:10:
Het probleem is opgelost. Bedankt voor je hulp :) Ik had de ODBC Mysql driver niet geinstalleerd |:(
Helaas stuit ik dan meteen op het volgende probleem :s
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  Dim conn As ADODB.Connection
  Dim rs As ADODB.Recordset
  Dim fld As ADODB.Field
  Dim sql As String

  Set conn = New ADODB.Connection
  
  
  conn.ConnectionString = "Provider=MSDASQL; Driver={MySQL ODBC 3.51 Driver}; Server=127.0.0.1; Database=align; UID=; PWD=; OPTION=3;"
  conn.Open
  
  'Debug.Print conn.State
  
  Set rs = New ADODB.Recordset
  rs.CursorLocation = adUseServer

  rs.Open "SELECT * FROM users WHERE gebruikersnaam='" & FrmLogin.Text1 & "' AND wachtwoord='" & FrmLogin.Text2 & "'", conn
  Debug.Print rs.RecordCount;
  If rs.RecordCount < 0 Then MsgBox "Foutieve gebruikersnaam of wachtwoord!", vbOKOnly, "Foutmelding": Exit Sub
  rs.Close
  conn.Close


Hij verbindt nu gewoon met de mysql server ( conn.state = 1 ) maar na het uitvoeren van de query blijft rs.recordcount op -1 staan.

Ik heb het ook al geprobeerd met de query SELECT * FROM users. De syntaxis heb ik gecontroleerd en die is gewoon goed. De rechten om dit uit te voeren op de server zijn er ook.

[ Voor 8% gewijzigd door iznogood op 26-04-2005 10:40 ]

Just as Good


  • Lorn
  • Registratie: Maart 2000
  • Laatst online: 13-01-2025

Lorn

I have a bad feeling...

MySQL en de RecordCount property van de recordsets werken niet lekker samen. Ik denk dat de MySQL ODBC provider geen support biedt voor deze property ofzo.

Wat je kunt doen ipv testen op de RecordCount is testen op EOF. Als je query geen records heeft opgehaald dan zal EOF True zijn en anders niet.

  • iznogood
  • Registratie: September 2001
  • Niet online
Lorn schreef op dinsdag 26 april 2005 @ 10:44:
MySQL en de RecordCount property van de recordsets werken niet lekker samen. Ik denk dat de MySQL ODBC provider geen support biedt voor deze property ofzo.

Wat je kunt doen ipv testen op de RecordCount is testen op EOF. Als je query geen records heeft opgehaald dan zal EOF True zijn en anders niet.
Je hebt gelijk :) werkt nu als een trein!

Just as Good


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 07-05 10:04
iznogood schreef op dinsdag 26 april 2005 @ 09:22:
Dit is mijn connectionstring : DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost; DATABASE=align;UID=;PWD=; OPTION=3

localhost is toch mijn DSN ?
Lees ff dat stukje door. Een DSN is een naam die je definieert in je ODBC panel, die je kunt gebruiken in je connection string.

Je kunt ook de hele connection string definieren, zoals jij doet, en dan heb je een DSN'less string. Door ADO worden een aantal delen van die string gebruikt om te bepalen wat voor een soort verbinding je wilt maken. ( OleDB, OleDB/ODBC bridge {DSN / DSNless } )

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Volgens mij geef je ook nog eens bij je rs.Open niet de juiste opties mee om uberhaupt gebruik te maken van RecordCount. Default is het namelijk een adOpenForwardOnly recordset. Ik gebruik meestal adOpenStatic als ik van RecordCount gebruik wil maken. Precieze details kun je in de MSDN Library van Visual Studio vinden.
Pagina: 1