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