Autor Beitrag
Bomania
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 139

Win XP

BeitragVerfasst: So 06.04.03 14:46 
Hallo,

ich versuche nun schon seit fast zwei Wochen unter Delphi mit ADO auf eine Access-Datenbank zuzugreifen. Trotz mehrerer Quellen, in denen das Verfahren mehr oder weniger verständlich erklärt wird, komme ich einfach auf keinen grünen Zweig. Was mit VB überhaupt kein Problem für mich war, lässt mich bei Delphi wie ein Ochs vorm Berg stehen.

Kann mir bitte bitte jemand eine kleine Hilfestellung (in Form von Quelltext) zur Verwendung von ADO geben??

Da gibt es die ADOConnection, ADODataset, ADOCommand, ADOQuery, ADOTable.... und ich habe immer noch keinen blassen Schimmer, was ich davon brauche. Das einzige was ich bisher hinbekommen habe, ist mittels ADOConnection die Datenbank zu öffnen. Doch wie kann ich nun Daten auslesen oder verändern? Ich habe ein Formular mit Textfeldern und Comboboxen - da rein sollen dann die Daten. Ich möchte kein Grid verwenden.

Ich komme mir ziemlich blöd vor, zumal ich ja wie erwähnt schon mit ADO unter VB programmiert habe. Ich wäre für eine kleine Anfängerhilfe echt dankbar.

Gruß,
Björn
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: So 06.04.03 15:26 
Bomania hat folgendes geschrieben:
ich versuche nun schon seit fast zwei Wochen unter Delphi mit ADO auf eine Access-Datenbank zuzugreifen.


muß das denn wirklich SADO sein :?: Wenn in zwei Wochen wirklich nichts rauskommt, vermute ich zumindest, wird es später nicht besser. Welche Anforderungen stellst Du denn an Dein Programm ? Access ist doch sowieso ziemlich out. Wird das überhaupt noch weiterentwickelt ?

_________________
Gruß
Hansa
Bomania Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 139

Win XP

BeitragVerfasst: So 06.04.03 15:46 
hansa hat folgendes geschrieben:
muß das denn wirklich SADO sein :?:

Kannst du mir denn noch ein anderes, vergleichsweise einfaches, kostenloses Datenbanksystem nennen? Momentan komm ich damit noch gut zurecht (abgesehen von der Verwendung unter Delphi)

hansa hat folgendes geschrieben:
Wenn in zwei Wochen wirklich nichts rauskommt, vermute ich zumindest, wird es später nicht besser.

Das ist wohl eher ein Trugschluss. Nur weil ich momentan keinen Anfang finde, heißt das ja noch lange nicht, dass daraus nichts werden kann. Ich arbeite ja noch nicht mit ADO ich versuche ja erst noch etwas über die Funktionsweise zu erfahren.

hansa hat folgendes geschrieben:
Welche Anforderungen stellst Du denn an Dein Programm?

Wenig. Ich möchte eine ganz einfach gestrickte Anwendung erstellen, die Daten aus einer Tabelle lesen und ändern bzw neue hinzufügen kann.

hansa hat folgendes geschrieben:
Access ist doch sowieso ziemlich out. Wird das überhaupt noch weiterentwickelt?

Ja
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: So 06.04.03 16:03 
Bomania hat folgendes geschrieben:
Kannst du mir denn noch ein anderes, vergleichsweise einfaches, kostenloses Datenbanksystem nennen? Momentan komm ich damit noch gut zurecht (abgesehen von der Verwendung unter Delphi)...

Dann nimm doch Interbase (bzw. kostenlose Variante Firebird). Um SQL kommst Du sowieso auf Dauer nicht drum rum. Ob das einfach ist ? hmmm, wie gesagt glaube ich, Du wärst schon weiter als mit ADO. Einarbeiten muß man sich sowieso in alles neue. Bei mir funktioniert das jedenfalls. Das ist jedoch eine größere Geschichte, nicht nur 5 Tables.

_________________
Gruß
Hansa
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: So 06.04.03 16:04 
Hallo,

das hört sich an als hättest du grundlegende Probleme mit dem Datenbankkonzept von Delphi.

Vieleicht hilft dir das weiter:
1. Stelle mit tADOConnection eine verbindung zur Datenbank her, so wie du es scheinbat schon getan hast.
2. Nun kannst du eine (oder mehrere) tADOTable oder ein tADOQuery mit der Connection verbinden. Je nachdem ob du mit oder ohne SQL arbeiten möchtest. Ich bevorzuge SQL. Du must bei dem Objekt lediglich bei der Eigenschschaft Connection auf den Namen der AdoConnection setzen.
3. Wenn du dich für das tTable Objekt enschieden hast, kannst du unter Table Name den Namen einer bereits existierenden Tabelle auswählen und dann Active auf TRUE setzen.
4. Um den Inhalt in eine beliebige Datenbankgebundene Komponente zu bekommen ziehst du nun aus der Komponentenpalette Datenzugriff ein tDataSource Objekt auf das Formular/Datenmodul. Bei diesen wählst du unter DataSet den Namen denes Table oder Query objektes. Die Datasoeurce dient nur als schnitstelle zwischen den sichtbaren und den Unsichtbaren Datenbankkomonenten.
5. Nun kanst du von der Palette Datensteuerung belibige Visuelle komponenten wählen. Bei diesen musst du unter DataSource den Namen des tDatasOurce Objektes wählen und wenn sie nur ein Feld darstellen kann auch noch einen Feldnamen unter Datafield eintragen. Wenn du alle Komponenten auf Active stehen hast, kannst du nun bereits Daten betrachten.
6. Wenn du aus irgendwelchen Gründen keine Datenbankgebundenen komponenten verwenden willst kannst du hier nachlesen wie du mit den Objekten arbeiten kannst. Das es hier um tTable und tQuery gearbeitet wird mach bei den beschrieben Funktionen keinen unterschied.

@hansa: Was hast du gegen ADO? Das ist genauso sinpel wie alle anderen (unterstützten) DBzugiffe unter Delphi. Access ist sicherlich nicht das pralle aber wenn es Bomania ausreicht ist das doch Ok.

Gruß
Klabautermann

PS: wenn du mit eine Beispieldatenbank mailst, dan bastele ich dir auch gerne eine Demo zusammen, da ich Access nur selten verwende habe ich es nicht installiert.
Bomania Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 139

Win XP

BeitragVerfasst: So 06.04.03 16:25 
Danke für die Hilfe. Ich habe jetzt also auf meinem Formular ein ADOConnection, ADOQuery und DataSource:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
adoconnection1.ConnectionString:='....';
adoquery1.SQL.Add('SELECT Titel FROM Mods');
datasource1.DataSet:=adoquery1;
txt_Titel.Text:= ??


Moderiert von user profile iconKlabautermann: Code- durch Delphi-Tags ersetzt.
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: So 06.04.03 17:20 
Hallo,

wenn du denn Connection String im Quelltext erstellst musst die Connection auch Aktivieren:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
adoconnection1.ConnectionString:='....';
adoconnection1.Connected := TRUE; // verbinding aufbauen
adoquery1.SQL.Add('SELECT Titel FROM Mods');
adoquery1.Open; // Das Query ausführen
datasource1.DataSet:=adoquery1; // Wenn hier z.B. ein DBGrid dranhängt weren die ergebnisse deines Querys sofort angezeigt.
txt_Titel.Text:= adoQuery1.FieldByName('Titel').AsString; // als Beispiel


Gruß
Klabautermann

Moderiert von user profile iconKlabautermann: Code- durch Delphi-Tags ersetzt.


Zuletzt bearbeitet von Klabautermann am So 17.07.05 01:18, insgesamt 1-mal bearbeitet
Bomania Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 139

Win XP

BeitragVerfasst: So 06.04.03 19:28 
Vielen Dank,

damit lässt sich endlich was anfangen :)
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 07.04.03 10:05 
Hallo,
Bomania hat folgendes geschrieben:
Vielen Dank,
damit lässt sich endlich was anfangen :)

bitte, bitte.
Das Delphi DB konzept fand ich anfangs auch recht verwirrend. Wenn man es aber ersteinmal begriffen hat, ist es unglaublich logisch und simpel. Daher lass dich nicht unterkriegen und wenn du noch 'ne Frage hast, weist du ja wo du sie posten kannst ;).

Gruß
Klabautermann