Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   ADO-Komponenten / Mit ADO-Komponenten arbeiten (https://www.delphipraxis.net/166135-ado-komponenten-mit-ado-komponenten-arbeiten.html)

OrgFreak 31. Jan 2012 18:01

Datenbank: BDE • Version: 7 • Zugriff über: ADO

ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Hallo zusammen

Kenne mich nicht aus mit ADO.
Kann mir jemand sagen wie man eine funktionierende Verbindung aufbaut ?

Aus früheren Recherchen hab ich folgende Info:

TADOConnection -> TADODataSet -> TDataSource -> TDBGrid

Aber ich weiss nicht welche Eigenschaften (der jeweiligen Komponente) ich dabei noch ändern muss, damit der Datenstream funktioniert.
Zugriff über ODBC-Treiber.

Danke für Eure hoffentlich weiterhelfenden Antworten.

Gruss

Furtbichler 1. Feb 2012 07:39

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
In der TADOConnection musst Du einen ConnectionString einrichten. Dort stellst Du die einzelnen Parameter ein und kannst die Verbindung gleich testen.

Dann erstellst Du im TADODataset eine Query oder stellst den CommandType aud cmdTable und wählst in Command eine Tabelle aus.

Dann TADODataset.Active auf true und fertig ist der Lack.

Bernhard Geyer 1. Feb 2012 08:02

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Und noch: BDE ist keine Datenbank. Es ist wie ADO eine Zugriffstechnologie.

Um welches DBMS handelt es sich denn?

OrgFreak 6. Feb 2012 17:31

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Liste der Anhänge anzeigen (Anzahl: 1)
An Furtbichler:

Danke fuer die Tips.
Leider funktioniert mein ADO-Datenstream noch nicht.
Hab den ConnectionString eingerichtet. Dann die Verbindung getestet. Antwort war: Verbindung erfolgreich hergestellt.
In TADODataSet hab ich den CommandType auf cmdTable gestellt.
Aber ich weiss nicht, wo ich im Objektinspector (von TADODataSet) Command finde, um eine Table auswählen zu können.

Komme nicht weiter.

Gruss

OrgFreak

Perlsau 6. Feb 2012 20:00

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Zitat:

Zitat von OrgFreak (Beitrag 1149514)
An Furtbichler:

Danke fuer die Tips.
Leider funktioniert mein ADO-Datenstream noch nicht.
Hab den ConnectionString eingerichtet. Dann die Verbindung getestet. Antwort war: Verbindung erfolgreich hergestellt.
In TADODataSet hab ich den CommandType auf cmdTable gestellt.
Aber ich weiss nicht, wo ich im Objektinspector (von TADODataSet) Command finde, um eine Table auswählen zu können.

Komme nicht weiter.

Es wurde bereits die Frage laut, auf welches Datenbank-System zu zugreifen möchtest. Je nach Antwort sind andere Einstellungen notwendig.

Die von dir angezeigte Grafik trägt in keiner Weise dazu bei, dein Problem zu erkennen, denn schließlich kann man beim reinen Ziehen einer Komponente auf ein Form so gut wie keine Fehler machen – ich wüßte zumindest keinen.

OrgFreak 6. Feb 2012 21:21

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
An Alle

Hab ODBC-Datenquelle definiert. MS-Paradox - Treiber.
Hab Paradox-Datenbanken.

Gruss

OrgFreak

Perlsau 6. Feb 2012 21:26

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Zitat:

Zitat von OrgFreak (Beitrag 1149544)
Hab ODBC-Datenquelle definiert. MS-Paradox - Treiber.
Hab Paradox-Datenbanken.

Jetzt wissen wir schon mal etwas mehr. Hilfreich wäre auch, was du genau versucht hast, um deine Datenbank zu konnektieren und welche Fehlermeldung erschienen ist.

Kleiner Tip: Die Glaskugeln der Forenteilnehmer sind meist außer Betrieb ... :stupid:

OrgFreak 6. Feb 2012 21:33

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Danke für die schnelle Antwort.

Wollte eine Paradox-Datenbank anzapfen und mit DBGrid anzeigen. Aber mit ADO-Komponenten, nicht mit der BDE.
Der Connection - String lautete: Provider=MSDASQL.1;Persist Security Info=False;Data Source=Holzart

Holzart ist der ODBC-Treiber, den ich definiert habe in der Systemsteuerung (Benutzer DNS, Paradox-Treiber).

Vielleicht hilft das weiter

Gruss

OrgFreak

Perlsau 6. Feb 2012 21:50

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Zitat:

Zitat von OrgFreak (Beitrag 1149546)
Danke für die schnelle Antwort.

Wenn ich Zeit habe immer ...

Zitat:

Zitat von OrgFreak (Beitrag 1149546)
Wollte eine Paradox-Datenbank anzapfen und mit DBGrid anzeigen. Aber mit ADO-Komponenten, nicht mit der BDE.

Das wußte ich bereits.

Zitat:

Zitat von OrgFreak (Beitrag 1149546)
Der Connection - String lautete: Provider=MSDASQL.1;Persist Security Info=False;Data Source=Holzart

Und wo steht im Connection-String der Datenbank-Name?

Zitat:

Zitat von OrgFreak (Beitrag 1149546)
Holzart ist der ODBC-Treiber, den ich definiert habe in der Systemsteuerung (Benutzer DNS, Paradox-Treiber).

Wie hast du diesen Treiber definiert? In meiner Systemsteuerung gibt es weder unter Benutzer einen Punkt DNS noch ein Icon, das Benutzer DNS heißt.

Kann es sein, daß deine Datenbank Holzbank heißt?

Zitat:

Zitat von OrgFreak (Beitrag 1149546)
Vielleicht hilft das weiter

Nicht wirklich ...

OrgFreak 6. Feb 2012 21:59

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ja, die Datenbank heisst Holzart. Und es ist eine Paradox-DB.
Aber ich hab den Treiber in der Systemsteuerung definieren müssen.
Beigefügt: Kurzer Screenshot der Einstellungen.

Gruss

OrgFreak

Perlsau 6. Feb 2012 22:06

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Zitat:

Zitat von OrgFreak (Beitrag 1149552)
Ja, die Datenbank heisst Holzart. Und es ist eine Paradox-DB.
Aber ich hab den Treiber in der Systemsteuerung definieren müssen.
Beigefügt: Kurzer Screenshot der Einstellungen.

Da weiß ich jetzt auch nicht weiter, hab niemals mit der BDE gearbeitet, weil hoffnungslos veraltet. Vielleicht hilft dir das weiter:

http://www.delphipraxis.net/43267-ad...radox-7-a.html
http://www.delphipraxis.net/121399-p...o-oeffnen.html
http://entwickler-forum.de/showthread.php?t=12183

Ansonsten einfach mal selber googeln, das Problem wurde schon häufiger angefragt und offensichtlich gelöst:
http://www.google.de/search?num=100&...1277l17.1l18l0

OrgFreak 6. Feb 2012 22:19

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Ja das hab ich schon öfters gehört, dass die BDE veraltet ist.
Nebenbei: Kann mir jemand sagen, wie ich eine bestehende Paradox 7 - Datenbank mit Datensätzen in eine andere transferieren kann, "ohne Verluste" ? Und welche Datenbank ist zu empfehlen, wenn nicht Paradox ?
Die Datenbank müsste aber mit Turbo-Delphi funktionieren.

Liegt es vielleicht daran, dass nur Paradox 5.0 - Treiber da ist (in der ODBC-Systemsteuerung) ?
Es gibt eine BDE für Windows 7. Kann man herunterladen.

Gruss

OrgFreak

p80286 7. Feb 2012 10:32

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Datenbanken gibt's wie Sand am Meer, fall's es nichts kosten darf/soll Interbase / Firebird wäre nicht schlecht oder eine "Personal-Edition" von MS-SQL oder Oracle.
Aber da scheiden sich schon die Geister.

Zu Deinem Problem:
Du hast den CommandType auf cmdTable gesetzt. (Du wirst schon wissen warum) Ich wäre bei unknown oder Text geblieben.
Hast Du einmal versucht die DB über CommandText anzusprechen?

Gruß
K-H

Sybok Factor 7. Feb 2012 12:59

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Zitat:

Zitat von p80286 (Beitrag 1149618)
Zu Deinem Problem:
Du hast den CommandType auf cmdTable gesetzt. (Du wirst schon wissen warum) Ich wäre bei unknown oder Text geblieben.
Gruß
K-H

Warum nicht? Dann verhält sich die TAdoDataSet wie eine TTable Komponente. Bei Text muss OrgFreak ein entsprechendes SQL Statement absetzen. Da meines Wissens nach über ADO sowieso nur ein lesender Zugriff auf Paradox DB möglich ist, dürfte das egal sein.

CommandText ist die richtige Stelle, um die Tabelle auszuwählen. In Connection musst du die AdoConnection mit den Verbindungsdaten eintragen.

Prinzipiell würde ich etwas in der Form einbauen:

Delphi-Quellcode:
procedure OpenDatasets;
begin
  if not AdoConncetion1.Connected then AdoConnection1.Open;
  if not AdoDataSet1.Active then AdoDataSet1.Open;
end;
Wenn also AdoDataSet1 als DataSet in deiner DataSource eingetragen hast, dürfte damit auch eine Anzeige da sein.

Viele Grüße
Sybok Factor

p80286 7. Feb 2012 13:31

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Zitat:

Zitat von Sybok Factor (Beitrag 1149649)

CommandText ist die richtige Stelle, um die Tabelle auszuwählen. In Connection musst du die AdoConnection mit den Verbindungsdaten eintragen.

Darauf wollte ich hinaus, mit cmdText hast Du die Möglichkeit dir alles zusammen zu klicken, mit anderen Worten, es steht zur Verfügung was zur Verfügung steht.

Gruß
K-H

shmia 7. Feb 2012 13:41

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Mit meinem ADO Database Explorer kannst du alle möglichen Datenbanken öffnen für die es einen OLE/DB oder ODBC-Treiber gibt.
Das Programm ist mit Delphi5 + ADO Komponenten programmiert; wenn's also damit geht, kriegst du es auch mit Delphi hin.

OrgFreak 7. Feb 2012 19:13

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Hallo zusammen

Also erst mal vielen Dank für Eure Antworten.

Folgende Aenderungen:

1) Du hast den CommandType auf cmdTable gesetzt. (Du wirst schon wissen warum) Ich wäre bei unknown oder
Text geblieben.

