Hi,
da ts-soft zur Zeit nicht zur Verfügung steht, führe ich das Projekt weiter.
Die LIB unterstützt jetzt folgende Datendanken:
- MDB, XLS, DBASE, CSV und TXT, MySQL und M$ SQL Server
Funktionsbeschreibung:
Funktionsbeschreibung:
Result.l = ExamineTables(DSN.s [, USER.s, PASS.s])
Result.l = NextTable()
Result.s = GetTableName()
Result.s = GetTableType()
Result.s = AddDSN(databasename.s [, user.s, pass.s][, driver.s]) - Result <- User DSN Name
Result.l = RemoveDSN(databasename.s [, driver.s])
Result.s = AddSystemDSN(databasename.s [, user.s, pass.s][, driver.s]) - Result <- System DSN Name
Result.l = RemoveSystemDSN(databasename.s [, driver.s])
Result.l = RepairMDB(databasename.s [, user.s, pass.s])
Result.l = CompactMDB(databasename.s [, user.s, pass.s])
Result.l = CreateEmptyMDB(databasename.s [, user.s, pass.s])
Unterstützte Datenbanken und verwendete Standardtreiber:
*.MDB -> "Microsoft Access Driver (*.mdb)"
*.XLS -> "Microsoft Excel Driver (*.xls)"
*.DBF -> "Microsoft dBase Driver (*.dbf)"
*.CSV -> "Microsoft Text Driver (*.txt; *.csv)"
*.TXT -> "Microsoft Text Driver (*.txt; *.csv)"
*.MySQL -> "MySQL ODBC 3.51 Driver"
*.MsSQL -> "SQL Server"
Format für MySQL:
databasename = "[Host oder IP[:Port]\]Schema.MySQL", z.B. "InternetHost:3317\information_schema.mysql"
Bei fehlenden Host oder IP wird automatisch "localhost" gesetzt.
Format für SQL Server:
databasename = "SQLServer\Tabelle.MsSQL", z.B. "(local)\SQLEXPRESS\Master.MsSQL"
Hinweis: Parameterfolge hat sich geändert und "AddDSN(...)" liefert jetzt den zu verwendeten DSN Name zurück.
Update v1.04
Download
FF
P.S. Angepasster Testcode (DSN)
Code: Alles auswählen
; Original by PAMKKKKK
; angepaßt für PBOSL_ExDatabase und PB4 by ts-soft und mk-soft
EnableExplicit
UseODBCDatabase()
;InitDatabase()
Define.s dbName = "c:\exDatabase_test.mdb" ; könnt Ihr anpassen
Define.s DSN
Define.s SQL
Define.l db = 0
Define.l result
If CreateEmptyMDB(dbName) ; leere Datenbank erstellen
dsn = AddDSN(dbName, "User", "PASS") ; DSN hinzufügen
EndIf
Debug "DSM=" + dsn
; Datenbank verbinden
If OpenDatabase(db, DSN, "", "") = 0
End
EndIf
If IsDatabase(db)
Debug "Start..."
; SQL Befehl zum Tabelle erstellen
SQL = "Create table Adress (id autoincrement, vorname text(50), nachname text(50), constraint Adress unique(id));"
If DatabaseQuery(db, SQL) ; SQL Befehl ausführen
; SQL Befehl zum einfügen von Daten in die Tabelle
SQL = "Insert into Adress (vorname, nachname) values ('Thomas', 'Schulz')"
DatabaseQuery(db, SQL) ; SQL Befehl ausführen
SQL = "Insert into Adress (vorname, nachname) values ('Max' ,'Mustermann')"
DatabaseQuery(db, SQL) ; SQL Befehl ausführen
SQL = "Insert into Adress (vorname, nachname) values ('Erika', 'Mustermann')"
DatabaseQuery(db, SQL) ; SQL Befehl ausführen
Else
Debug DatabaseError()
EndIf
; SQL Befehl zum Auslesen von Daten der Tabelle
SQL = "Select * from Adress order by nachname asc;"
If DatabaseQuery(db, SQL) ; SQL Befehl ausführen
Debug "Daten in Tabelle 'Adress'" : Debug ""
While NextDatabaseRow(db) ; gelesene Daten aus der Datenbank durchlaufen
Debug Str(GetDatabaseLong(db, 0)) + ": " + GetDatabaseString(db, 1) + " " + GetDatabaseString(db, 2) ; gelesene Daten aus der Datenbank ausgeben
Wend
EndIf
CloseDatabase(db)
EndIf
; Tabellen lesen
If ExamineTables(dsn)
Debug "Tabellen in Database:"
Debug ""
While NextTable()
Debug GetTableName() + " <-- " + GetTableType()
Wend
Debug "" : Debug ""
EndIf
result = RemoveDSN(dbName); DSN wieder entfernen
If Result = 0
MessageRequester("SQLError", GetSQLInstallerError())
EndIf