Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADO/ODBC (https://www.delphipraxis.net/68726-ado-odbc.html)

Macher 4. Mai 2006 08:33

Datenbank: verschiende • Zugriff über: ADO -> ODBC

ADO/ODBC
 
Hallo,

gibt es eine Möglichkeit den Datenbanktyp zuermitteln, also ob es sich z.B. um eine Orcale oder SQL Server Datenbank handelt. Ich greife per ADOConnection auf ein ODBC Filedsn welches die Logindaten enthält.

mkinzler 4. Mai 2006 08:35

Re: ADO/ODBC
 
In der dsn steht auch der zu verwendende Treiber drin.

[Edit: dsn war natürlich gemeint]

Macher 4. Mai 2006 08:39

Re: ADO/ODBC
 
Zitat:

Zitat von mkinzler
In der dnc steht auch der zu verwendende Treiber drin.

Das sollte die letzte Lösung sein die ich umsetzen wollte. Wäre gut wenn ich es direkt über die ADOConnection ermittlen könnte.

jensw_2000 4. Mai 2006 09:41

Re: ADO/ODBC
 
Nachdem die ADOConnection geöffnet ist, kannst du TAdoConnection.Provider auslesen.
Dieser Wert wird nach dem Öffnen der Connection automatisch aktualisiert.



Schöne Grüße,
Jens
:hi:

Macher 4. Mai 2006 09:57

Re: ADO/ODBC
 
Zitat:

Zitat von jensw_2000
Nachdem die ADOConnection geöffnet ist, kannst du TAdoConnection.Provider auslesen.
Dieser Wert wird nach dem Öffnen der Connection automatisch aktualisiert.



Schöne Grüße,
Jens
:hi:

Dadurch das ich über die ODBC, und nicht direkt auf die einzeln DBs zugreife bleibt der Provider immer gleich "MSDASQL.1" hmmm...

Bei der BDE, die ich Vorher benutzt hatte, konnte man mit der procedure "Check" den Typ ermitteln sowas ähnliches suche ich jetzt halt für ADO

shmia 4. Mai 2006 10:42

Re: ADO/ODBC
 
Zitat:

Zitat von Macher
Dadurch das ich über die ODBC, und nicht direkt auf die einzeln DBs zugreife bleibt der Provider immer gleich "MSDASQL.1" hmmm...

Es ist ein Fehler, den Umweg über ODBC zu nehmen, wenn ein OLE-DB Provider für die Datenbank zur Verfügung steht.
Gründe:
* durch die weitere ODBC-Schicht verliert man an Performance
* die weitere Schicht bedeutet höhere Resourcenbelastung
* die ODBC-Schicht veringert den internen Funktionsumfang, da ADO mehr bietet als man
sich zur Zeit als ODBC entwickelt wurde vorstellen konnte.

Macher 4. Mai 2006 10:50

Re: ADO/ODBC
 
Zitat:

Zitat von shmia
Zitat:

Zitat von Macher
Dadurch das ich über die ODBC, und nicht direkt auf die einzeln DBs zugreife bleibt der Provider immer gleich "MSDASQL.1" hmmm...

Es ist ein Fehler, den Umweg über ODBC zu nehmen, wenn ein OLE-DB Provider für die Datenbank zur Verfügung steht.
Gründe:
* durch die weitere ODBC-Schicht verliert man an Performance
* die weitere Schicht bedeutet höhere Resourcenbelastung
* die ODBC-Schicht veringert den internen Funktionsumfang, da ADO mehr bietet als man
sich zur Zeit als ODBC entwickelt wurde vorstellen konnte.

Stimmt schon, aber durch den "Umweg" bleibt das System offener. Ich kann schneller neue DB-Connections erstellen. :zwinker:

shmia 4. Mai 2006 11:10

Re: ADO/ODBC
 
Zitat:

Zitat von Macher
Stimmt schon, aber durch den "Umweg" bleibt das System offener. Ich kann schneller neue DB-Connections erstellen.

Nein, über UDL-Dateien bist du noch flexibler, als mit den System DSNs.
Du erzeugst dir einfach eine neue txt-Datei und benennst diese nach *.UDL um.
Mit dem Doppelklick darauf kannst du die Verbindung konfigurieren.
In deiner Anwendung setzt du dann den Connectionstring:
Delphi-Quellcode:
udlfilename := ChangefileExt(ParamStr(0), '.UDL'); // UDL heisst gleich wie deine Anwendung (nur ein Vorschlag)
ADOConnection1.Connectionstring := 'FILE NAME='+udlfilename;

Macher 4. Mai 2006 11:33

Re: ADO/ODBC
 
Zitat:

Zitat von shmia
Zitat:

Zitat von Macher
Stimmt schon, aber durch den "Umweg" bleibt das System offener. Ich kann schneller neue DB-Connections erstellen.

Nein, über UDL-Dateien bist du noch flexibler, als mit den System DSNs.
Du erzeugst dir einfach eine neue txt-Datei und benennst diese nach *.UDL um.
Mit dem Doppelklick darauf kannst du die Verbindung konfigurieren.
In deiner Anwendung setzt du dann den Connectionstring:
Delphi-Quellcode:
udlfilename := ChangefileExt(ParamStr(0), '.UDL'); // UDL heisst gleich wie deine Anwendung (nur ein Vorschlag)
ADOConnection1.Connectionstring := 'FILE NAME='+udlfilename;

cool, die Sache hat nur einen Hacken... Es werden nicht alle DB unterstützt, bzw. es gibt die Treiber nicht dafür. Es fehlt z.B. Firebird/Interbase. Außerdem bleibt immer noch das Problem mit dem erkennen des Datenbanktypes...

mikhal 4. Mai 2006 12:02

Re: ADO/ODBC
 
OLEDB Provider für Firebird:

ZStyleGroup: Shareware

IBProvider: gibt es auch als Freeware.

Grüße
Mikhal


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr.
Seite 1 von 2  1 2      

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