---> Hab ich geändert (auf Text).

2) Warum nicht? Dann verhält sich die TAdoDataSet wie eine TTable Komponente. Bei Text muss OrgFreak ein
entsprechendes SQL Statement absetzen. Da meines Wissens nach über ADO sowieso nur ein lesender Zugriff auf
Paradox DB möglich ist, dürfte das egal sein.

----> Was für ein SQL-Statement ? Ich hab keine Ahnung.



3) "CommandText ist die richtige Stelle, um die Tabelle auszuwählen. In Connection musst du die AdoConnection
mit den Verbindungsdaten eintragen.

-----> Was muss ich da (In AdoDataset/CommandText oder ?) eintragen ?

4) Prinzipiell würde ich etwas in der Form einbauen:

Delphi-Quellcode:
procedure OpenDatasets;
begin
if not AdoConncetion1.Connected then AdoConnection1.Open;
if not AdoDataSet1.Active then AdoDataSet1.Open;
end;
Wenn also AdoDataSet1 als DataSet in deiner DataSource eingetragen hast, dürfte damit auch eine Anzeige da sein.
(Ist OK, hab in Datasource AdoDataSet1 eingetragen, ist aber keine Anzeige da)

Ich hab die Procedure ausprobiert, aber ohne Erfolg.
Kommt ein Database-Login - Fenster: Database-Connection (Database: AdoConnection1, Username: / Password:)

