Seite 1 von 1

Problem mit MySQL und ODBC

Verfasst: 26.10.2007 14:29
von Caretaker
Hallo Leute,
ich habe schon wieder ein Problem !!

Ich möchte bestimmte Datensätze in eine mySQL Datenbank einfügen.

Zuerst habe ich eine Datenbank mit einer Tabelle erstellt, dann habe Ich nun den ODBC-Treiber installiert und einen System-DSN erstellt.
Zudem habe ich in der Hilfe gleich einen Quelltext gefunden, den ich theoretisch benutzen kann.

Das Problem ist jetzt, dass ich bei jedem Ausführen des Codes aufgefordert werde eine Datenquelle auszuwählen (bzw. eine neu zu erstellen wenn nicht vorhanden.). Das möchte ich gerne umgehen.

Kann man im Code selber schon vordefinieren welchen DSN er benutzen soll, damit die Abfrage der Datenquelle entfällt ??

Hier der Code den ich benutzen möchte:

Code: Alles auswählen

;
; ------------------------------------------------------------
;
;   PureBasic - Database example file
;
;    (c) 2001 - Fantaisie Software
;
; ------------------------------------------------------------
;

If InitDatabase() = 0
  MessageRequester("Error", "Can't initialize Database (ODBC v3 or better) environment", 0)
  End
EndIf

OpenConsole()

Dim DatabaseType.s(4)
DatabaseType(0) = "Unknown"
DatabaseType(1) = "Numeric"
DatabaseType(2) = "String"
DatabaseType(3) = "Float"

; First, let's see which drivers are attached to the system..
;

If ExamineDatabaseDrivers()
  While NextDatabaseDriver()
    PrintN(DatabaseDriverName()+" - "+DatabaseDriverDescription())
  Wend
EndIf

; Open an ODBC database
;
If OpenDatabaseRequester(0)

  PrintN("Database successfully opened !")
  PrintN("Type EXIT to quit.")
  PrintN("Command example: select * from user;")

  Repeat
    Print("SQL Command: ")
    Command$ = Input()
    PrintN("")

    Select UCase(Command$)
      Case "EXIT"
        Quit = 1

      Default

        If DatabaseQuery(Command$)

          NbColumns = DatabaseColumns()
          PrintN("NbColums: " + Str(NbColumns))

          For k=0 To NbColumns-1
            PrintN(DatabaseColumnName(k) + " - " + DatabaseType(DatabaseColumnType(k)))
          Next

          PrintN("")
          Print ("Press return to continue") : Input()
          PrintN("")
          PrintN("Query Result -------------------------------------")

          While NextDatabaseRow()
            PrintN(GetDatabaseString(0))
          Wend

          PrintN("--------------------------------------------------")
        Else
          PrintN("Bad Query !")
        EndIf
    EndSelect
  Until Quit = 1
Else
 MessageRequester("Info", "Operation canceled", 0)
EndIf

End
; ExecutableFormat=Console
; EOF

Außerdem habe ich ein Verständnisproblem mit dem OpenDatabase()-Befehl.

Code: Alles auswählen

OpenDatabase(#Database, ODBCDatabaseName$, Benutzer$, Passwort$) 
Und zwar was kann bzw. muss man für "#Database" einsetzten?


Vielen Dank für Eure Antworten im Vorraus !!!

Gruß Caretaker

Verfasst: 26.10.2007 14:40
von bobobo
opendatabase(..) benutzt vorhandene ODBC-Datenbank-
anbindungen (kann man in der ODBC-Verwaltung Systemeinstellungen
-Verwaltung oder start ausführen "odbccp32.cpl" eintragen)

also

Opendatabase(Nummer,ODBC_NAME_DER_VERBINDUNG,USER,PASSWORT)

Verfasst: 26.10.2007 15:35
von Caretaker
VIELEN DANK !!!!!

Das hat mir sehr geholfen!!

Verfasst: 26.10.2007 17:18
von bobobo
mir auch :mrgreen: