computerhelferferdi
Goto Top

mysql und Visualbasic

Hallo
Wie kann wärend ich eine MYSQL Datenbank mit Visual Basic öffne die unterschiedlichen DSN abfragen.
Mein Problem ich definiere verschiedene DSN, wenn ich nun mein Prog starte mus ich immer schon die DSN eingeben, ich möchte aber gern ein Auswahlfenster haben.

"Mein Programm jedenfalls der Anfang"

Public Sub MakeBackupNow(ODBCBaseName As String, ByVal sBackupFile As String)
On Error Resume Next

Dim oConn As ADODB.Connection
Dim BaseMakeBackup As Recordset
Dim BaseMakeBackupCreate As Recordset
Dim DataBaseTables As Recordset

Dim prevIndex As String
Dim F As Integer
Dim m As Integer
Dim d As Integer
Dim ArraCountFeld(99)
Dim ArraCountWert(99)
Dim ZeilenString As String
Dim CheckPrimZeile As String
Dim CheckKeyZeile As String
Dim ZeilenStringCreate As String
Dim TabellenName As String
Dim DatenString As String
Dim dateinr As Integer
dateinr = FreeFile
' Backup-Datei öffnen
Open sBackupFile For Output As dateinr

' Verbindung zur MySQL-Datenbank herstellen
Set oConn = New Connection
Set BaseMakeBackup = New ADODB.Recordset
Set BaseMakeBackupCreate = New ADODB.Recordset
Set DataBaseTables = New ADODB.Recordset
oConn.Open "Provider=MSDASQL;DSN=fgrancis"

Hier am Ende hätte ich gern eine Abfrage.

Ferdi Neuhaus

Content-ID: 81680

Url: https://administrator.de/contentid/81680

Ausgedruckt am: 05.11.2024 um 17:11 Uhr

SvenGuenter
SvenGuenter 26.02.2008 um 13:57:58 Uhr
Goto Top
Nur das ich dich richtig verstehe du willst gerne die DSN von Hand eingeben mit der du dich dann verbinden willst sehe ich das richtig?

Dann wäre es folgendermaßen

golbale public variable in der mainform als beispiel
Public gv_dsnstring as string



Form mit Textfeld erzeugen
Dann folgendes
form_main.gv_dsnstring = "Provider=MSDASQL;DSN=" & me.textfeld.text  

Wieder in der Form_Main
o.Conn.open gv_dsnstring


Nur zur Vollständigkeit. Du musst natürlich die Form mit dem Textfeld im Vorfeld laden also folgendermaßen


Public Sub MakeBackupNow(ODBCBaseName As String, ByVal sBackupFile As String)
On Error Resume Next

Dim oConn As ADODB.Connection
Dim BaseMakeBackup As Recordset
Dim BaseMakeBackupCreate As Recordset
Dim DataBaseTables As Recordset

Dim prevIndex As String
Dim F As Integer
Dim m As Integer
Dim d As Integer
Dim ArraCountFeld(99)
Dim ArraCountWert(99)
Dim ZeilenString As String
Dim CheckPrimZeile As String
Dim CheckKeyZeile As String
Dim ZeilenStringCreate As String
Dim TabellenName As String
Dim DatenString As String
Dim dateinr As Integer
dateinr = FreeFile
' Backup-Datei öffnen  
Open sBackupFile For Output As dateinr

form_dsnholen.show

' Verbindung zur MySQL-Datenbank herstellen  
Set oConn = New Connection
Set BaseMakeBackup = New ADODB.Recordset
Set BaseMakeBackupCreate = New ADODB.Recordset
Set DataBaseTables = New ADODB.Recordset
oConn.Open gv_dsnstring

Gruß

Sven
ComputerhelferFerdi
ComputerhelferFerdi 27.02.2008 um 06:44:22 Uhr
Goto Top
Hallo
Nicht ganz
Ich hätte gern ein Auswahlfenster in dem mir die unterschiedlichen System-DSN gezeigt werden, die angelegt sind. Besser wäre natürlich eine Möglichkeit die verschiedenen Datenbanken einzusehen, ähnlich wie wenn ich eine System-DSN anlege die Verbindunmgsdaten eingeben und dann kann man ja die Datenbank auswählen, ich meinen im ODBC-Datenquellen-Administrator unter SystemDSN.
Ferdi
SvenGuenter
SvenGuenter 27.02.2008 um 08:47:50 Uhr
Goto Top
Hi dann musst du dir die regestry auslesen in der HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\
stehen alle DSN die du angelegt hast in jedem Ordner findust du den Schlüssel dbq der den Pfad zur Datenbanl enthält.


Gruß

Sven Guenter
ComputerhelferFerdi
ComputerhelferFerdi 27.02.2008 um 08:55:16 Uhr
Goto Top
Hallo Sven
Das funktioniert prima danke,
aber gibts auch eine Möglichkeit mir die verschiedenen Datenbanken auf dem Server anzeigen zulassen?

Ich weis es geht wenn ich die DSN anlege bekomme ich unten in dem Feld die Möglichkeit eine Datenbank auszuwählen.

Ferdi
SvenGuenter
SvenGuenter 27.02.2008 um 13:18:41 Uhr
Goto Top
Du willst aus deinem Programm raus den DB Server ansprechen und dann die DB's die dort installiert sind angezeigt bekommen verstehe ich das richtig?

wenn es das sein sollte dann mach einfach folgendes SQL auf die DB

select distinct table_schema  from information_schema.tables

Das liest dir alle DB's aus.


Gruß

Sven