Muss ich da einloggen ?

Hab keine Ahnung. Eigentlich nicht, denn ich hab ja keine Log-Daten. Die Datenbank sollte doch einfach anders anzusprechen sein oder ?


Gruss

OrgFreak

Perlsau 7. Feb 2012 22:37

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Zitat:

Zitat von OrgFreak (Beitrag 1149706)
Kommt ein Database-Login - Fenster: Database-Connection (Database: AdoConnection1, Username: / Password: Muss ich da einloggen ? Hab keine Ahnung. Eigentlich nicht, denn ich hab ja keine Log-Daten. Die Datenbank sollte doch einfach anders anzusprechen sein oder ?

Schau dir doch mal den Objektinspektor an, dort gibt es ein Property namens LoginPromt.

OrgFreak 8. Feb 2012 00:20

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo

Hab LoginPrompt auf false gesetzt.
Nun funktioniert es jetzt teilweise.
Kommt noch eine Fehlermeldung: SQL-Anweisung in CommandText fehlt.

Was muss ich da eingeben ? Ich möchte ja nicht nur Datensätze mit Select filtern, sondern auf alle Felder zugreifen können mittels DBGrid oder anderen Datenbank-Komponenten.

Zur Illustration : Bild des Anweisungseditor

Gruss

OrgFreak

Perlsau 8. Feb 2012 00:22

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Zitat:

Zitat von OrgFreak (Beitrag 1149785)
Kommt noch eine Fehlermeldung: SQL-Anweisung in CommandText fehlt. Was muss ich da eingeben?

Empfehlung: SQL lernen

Furtbichler 8. Feb 2012 06:10

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Alternative Empfehlung #1: Auf die drei Punkte der Property 'CommandText' klicken und ein SELECT zusammenstellen.
Alternative Empfehlung #2: CommandType auf cmdTable setzen und eine Tabelle aus der Combobox in der Property 'CommandText' auswählen.

@Persau's Empfehlung ist aber nachhaltiger.

OrgFreak 8. Feb 2012 06:31

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen

Hab den CommandType auf cmdTable gesetzt und dann im Feld CommandText die entsprechende Tabelle auswählen können
und mit einer Datenbankkomponente verbunden (dbGrid).

Hat nun alles geklappt. Damit ist der Stream aufgebaut, ohne Fehlermeldungen.
Problem damit gelöst.
Habt alle Dank, die mir geschrieben haben.

Gruss

OrgFreak

OrgFreak 8. Feb 2012 16:50

AW: ADO-Komponenten / Mit ADO-Komponenten arbeiten
 
Betreffend Umstieg auf eine andere Datenbank:

Hab nun Firebird 2.5.1 angeschaut und werde mich nun damit auseinandersetzen.
Weiss jemand Bescheid, wie man die installiert ? Hab den ODBC-Treiber noch zusätzlich heruntergeladen.
Braucht es noch zusätzliche Komponenten/Programme, um mit Turbo-Delphi die Datenbank zu benützen ? (Windows 7)

Gruss

OrgFreak


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz