Seite 1 von 1

DB-Treibername bei Auswahl über OpenDatabaseRequester()

Verfasst: 27.11.2012 14:53
von fabulouspaul
Hallöle,

wenn ich über OpenDatabaseRequester() einen ODBC-Treiber für eine DB-Verbindung auswähle, möchte ich mir gerne den Treibernamen merken (damit man sich das beim nächsten Start schenken kann).
DatabaseDriverName() funktioniert aber nur bei ExamineDatabaseDrivers() & NextDatabaseDriver().

Hat jemand einen Tipp für mich, wie ich bei geöffneter DB-Verbindung (über OpenDatabaseRequester()) an den ODBC-Treibername komme? Dann könnte ich bei allen weiteren Nutzungen die DB direkt über OpenDatabase(#DB, Treiber$, User$, PW$,#PB_Database_ODBC) öffnen.

Viele Grüße,
Paul

Re: DB-Treibername bei Auswahl über OpenDatabaseRequester()

Verfasst: 27.11.2012 20:20
von bobobo
dann vergisst du eben mal den Requester und machst Dir selber einen
z.B.

Code: Alles auswählen

;folgender Code verdient sicher keine Preise
UseODBCDatabase()
OpenWindow(0,0,0,500,500,"Datenbanken",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
ListViewGadget(0,0,0,500,500)
ExamineDatabaseDrivers()
While NextDatabaseDriver()
  AddGadgetItem(0,0,DatabaseDriverName())
Wend
Repeat
  event=WaitWindowEvent()
  gadget=EventGadget()
  type=EventType()
  Select event
    Case #PB_Event_Gadget
      Select gadget
        Case 0
          Select type
            Case #PB_EventType_LeftDoubleClick
              dbname.s=GetGadgetItemText(0,GetGadgetState(0))
              MessageRequester("Aha","da merk ich mir mal"+dbname.s)
          EndSelect
      EndSelect
    Case #PB_Event_CloseWindow
      quit+1
  EndSelect
Until quit

CloseWindow(0)

If dbname
  dbuser.s=InputRequester("Db ","User ?? ","")
  dbpass.s=InputRequester("Db ","Passwort her","")
  If OpenDatabase(0,dbname,dbuser,dbpass)
    MessageRequester("hmm","die Datenbank ist so offen wie Dein Mund!")
    CloseDatabase(0)
  Else
    ;was auch immer
  EndIf
EndIf
End

Re: DB-Treibername bei Auswahl über OpenDatabaseRequester()

Verfasst: 03.12.2012 16:26
von fabulouspaul
/:->
Ich hatte so etwas schon befürchtet, wollte es mir nur einfach machen. :)

Trotzdem Danke für die Code-Vorlage!

VG
Paul