Archief - [PROG]-[VB6] Select statement naar MYSQL

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Spacy2003

Legacy Member
Hoi, als laatstejaars van het middelbaar is er ons een eindwerk opgelegd,
de onze is om domotica aan te sturen via het internet. Om even ons gedachtengang open te leggen, we zijn dus van plan via een VB6.0 server applicatie de com poort te sturen de waardes zullen dan via een lokale WAMP server uitgelezen worden uit de MYSQL database zo kunnen we via de COM poort een 1 en een 0 creeren die bv een lamp laat branden. De mysql database maakt het zo ook gemakkelijker om via serverside scripting zoals PHP dit uittebreiden naar het internet.

Nu heb ik al het één en ander gevonden over VB6.0 en de connectie met MYSQL werkt al grondig, zowel Tables aanmaken en records toevoegen.

Het probleem zit nu bij het uitlezen van waardes ik heb hier eens achter gegoogled maar rechtstreeks krijg ik geen antwoord op mijn vraag. En deze luid als volgt: "Wat is de statement om een SELECT uittevoeren in VB6.0 en hoe kan ik deze in een var stoppen liefst zoals in PHP in een array."

Jullie zouden me erg veel kunnen helpen, dankje ;)


PS: Hier volgt nog ons voorbeeld progje om tabellen en records toe te voegen

Code:
Option Explicit
    Dim Host As String
    Dim DB As String
    Dim Login As String
    Dim Wachtwoord As String
    Dim conn As ADODB.Connection

Private Sub Form_Load()

    On Error GoTo break

'Toekennen values aan connection
    Host = "127.0.0.1"
    DB = "TiHH"
    Login = "root"
    Wachtwoord = ""
   
'connect to MySQL server using MySQL ODBC 3.51 Driver
    Set conn = New ADODB.Connection
    conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=" + Host + ";DATABASE=" + DB + ";UID=" + Login + ";PWD=" + Wachtwoord + "; OPTION=35"
    conn.Open
    
tabel:
    On Error GoTo 0
Exit Sub

break:
    MsgBox "De foutcode is: " & Err
Resume tabel

End Sub

Private Sub Command1_Click()

On Error GoTo break

'Tabel aanmaken
    conn.Execute "CREATE TABLE " & Text1.Text & "(id INT NOT NULL)", , adExecuteNoRecords
'records toevoegen
    conn.Execute "INSERT INTO " & Text1.Text & " (id) VALUES(10)", , adExecuteNoRecords

tabel:
    On Error GoTo 0
Exit Sub

break:
    MsgBox "De foutcode is: " & Err
Resume tabel

End Sub

Yngwie

Legacy Member
zou u ni direct kunne helpe me da probleem, mr zou ge mij kunne geven waar ge die info gehaald hebt om connectie te maken met MySQL. kan dit namelijk ook wel gebruiken en is me nog niet gelukt

Spacy2003

Legacy Member
Wel mij is de connectie via VB6.0 gelukt via de MyODBC drivers van Mysql zelf.
Deze installeer je dan samen met de laatste service pack van Visual Basic 6.0 (geloof dat dat nu SP5 is)

Als je een project begint moet je eerst bij de references ADO aanvinken (Microsoft ActiveX Data Objects) (alhoewel ik hier juist in mijn project ga kijken en dat helemaal niet aangevinkt staat)

Dan om de connectie te maken:

Code:
'vars declareren
    Dim Host As String
    Dim DB As String
    Dim Login As String
    Dim Wachtwoord As String
    Dim conn As ADODB.Connection

'Toekennen values aan connection
    Host = "127.0.0.1"
    DB = "gegevens"
    Login = "root"
    Wachtwoord = ""
   
'connectie naar MySQL server gebruikmakend van de MySQL ODBC 3.51 Driver
    Set conn = New ADODB.Connection
    conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=" + Host + ";DATABASE=" + DB + ";UID=" + Login + ";PWD=" + Wachtwoord + "; OPTION=35"
    conn.Open


Sample prog: http://users.telenet.be/I--XoNoN--I/Mysql VB app/

Spacy2003

Legacy Member
Heb het ondertussen gevonden, misschien dat iemand anders er nog wat aan heeft:

Code:
Dim rs As ADODB.Recordset
        Set rs = New ADODB.Recordset
        
        rs.Open "SELECT " & var & " FROM `" & Tabel & "`", conn
        
        rs.MoveFirst
        Do While Not rs.EOF
                Form1.List1.AddItem rs.Fields(0).Value
        rs.MoveNext
        Loop

Het enige nadeel is dat wanneer er geen records staan in de tabel dat hij dan een error geeft.
Dit heb ik zelf opgelost door een on error goto.

Cakeman

Legacy Member
Spacy2003 zei:
Heb het ondertussen gevonden, misschien dat iemand anders er nog wat aan heeft:

Code:
Dim rs As ADODB.Recordset
        Set rs = New ADODB.Recordset
        
        rs.Open "SELECT " & var & " FROM `" & Tabel & "`", conn
        
        rs.MoveFirst
        Do While Not rs.EOF
                Form1.List1.AddItem rs.Fields(0).Value
        rs.MoveNext
        Loop

Het enige nadeel is dat wanneer er geen records staan in de tabel dat hij dan een error geeft.
Dit heb ik zelf opgelost door een on error goto.
Ik dacht dat dat aan die rs.MoveFirst ligt.

Maak er eens het volgende van:
Code:
If Not rs.BOF Then
    rs.MoveFirst
End If
Ik geloof dat dat het oplost. Het is wel al lang geleden dat ik nog met VB6 en RecordSet gewerkt heb.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan