VB 2005, ADO, OLDEDB, ADOX und Dataset

mydani

Grünschnabel
Hallo!
Ich entwickle derzeit mit VB Express 2k5 eine Anwendung. Diese Anwendung soll Daten erfassen und in einer Datei speichern. Ein User kann mehrere Datenbasen (Dateien) benutzen (nicht gleichzeitig aber nacheinander).

Als erstes dachte ich ich könnte mit SQL Express 2005 solche Dateidatenbanken erstellen - geht auch gut mit dem Designer. Was ich nicht wusste ist, dass der Anwender SQL Express installieren und eine Instanz laufen lassen muss. Dies geht meinem Design ziemlich gegen den Strich weil viele Anwender nicht gewollt sind neben .NET 2.0 etwas zusätzliches zu installieren.

Ich hab mir zusätzlich noch SQL Everywhere angeschaut, allerdings weder die Bibliotheken in meinem (standard) .NET Namespace gefunden noch bin ich mir sicher dass diese Methode die richtige ist.

Also bleib ich bei (altbewährt) JET und OLE DB in Verbindung mit ADO. Super sache - nur Visual Studio liefert nichts mit um Access Datenbanken erstellen zu können. Mit Office gings dann und Visual Studio hat (Gott sei Dank) sogar automatisch ein passendes DataSet erstellt. Nennen wir das DataSet mal DataSetA.

Wenn ich jetzt mit ADOX (2.8) eine neue Datenbank anlegen will (wir erinnern uns, ein User will mehrere Datenbasen haben können) gehe ich wie folgt vor:

Code:

Code:
Dim oCat As ADOX.Catalog
Dim sConn As String

sConn = "***"

oCat = New ADOX.Catalog
oCat.Create(sConn)
 
Dim table as DatasetA.TableOne ' TableOne ist eine Tabelle des DatasetA

oCat.Tables.Append(table)


Natürlich funktioniert das nicht (warum auch aufs erste Mal?)... oCat.Tables.Append verlangt den Typ ADOXTable! Jetzt bitte helft mir die Kurve zu bekommen. Es muss doch dank ADO, ADOX und OLEDB + Dataset eine einfache Möglichkeit geben eine Datenbank auf Basis eines Dataset zu erstellen? Oder muss ich erst das MDB, dann das DataSet und dann auch noch die Routine zur Erstellung anpassen?

Danke!

Gruß,
Daniel

PS: Falls jemand einen anderen Ansatz als OLEDB hat - der mir wegen schludrigen Lesens entgangen ist - bin ich sehr dankbar!
 

Norbert Eder

Erfahrenes Mitglied
Bevor ich zur Lösung deines Problemes betragen werde: Du hast deine Post im falschen Forum erstellt. Deine Frage behandelt Visual Basic 2005, dem .NET zugrunde liegt. Daher derartige Fragen bitte in den .NET Bereich einstellen. Danke.

Zu deinem Problem:
Welche Daten sollen denn gespeichert werden? Und wieviele Daten? Eventuell bietet es sich an, diese überhaupt in eine/oder mehrere XML-Dateien zu schreiben, womit die Datenbank als solches hinfällig wird. Vielleicht kannst du bezüglich des Verwendungszweckes nähere Angaben machen.
 

mydani

Grünschnabel
Hallo!
Bei den Daten handelt sich um Transaktionen finanzieller Natur. Diese werden je nach Kategorie ausgewertet und grafisch dargestellt. Du meinst XML + Dataset? Hmm...

Zwei Haken könnte die Sache haben. 1. die Datenbasis sollte durch ein Passwort geschützt werden können und 2. zu jeder Transaktion werden binäre Daten (Bilder) abgelegt.

Denkst du dass dies möglich und einigermaßen performant ist?

Desweiteren wäre es natürlich interessant zu wissen welche Filter schneller sind - die des Datasets oder die von OLE DB.

Gruß,
Daniel
 

Norbert Eder

Erfahrenes Mitglied
Eine offene Frage gibt es noch: Um wieviele Datensätze handelt es sich hierbei? Wieviele fallen in welchem Zeitraum an, müssen die Daten gespeichert bleiben? Greifen mehrere Personen auf die gleiche Datenquelle zu?
 

mydani

Grünschnabel
Die Anzahl der Datensätze sollte recht gering sein - sagen wir 1000 Datensätze pro Jahr. Die Datenquelle wird nur von einer Person gleichzeitig benutzt. Ein Datensatz enthält wenig Text und wie schon gesagt ein paar Blobs, maximal 1MB.