Seite 1 von 1

Zugriff auf Datenbank ohne einrichten einer ODBC Verbindung

Verfasst: 20.09.2006 08:35
von Martin66119
Der Zugriff auf einzelne Daten, das Verändern u.s.w. habe ich hinbekommen.

Um jedoch auf die Access-Datenbank zugreifen zu können muss ich jedoch in der Systemsteuerung (Windows) die entsprechende ODBC-Verbindung einrichten unter dieser ich dann mit mit meinem Programm in PureBasic zugreifen kann. Hier (s.u.) der Rump des Codes den ich in meinem Programm benutzen will.

Nun meine Frage: Wie kann ich denn auf eine Datenbank zugreifen, ohen dass ich im Voraus die entsprechende ODBC-Verbindung einrichten muss.

Danke schonmal und nochmal an alle!
Martin

Code: Alles auswählen


 Enumeration 
 #Datenbank_1
 EndEnumeration 
 
 Ergebnis = InitDatabase()
 
     If Ergebnis = 0 
      ;MessageRequester("PureBasic Datenbank", "ODBC nicht 
       verfügbar ",#PB_MessageRequester_Ok ) 
    Else
      ;MessageRequester("PureBasic Datenbank", "ODBC  
       verfügbar ",#PB_MessageRequester_Ok ) 
    EndIf 
    
    Ergebnis = OpenDatabase(#Datenbank_1,"PureBasic","Admin","")  
    
    If Ergebnis = 0 
      ;MessageRequester("PureBasic Datenbank", "Datenbank nicht 
       verfügbar ",#PB_MessageRequester_Ok ) 
    Else
      ;MessageRequester("PureBasic Datenbank", " Datenbank 
       verfügbar ",#PB_MessageRequester_Ok ) 
    EndIf
    
;-----------------------------------------------------------------------    
    
    Ergebnis = DatabaseQuery(0, "Select * from Firmeninfo" )
    If Ergebnis = 0 
      MessageRequester("PureBasic Datenbank", "Datenbank nicht 
      verfügbar ",#PB_MessageRequester_Ok ) 
    Else
      MessageRequester("PureBasic Datenbank", " Datenbank 
      verfügbar ",#PB_MessageRequester_Ok ) 
    EndIf
    
    Ergebnis = FirstDatabaseRow(#Datenbank_1)
    
    NbColumns = DatabaseColumns(#Datenbank_1)
    MessageRequester("" ,StrU(NbColumns,#Word),0)
 
;--------------------------------------------------------------------------
   Wert.s = "Testeintrag"

   RetVal$ = "INSERT INTO  Firmeninfo (RegNr) VALUES  ('"+Wert.s+"')" 
   DatabaseQuery(#Datenbank_1, RetVal$ )
     
    Ergebnis = DatabaseQuery(0, "Select * from Firmeninfo" )
    Ergebnis = FirstDatabaseRow(#Datenbank_1)
  
    While NextDatabaseRow(#Datenbank_1) 
            
       For Count= 0 To NbColumns-1           
          DumpString.s = GetDatabaseString(#Datenbank_1, Count) 
          Debug DumpString.s                           
       Next Count 
    
     Wend 

     
[/quote]

Verfasst: 20.09.2006 11:45
von mknjc
Hm um auf eine Access Datenbank zugreifen zu können müsstest du eigentlich nativ die Datei öffnen und die Variabelen dann auslesen.
Ich mach mich mal schlau wie sone Datenbank aufgebaut ist.
Hoffe heute Nachmittag kann ich dir mehr sagen.

Verfasst: 20.09.2006 11:50
von ts-soft

Verfasst: 20.09.2006 12:48
von bobobo
Gegn ODBC spricht alelrdings nichts da sich 'ne ODBC-Verbindung
unter aktuellem Windoofs in der Systemverwaltung auf sehr wenige
Einträge in der Registry(*) beschränkt. Sowas kann
man zur Not auch mit Pbmitteln sehr schnell eintragen.
Damit wäre eine OnTheFly-ODBC-Anbindung zu machen.

(*) hier stünde der übliche Sermon was das Manipulieren der Registry angeht. Ich bin nur zu faul.

Verfasst: 20.09.2006 13:02
von Kiffi
> Damit wäre eine OnTheFly-ODBC-Anbindung zu machen.

dafür gibt's entsprechende APIs. Siehe: http://www.purebasic.fr/german/viewtopic.php?t=8944

Grüße ... Kiffi