Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADOConnection manuell einrichten (https://www.delphipraxis.net/61529-adoconnection-manuell-einrichten.html)

Avax2k 22. Jan 2006 16:48

Datenbank: ACCESS • Version: 2003 • Zugriff über: ADO

ADOConnection manuell einrichten
 
hallo ich hoffe ich werde nicht gleich ausgelacht oder verspottet...

eine Globale AdoConnection so einrichten
Delphi-Quellcode:
AdoConnection.Close;
AdoConnection.Provider := 'Microsoft.Jet.OLEDB.4.0'
AdoConnection.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+extractfilepath(application.exename)+'Datenbank.mdb';
AdoConnection.Connected := TRUE;
AdoConnection.Open;
....

//dann alle DataSets oder Queries auf enabled setzen
AdoDataset1.Active := TRUE;
...
wenn niemandem damit geholfen wird kann der Beitrag auch gelöscht werden

Bernhard Geyer 23. Jan 2006 21:22

Re: ADOConnection manuell einrichten
 
Ist bei Delphi-Source algemeiner Beschrieben.

Fritz01 14. Aug 2006 20:17

Re: ADOConnection manuell einrichten
 
Hallo Avax2k,
seit einiger Zeit kämpfe ich mit ADO.
Problem: Verbindung dbf Datenbank --> TDBLookuplistbox mit AdoConnection, AdoTable und DataSource.
Die daten werden währen der Entwicklung angezeigt, beim compilieren gibt es folgende Fehlermeldung:
Zitat:

'[Microsoft][ODBC dBase Driver] unerwarteter Fehler von einem extenen Datenbanktreiber (15877)'
Was mache ich da falsch beim ConnectionString?
Fritz01

Bernhard Geyer 14. Aug 2006 21:37

Re: ADOConnection manuell einrichten
 
Zitat:

Zitat von Fritz01
Hallo Avax2k,
seit einiger Zeit kämpfe ich mit ADO.
Problem: Verbindung dbf Datenbank --> TDBLookuplistbox mit AdoConnection, AdoTable und DataSource.
Die daten werden währen der Entwicklung angezeigt, beim compilieren gibt es folgende Fehlermeldung:
Zitat:

'[Microsoft][ODBC dBase Driver] unerwarteter Fehler von einem extenen Datenbanktreiber (15877)'
Was mache ich da falsch beim ConnectionString?
Fritz01

Au ja. Raderunde: Ich tippe auf die Zeichen 15-28.


Wie wäre es mit etwas Code?

Fritz01 15. Aug 2006 15:34

Re: ADOConnection manuell einrichten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
Zitat:

Wie wäre es mit etwas Code?
Da ist mein bisheriger 'Erfolg' im Anhang. Nun ist aber folgendes die oben genannte Fehlermeldung tritt während des compilierenes auf. Clicke ich die mit OK weg, arbeitet der Compiler weiter und die .exe wird ohne Daten angezeigt und auch gespeichert.
Ohne Delphi kann ich die .exe starten und es ist alles OK auch mit den Daten in der Listbox.
Woher kommt der Fehler oder ist das sogar normal?
2. Problem. Was ist mit Index? In der AdoTable -> Eigenschaften ist nichts zu sehen. Trage ich dort einen Index ein erscheint die Meldung:
"Der aktuelle Provider unterstützt nicht die die erforderliche Schnittstelle für die Indexfunktion."
Da weiß ich wirklich nicht mehr weiter, zumal für dBase-Tabellen wohl nur der Micrsoft OLE DB Provider für ODBC Drivers vorhanden ist.
Was ist zu tun?
Fritz01

Bernhard Geyer 15. Aug 2006 16:04

Re: ADOConnection manuell einrichten
 
Zitat:

Zitat von Fritz01
2. Problem. Was ist mit Index? In der AdoTable -> Eigenschaften ist nichts zu sehen. Trage ich dort einen Index ein erscheint die Meldung:
"Der aktuelle Provider unterstützt nicht die die erforderliche Schnittstelle für die Indexfunktion."

Wieso wird immer versucht BDE-Unzulänglichkeiten auf andere Datenbanken zu übertragen. Index-Property und ähnliches kannst du bei Zugriff über ADO (oder jede andere Nicht-BDE-Schnittstelle) vergessen. Das macht der Treiber schon von alleine.

Zitat:

Zitat von Fritz01
zumal für dBase-Tabellen wohl nur der Micrsoft OLE DB Provider für ODBC Drivers vorhanden ist.

Die MS Jet-Engine (Access) kann mit dBase-Tabellen umgehen. Wenn du im Entwickler-Forum nach "Kosch Jet dbase" suchst solltest Du einige Tipps finden.

ipworks 16. Aug 2006 18:50

Re: ADOConnection manuell einrichten
 
Zum Einbinden einer oder mehrerer dBase-Tabellen kann man auch so vorgehen.

Ihr müsst für ODBC mit dbase eine eigene DSN anlegen.
- Starten Sie die ODBC-Verwaltung
- Wählen Sie SYSTEM-DSN
- Wählen Sie HINZUFÜGEN
- Wählen Sie als Treiber MICROSOFT DRIVER dBASE (*.dbf) (oder ähnlich, ich habe hier spanisch: da heisst das DRIVER DO MICROSOFT dBASE (*.dbf)
- Geben Sie einen DATENQUELLENNAMEN an; z.B. "dbasetest"
- Wählen Sie "AKTUELLES VERZEICHNIS" ab (!) und geben Sie das entsprechende Verzeichnis, in dem sich *.dbf, *.mdx etc. befinden, an und wählen Sie den Index (INDIZIES WÄHLEN)
- Per OK abschließen.

Nun in Delphi
Darauf achten, dass TDatasource und TADOTable mit den TADOConnection verbunden sind.
Die TADOConnection können Sie über den Dialog von ADOConnection.ConnectionString wählen. Für das obige Beispiel lautet der ConnectionString "
Delphi-Quellcode:
Provider=MSDASQL.1;Persist Security Info=False;Data Source=dbasetest
". Es muss der Microsoft-ODBC-Treiber gewählt werden.

Wenn zur Laufzeit der ConnectionString bearbeitet werden soll, lautet der Befehl:
Delphi-Quellcode:
EditConnectionString(TADOConnection)
aber es muss die Unit "AdoConEdAdv" im uses-Abschnitt eingebunden werden.

Fritz01 17. Aug 2006 19:45

Re: ADOConnection manuell einrichten
 
Hallo ipworks,

DANKE, eine Antwort, eine Hilfe mit der man was anfangen kann.
Keine dummen Sprüche wie:
Zitat:

Au ja. Raderunde: Ich tippe auf die Zeichen 15-28
sondern eine richtige Hilfe und nochmal danke
Fritz01

Bernhard Geyer 18. Aug 2006 06:37

Re: ADOConnection manuell einrichten
 
Zitat:

Zitat von Fritz01
Hallo ipworks,

DANKE, eine Antwort, eine Hilfe mit der man was anfangen kann.
Keine dummen Sprüche wie:
Zitat:

Au ja. Raderunde: Ich tippe auf die Zeichen 15-28
sondern eine richtige Hilfe und nochmal danke
Fritz01

Ok. Das nächste mal werde ich mich meine Zeit für etwas anderes "Verschwenden" wenn ich hier wieder Fragen von dir sehe wo du zu wenig Infos lieferst um eine genau Antwort zu geben. Ich habe nämlich keine Lust bei zu wenig Infos zu einem Fehler alle Möglichkeiten jedesmal aufzuzählen.

Ach ja nochwas: Schon mal davon gehört das man bei einer neuen Frage/Problem einen neuen Thread öffnen sollte :gruebel:
Dein Post hat nämlich sehr wenig mit dem Beispiel von Avax2k zu tun.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:54 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