# mysql Variablen lesen + schreiben



## Hafke (1. Oktober 2004)

Kann mir jemand sagen oder einen Code posten oder am aller besten ein kleines programm zeigen/programmieren. wie ich mit einer mysql datenbank verbinde und variablen aus einer tabelle in vb variablen laden kann. 

ip vom server und so hab ich schon. ich bin seit 3 tagen am foren durchstöbern, ich finde aber immer nur "halbe" antworten. jetz hab ich mir gedacht poste ich die frage einfach mal. 

ich bin wirklich am ende und brauch unbedingt hilfe, sei sie noch so kompliziert. hauptsache das tut (am besten ohne treiber (myodbc) aber auch mit wird danken angenommen)


----------



## spirit (2. November 2004)

Hi 

Als erstes googles du dir die Dateien LibMySql.dll und MyVbQL.dll.
Diese kopiert du in dein Systemverzeichnis.
In Visual Basic erstellst du dann unter Projekte einen Verweis auf MySqlApi

Dann erstellst du ein neues Modul und fügst dort diesen Code ein.

' Variablen für den Datenbanc connect definieren
Public oConn As New MYSQL_CONNECTION
Public oRs As MYSQL_RS


' Verbindungsdaten
Public Const sServer As String = "rechnername"
Public Const sUsername As String = "username"
Public Const sPassword As String = "passwort"
Public Const sDBName As String = "datenbankname"


' Fehlerausgabe bei Verbindungsfehler
Public Function MySQL_Error() As Boolean
  With oConn.error
    If .Number = 0 Then Exit Function
    MsgBox "Error " & .Number & ": " & .Description
    MySQL_Error = True
  End With
End Function

Public Function connect()
    oConn.OpenConnection sServer, sUsername, sPassword, sDBName
    ' Statusabfrage für Verbindung
        If (oConn.State = MY_CONN_CLOSED) Then
        ' Falls Verbindung nicht geöffnet, Fehlerangabe!
        MySQL_Error
    End If
End Function

Jetzt erstellst du dir eine Form mit diesem Code

connect ' Datenbank verbinden

'SQL-Query an eine Datenbank die natuerlich schon vorhanden sein muss
        Set oRs = oConn.Execute("select * from datenbank where feld = 'suchbegriff'")
            If oConn.error.Number = 0 Then ' Wenn Query ohne Fehler ausgefuegrt wurde
            'Beispiel Ereigniscode
            While not ors.eof
            variable1=ors.fields(0).value
            variable1=ors.fields(1).value
ors.movenext
wend
            Else
                MySQL_Error
            End If
        End If
    oConn.CloseConnection

Das wars schon. Bei Problemen kannst du dich ja melden


----------



## stathis2000 (19. November 2004)

Ich versuche auch grad eine Verbindung mit der MySQL Datenbank herzustellen, habe mir auch die Dateien LibMySql.dll und MyVbQL.dll heruntergeladen. 
  Nun die Frage: Meinst du mit Systemverzeichnis , das Verzeihnis wo VB installiert ist? Wenn ja dann habe ich das gemacht.

  "In Visual Basic  erstellst du dann unter Projekte einen Verweis auf MySqlApi"

   Wie mache ich das?

  MyVbQL.dll habe ich registriert und den Code habe ich auch erstellt.
  Wenn ich das Programm aufrufen will erscheint die Fehlermeldung 
  "Benutzerdefinierter Typ nicht definiert" 
  und VB markiert mir diese Zeile
  "Public oConn As New MYSQL_CONNECTION"

  Ich denke wenn ich den verweis auf MySqlApi erstelle wird es klappen oder?


----------



## stathis2000 (19. November 2004)

ahh ok habs gefunden :-( unter Projekt/Verweise
  die Verbinund steht schonmal

  Eine gute Einleitung findet ihr hier: 

http://www.vbarchiv.net/workshop/workshop47s1.html


----------



## spirit (19. November 2004)

Hallo

Kommst du klar Hat die Verbindung hingehauen


----------



## stathis2000 (19. November 2004)

Servus,

 also die MsgBox erscheint schonmal, mit der Meldung dass ich mich mit der Datenbank verbunden habe. Ich denk mal das hat geklappt. Ich würde gerne aber die Felder von der Datenbank anzeigen, dazu fehlt mir aber das FlexGrid!
 Wie kann ich so ein FlexGrid einfügen? Ich finde das nicht in meiner Werkzeugliste!


----------



## spirit (19. November 2004)

Hallo

Du must doch kein Flexgrid haben...Ich fülle z.B mit den Daten eine ListViewbox.
Wenn du aber unbedingt ein Flexgrig brauchst must du unter "Komponenten" das Microsoft Flexgrid hinzufügen


----------



## reichardm (5. Dezember 2004)

@spirit:


Ich habe gerade obengeschriebenen Code eingebaut. Ich bekomme nur keine Datensätze aus der Datenbank geliefert.

>variable1=ors.fields(0).value
>variable1=ors.fields(1).value

variable1 ist leer.

wenn du  ICQ hast, kannst du dich gerne bei mir melden.

Bye Martin.


----------



## MadCro (24. Januar 2005)

super klappt,

danke


----------



## Prodium (29. März 2005)

Bei mir taucht immer ein Fehler auf:

Error 1045: Access denied for user 'web65@A583.c.a.pppool.de' (Using password: YES)
Ich weiß nur, das "A583.c.a.pppool.de" der aufgelöste Name meiner IP ist, aber warum hängt der sich hinten dran und wie kann ich das abschalten?

Und nun? Was kann ich dagegen machen? Die Daten sind alle korrekt, das weiß ich, da ich auch per PHP verbinden und Daten auslesen kann.

Bitte um baldige Antwort!

Prodium


----------



## KristophS (29. März 2005)

Liegt die Datenbank auf deinem Rechner? Wenn nicht, könnte es afaik Probleme geben, da manche (viele!) Datenbanken sich nur lokal ansprechen lassen, und nicht von dir aus. Die PHP-Datei z.B. liegt ja auf dem Server, es funktioniert also. Dein Programm liegt bei dir zuhause, es funktioniert folglich nicht.


----------



## vb_user (28. April 2005)

hallo,

habe das gleiche problem. Ich schaffe die Verbindung nicht. Habe auch schon auf der seite die vorgeschlagen wurde nachgeschaut aber leider ohne Erfolg.

Es kommen immer die gleichen Fehler:

z.B. : Type 'MYSQL_CONNECTION' is not defined.

Hat jemand vielleicht ein Beispiel das Funktioniert? (programmiere mit : Vb.net)

vielleicht kann mir wer helfen
mfg
tom


----------



## spirit (2. Mai 2005)

Prodium: 

 Dein Problem ist das der User kein ohne Passwort angelegt wurde und vermutlich in deinem Connect-String ein Passwort mit angegeben wurde

vb_user:

Wenn du diesen Fehler bekommst solltest du deine Datenabnkeinstellungen prüfen.

' Verbindungsdaten
Public Const sServer As String = "rechnername"
Public Const sUsername As String = "username"
Public Const sPassword As String = "passwort"
Public Const sDBName As String = "datenbankname"


----------



## popelmaster (19. Mai 2005)

hmm hab das selbe problem ... diesen anhängsel hinten dran... und die connection is richtig  ;-] ...grmpf   jemand ne idee oder geht es schlichtweg nich?


----------



## spirit (20. Mai 2005)

Kontrolliere mal unter Projekt-->Verweise ob die MySQL Visual Basic API v2.0.0 angeklickt ist. Wenn du diese Auswahl nicht hast, ist deine DLL nicht richtig registriert.

Kontrolliere ob die Dateien LibMySql.dll und MyVbQL.dll in deinem System32 Ordner existieren


----------



## popelmaster (20. Mai 2005)

ja ist sie er greift ja auch auf die datenbank zu ... nur dann halt mit dem fehler das der zugriff verweigert wurde für den nutzer web22@t-onlineBLABLABLA.de Password: (YES)

Kann das sein das die DB nur localhost anfragen annimmt und wenn ja wo kann man sich ne datanbank holen die auch von aussen anfragen zulässt...Ich brauch sie nicht nur auf meinem lokalen Rechner ich brauch sie im Internet damit viele Leute darauf zugreifen können...


----------

