Avatar billede dennism Nybegynder
01. marts 2004 - 21:49 Der er 8 kommentarer og
1 løsning

VB: Sql

Er der nogen der kan forklare mig, hvordan jeg kan lave et VB program som kan kommunikere med en mySQL-server som ligger på nettet?
Avatar billede tjp Mester
02. marts 2004 - 04:57 #1
Måske kan nedenstående kode hjælpe lidt på vej:

Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset

    ' Open the database.
    Set conn = New ADODB.Connection
    conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" _
        & "SERVER=127.0.0.1;" _
        & "DATABASE=test;" _
        & "UID=testuser;" _
        & "PWD=12345;" _
        & "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 16384
    conn.Open
                                 
    ' Open the recordset.
    Set rs = New ADODB.Recordset
    rs.Open "SELECT * FROM table1", conn, adOpenStatic, adLockReadOnly

    ' Process the records.
    Do While Not rs.EOF
        for each x in rs.fields
            response.write(x.name)
            response.write(" = ")
            response.write(x.value)
        next
        rs.MoveNext
    Loop

    ' Closing
    rs.Close
    Set rs = Nothing
   
    conn.Close
    Set conn = Nothing
Avatar billede dennism Nybegynder
02. marts 2004 - 17:09 #3
Jeg har nu følgende kode:

Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset

    ' Open the database.
    Set conn = New ADODB.Connection
    conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" _
        & "SERVER=127.0.0.1;" _
        & "DATABASE=dgkom;" _
        & "UID=;" _
        & "PWD=;" _
        & "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 16384
    conn.Open
                                 
    ' Open the recordset.
    Set rs = New ADODB.Recordset
    rs.Open "SELECT * FROM users", conn, adOpenStatic, adLockReadOnly

    ' Process the records.
    Do While Not rs.EOF
        For Each x In rs.fields
            response.write (x.Name)
            response.write (" = ")
            response.write (x.Value)
        Next
        rs.MoveNext
    Loop

    ' Closing
    rs.Close
    Set rs = Nothing
   
    conn.Close
    Set conn = Nothing


_____________________

Men når jeg forsøger at køre programmet kommer følgende fejl frem:
Ivalid Outside Procedure

Hvad skyldes det?

Hvor ændrer jeg iøvrigt hvilke værdier der skal printes?
Avatar billede dennism Nybegynder
02. marts 2004 - 17:13 #4
Fandt lige et andet eksempel, og bruger derfor følgende nu:

Set conn = CreateObject("ADODB.Connection")
DSN = "Provider=MSDASQL.1;Extended Properties=""Driver={MySQL};DATABASE=dgkom;SERVER=127.0.0.1;UID=;PWD=;PORT=;OPTION=0;STMT=;"""
conn.Open DSN

SQL = "select * from users"
Set rs = conn.Execute(SQL)
While Not rs.EOF
text1.Text = rs("name")
rs.MoveNext
Wend

Men jeg får samme fejl!?
Avatar billede martin_moth Mester
02. marts 2004 - 21:27 #5
Det hjælper ikke kun at give fejlmeddelsen. HVOR kommer den?
Avatar billede tjp Mester
03. marts 2004 - 00:43 #6
Det skyldes formentlig at koden ikke befinder sig i en procedure/funktion.

Prøv evt. følgende fra "http://www.freevbcode.com/ShowCode.asp?ID=6187":

' put the following in a module

Option Explicit
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim username As String
Dim passwd As String
Dim serverIP As String
Dim db As String
Public Function connectMysql(username As String, passwd As String, serverIP As String, db As String, conn As ADODB.Connection, rs As ADODB.Recordset)
  Set conn = New ADODB.Connection
  Set rs = New ADODB.Recordset
  conn.CursorLocation = adUseClient
  conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=" & serverIP & ";UID=" & username & ";PWD=" & passwd & ";DATABASE=" & db & ";" _
  & "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 163841
  conn.Open
End Function

'********************************************

' put this in your form

Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim username As String
Dim passwd As String
Dim serverIP As String
Dim db As String
Dim ssql As String
Private Sub Form_Load()
Call connectMysql("root", "", "127.0.0.1", "myerp", conn, rs)
ssql = "SELECT * FROM accmaster"
rs.Open ssql, conn
Set DataGrid1.DataSource = rs
End Sub
Avatar billede dennism Nybegynder
12. marts 2004 - 22:20 #7
Kan ik helt få det til at virke.
Kender I en artikel på nettet, hvor jeg kan få metoden gennemgået?
Avatar billede tjp Mester
13. marts 2004 - 01:59 #8
Hvad er det der ikke lige virker? Kan du ikke åbne forbindelsen? Får du fejlmeddelelser oder was?
Avatar billede dennism Nybegynder
20. oktober 2004 - 17:24 #9
Jeg lukker her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester