MS-Access Datenbank schreiben und lesen

Anfängerfragen zum Programmieren mit PureBasic.
raynay
Beiträge: 5
Registriert: 24.02.2005 11:39
Wohnort: Ostsee
Kontaktdaten:

MS-Access Datenbank schreiben und lesen

Beitrag von raynay »

Hallo @all!

Ich habe eine MS-Access-DB eingerichtet, die aus vier Tabellen
besteht, die miteinander über ein Feld verknüpft sind.

Wie kann ich in die Datenbank/Tabellen/Felder schreiben und wie
wieder auslesen? Gibt es da einen Code zum Anschauen?

Welche Alternativen gibt es unter Windows, mit vernünftigen DB-Frontend?
Mit Ostsee-Grüßen

René
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Schau dir die Database-Lib von PB an (keine Userlib). Über OECD müsste man doch darauf zugreifen können, oder?

Simon
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Belgarath
Beiträge: 7
Registriert: 18.11.2004 18:11
Wohnort: Oldenburg

Beitrag von Belgarath »

LOL
Ich glaube du meinst die ODBC.
Die OECD ist für die wirtschaftliche Zusammenarbeit in Europa.

Sorry, konnte ich mir jetzt nicht verkneifen :wink:
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Stimmt, wollte noch dazu schreiben, dass ich mir beim Namen nicht sicher bin
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
raynay
Beiträge: 5
Registriert: 24.02.2005 11:39
Wohnort: Ostsee
Kontaktdaten:

Antwort unter www.purearea.net gefunden

Beitrag von raynay »

Anbei der Code zur Abfrage. Nach einigem Probieren ging es dann....


; Autor: Logan5
; Datum: 30.11.02
; Forum: Deutsches Forum
; Quelle www.pureaera.net
; Link http://www.purearea.net/pb/german/index.htm
; Link des Programms http://www.purearea.net/pb/CodeArchiv/D ... atabase.pb


;Autor logan5, 30. Nov 2002

If InitDatabase()

result = OpenDatabase(0,"Kasam Datenbank","maier","bravo")



;--------------------------------------------------------------------------------------
; Was InitDatabase() bedeutet am besten in der hilfe nachschauen
; result wird nur abgefragt um festzustellen ob die Datenbank geöffnet werden kann
;
; OpenDatabase(#Database, ODBCDatabaseName$, User$, Password$)
;
; #Database ist einfach eine nummer die man festlegt
; ODBCDatabaseName$ jetzt wird's schwieriger, hier nicht die datenbank datei eintragen
; sondern, den namen den ihr im odbc treiber für die datenbank vergeben habt
; zu finden in einstellungen systemsteuerung odbc datenquelle system dsn
; User$ und Password$ falls die access datei mit einem username und password
; gesichert ist hier angeben, falls nicht ist völlig egal was hier steht
;--------------------------------------------------------------------------------------

If result > 0
MessageRequester("Kasam Datenbank", "Kasam Datenbank ist offen",#PB_MessageRequester_Ok )
EndIf

;--------------------------------------------------------------------------------------
; Hier wird nur noch einmal ausgegeben, das die datenbank offen ist
;--------------------------------------------------------------------------------------


Abfrage$="Select * from stratab"

;--------------------------------------------------------------------------------------
; Hier wird die abfrage für die datenbank formuliert diese braucht man später
; für DatabaseQuery(Abfrage$)
; wenn ich den befehl richtig verstanden hab bedeutet er wähle (select) alles (*)
; aus (from) der Tabelle stratab aus
; stratab ist eine Tabelle aus der Access datei die ich abfragen will
;--------------------------------------------------------------------------------------



OpenConsole()

;--------------------------------------------------------------------------------------
; in meinem beispiel möchte ich den dateninhalt einfach nur ausgeben, also
; öffne ich hier eine console. genauso gut könnte man sie an ein array übergeben oder
; nach bestimmten sätzen suchen
;--------------------------------------------------------------------------------------


If DatabaseQuery(Abfrage$)

;--------------------------------------------------------------------------------------
; die erklärung für DatabaseQuery am besten in der hilfe nachschlagen
;--------------------------------------------------------------------------------------



While NextDatabaseRow()

;--------------------------------------------------------------------------------------
; hier beginnt die abfrage meiner tabelle stratab (ist übrigens die abkürzung für
; strassennamen tabelle)
; die tabelle beeinhaltet nur zwei spalten eine mit der strassen id und eine mit dem
; strassennamen
; ich muss die feldbezeichnung innerhalb der access datei gar nicht kennen, denn ich
; rufe die erste spalte mit GetDatabaseString(0), die zweite mit GetDatabaseString(1)
; usw. auf und speichere sie in freigewählten variablennamen unter purebasic mit einer
; while wend schleife durchlaufe ich die ganze datei
;--------------------------------------------------------------------------------------

ID = GetDatabaseLong(0)
Bezeichnung.s=RTrim(GetDatabaseString(1))
;--------------------------------------------------------------------------------------
; in meinen beispiel gebe ich die daten nur auf dem bildschirm aus, der rest dürfte
; klar sein
;--------------------------------------------------------------------------------------


Print (Str(ID))
Print(" ")
PrintN (Bezeichnung.s)

Wend


Else
MessageRequester("Fehler","ODCB Umgebung nicht vorhanden",#MB_ICONERROR)
End
EndIf

CloseDatabase(0)

CloseConsole()

EndIf
; ExecutableFormat=Windows
; DisableDebugger
; EOF
Mit Ostsee-Grüßen

René
raynay
Beiträge: 5
Registriert: 24.02.2005 11:39
Wohnort: Ostsee
Kontaktdaten:

Antwort unter www.purearea.net gefunden

Beitrag von raynay »

Anbei der Code zur Abfrage. Nach einigem Probieren ging es dann....


; Autor: Logan5
; Datum: 30.11.02
; Forum: Deutsches Forum
; Quelle www.pureaera.net
; Link http://www.purearea.net/pb/german/index.htm
; Link des Programms http://www.purearea.net/pb/CodeArchiv/D ... atabase.pb


;Autor logan5, 30. Nov 2002

If InitDatabase()

result = OpenDatabase(0,"Kasam Datenbank","maier","bravo")



;--------------------------------------------------------------------------------------
; Was InitDatabase() bedeutet am besten in der hilfe nachschauen
; result wird nur abgefragt um festzustellen ob die Datenbank geöffnet werden kann
;
; OpenDatabase(#Database, ODBCDatabaseName$, User$, Password$)
;
; #Database ist einfach eine nummer die man festlegt
; ODBCDatabaseName$ jetzt wird's schwieriger, hier nicht die datenbank datei eintragen
; sondern, den namen den ihr im odbc treiber für die datenbank vergeben habt
; zu finden in einstellungen systemsteuerung odbc datenquelle system dsn
; User$ und Password$ falls die access datei mit einem username und password
; gesichert ist hier angeben, falls nicht ist völlig egal was hier steht
;--------------------------------------------------------------------------------------

If result > 0
MessageRequester("Kasam Datenbank", "Kasam Datenbank ist offen",#PB_MessageRequester_Ok )
EndIf

;--------------------------------------------------------------------------------------
; Hier wird nur noch einmal ausgegeben, das die datenbank offen ist
;--------------------------------------------------------------------------------------


Abfrage$="Select * from stratab"

;--------------------------------------------------------------------------------------
; Hier wird die abfrage für die datenbank formuliert diese braucht man später
; für DatabaseQuery(Abfrage$)
; wenn ich den befehl richtig verstanden hab bedeutet er wähle (select) alles (*)
; aus (from) der Tabelle stratab aus
; stratab ist eine Tabelle aus der Access datei die ich abfragen will
;--------------------------------------------------------------------------------------



OpenConsole()

;--------------------------------------------------------------------------------------
; in meinem beispiel möchte ich den dateninhalt einfach nur ausgeben, also
; öffne ich hier eine console. genauso gut könnte man sie an ein array übergeben oder
; nach bestimmten sätzen suchen
;--------------------------------------------------------------------------------------


If DatabaseQuery(Abfrage$)

;--------------------------------------------------------------------------------------
; die erklärung für DatabaseQuery am besten in der hilfe nachschlagen
;--------------------------------------------------------------------------------------



While NextDatabaseRow()

;--------------------------------------------------------------------------------------
; hier beginnt die abfrage meiner tabelle stratab (ist übrigens die abkürzung für
; strassennamen tabelle)
; die tabelle beeinhaltet nur zwei spalten eine mit der strassen id und eine mit dem
; strassennamen
; ich muss die feldbezeichnung innerhalb der access datei gar nicht kennen, denn ich
; rufe die erste spalte mit GetDatabaseString(0), die zweite mit GetDatabaseString(1)
; usw. auf und speichere sie in freigewählten variablennamen unter purebasic mit einer
; while wend schleife durchlaufe ich die ganze datei
;--------------------------------------------------------------------------------------

ID = GetDatabaseLong(0)
Bezeichnung.s=RTrim(GetDatabaseString(1))
;--------------------------------------------------------------------------------------
; in meinen beispiel gebe ich die daten nur auf dem bildschirm aus, der rest dürfte
; klar sein
;--------------------------------------------------------------------------------------


Print (Str(ID))
Print(" ")
PrintN (Bezeichnung.s)

Wend


Else
MessageRequester("Fehler","ODCB Umgebung nicht vorhanden",#MB_ICONERROR)
End
EndIf

CloseDatabase(0)

CloseConsole()

EndIf
; ExecutableFormat=Windows
; DisableDebugger
; EOF
Mit Ostsee-Grüßen

René
Antworten