Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

DBA 1.6 - Easy Database Access (MySQL, SQLite, ADO (MS SQL / Access))


  • Please log in to reply
1 reply to this topic
IsNull
  • Moderators
  • 990 posts
  • Last active: May 15 2014 11:56 AM
  • Joined: 10 May 2007
DBA ist ein Objekt Orientierter Wrapper um standardisiert auf Datenbanken zuzugreifen. Das ganze ähnelt ADO von MS oder jdbc in Java. Aktuell werden mit SQLite, MySQL zwei führende offene Datenbanken unterstützt. Weiter wird nun auch ADO unterstützt, welches Zugriff auf Access MDBs und auch auf MS SQL Server bringt.

Dieses Projekt ist in einem frühen Stadium, daher sind Fehler nicht ausgeschlossen. Posted Image

Das Ziel dieses Wrappers ist, die zu grundeliegende DB zu abstrahieren. So, dass man sich im Skript möglichst keine Gedanken machen muss, welche DB gerade genutzt wird. Im aktuellen Zustand ist es lediglich ein vereinfachter Zugriff auf Tabellen, Rows, Felder durch vorgefertigte Klassen.

Download Lib & Example
Das Beispiel läuft out of the Box, SQLite.dll & exe sind enthalten, auch libmysql.dll ist enthalten. Auch die 64bit Versionen davon AHK_L Builds werden alle unterstützt: 32bit, 64bit, ansi, unicode

DBA on Posted Image

IsNull
  • Moderators
  • 990 posts
  • Last active: May 15 2014 11:56 AM
  • Joined: 10 May 2007
Wie verwende ich DBA?
Wenn man mit DBA arbeitet, hat man immer mit den gleichen Klassen/Objekten zu tun, egal welche Datenbank verwendet wird. Beim initialisieren einer Datenbank Verbindung wird diese abstraktion für dich vorgenommen. Das Resultat einer erfolgreichen Verbindung ist ein "Database" objekt. Dieses Objekt bietet eine Menge an Methoden an, um mit der Datenbank zu arbeiten.

1. Datenbank Verbindung herstellen

Um eine Verbindung mit einer Datenbank herzustellen, muss man den Datenbank Typ und die Verbindungsinformationen (connectionstring) angeben. Im folgenden ein paar Beispiele für bekannte Datenbanken:

SQLite
connectionString := "C:\my\super\database.sqlite"
db := DBA.DataBaseFactory.OpenDataBase("SQLite", connectionString)



MySQL
connectionString := "Server=localhost;Port=3306;Database=test;Uid=root;Pwd=toor;"
db := DBA.DataBaseFactory.OpenDataBase("MySQL", connectionString)


2. Datenbank Abfragen

Nachdem eine Verbindung zur Datenbank hergestellt wurde, haben wir das Datenbank Objekt zur Verfügung. (Hier im Beispiel in der Variablen db).

Select Abfragen sollte man mit einem RecordSet Objekt verwalten. Die Methode OpenRecordSet verlangt ein SQL Select Statement, welche die für uns interessanten Daten herausholt.

Das RecordSet stellt ein sehr verbreitetes Konzept dar, um mit den Daten umzugehen. Das RecordSet selber ist immer auf einen Datensatz (= Zeile) gesetzt, und die einzelnen Felder (= Spalten) können so direkt über das rs geholt werden. Wenn man zum nächsten Datensatz wechseln will, geschiet dies mit dem Aufruf von rs.MoveNext().

Dies kann man solange zun, wie es Datensätze im RecordSet gibt. Dies lässt sich mit rs.EOF abfragen: EOF = End of File / Records.

rs := db.OpenRecordSet("Select * from Test")

while(!rs.EOF)
{
	 name := rs["Name"]
	 phone := rs["Phone"] ; column-name oder Index
	 MsgBox %name% %phone%
	 rs.MoveNext()
}

rs.Close()