![]() |
Datenbank: MySQL • Version: 8 • Zugriff über: Delphi
ADOConnection
Moin zusammen,
ich "muss" mich aktuell nun anfangen mit Datenbanken auseinander zu setzen. Generell bekomme ich die Verbindung hin (Daten auslesen, hinzufügen, ändern und löschen geht auch), jedoch habe ich da ein Verständnis- Umsetzungsproblem. Jedoch habe ich im Vorfeld dafür eine ODBC-Datenquelle eingerichtet, welche ich per TADOConnection nutze. Wenn jemand diese Verbindung jedoch nicht eingerichtet hat, kann er das Programm nachher nicht nutzen, richtig!? Wie bekomme ich dies also ohne diese "voreingerichtete" Verbindung hin? Stehe da aktuell etwas auf dem Schlauch. Was ich habe ist: Servername : Port Benutzer Passwort Schema Tabelle |
AW: ADOConnection
Du kannst direkt mit ADO arbeiten und brauchst kein ODBC zu bauen.
Den Connectionstring kannst Du dann vorgeben (wenn Du sicher bist, wo die DB liegt) oder Du lässt den Anwender einen bauen. P.S.: ![]() |
AW: ADOConnection
Ich stimme jobo voll zu; falls es aber ODBC sein soll/muss, dann sind es letztendlich nur Einträge in der Registry.
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI HKEY_CURRENT_USER\Software\ODBC\ODBC.INI bzw. HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\ ODBC\ODBC.INI Dort solltest Du die ODBC Datasources finden. Diese kannst Du über ein Setup Programm auf den Clients erstellen lassen oder Du verteilst eine REG-Datei mit diesen ODBC-Einstellungen. Außerdem wirst Du wohl den mySQL Connector/ODBC Datenbanktreiber (ODBC) oder den OLEDB Provider MySQLProv (ADO) auf dem Client benötigen. Der kann ebenfalls über ein Setup verteilt werden oder muss halt manuell vor dem Einrichten der ODBC Datasource vorhanden sein. |
AW: ADOConnection
Als Ergänzung:
Im Grunde ist die ODBC Geschichte erstmal nur eine weitere Fehlerquelle. Du kannst auf 3 Level (Datei,User,System) Datenquellen definieren. Spätestens bei Systemdatenquellen ist das (auch) ein Rechteproblem. Dann hast Du das noch als 32 bit und 64bit, führt auch immer wieder zu Verwirrung. Wenn überhaupt würde ich erstmal zu Fuß eine Datei ODBC anlegen (außerhalb des Programms, ohne Code) und die einfach benutzen. Die gesparte Zeit kannst Du dann in die Datenbankprogrammierung stecken. Einen ADO Connectionstring kannst Du selbst festlegen wie Du magst und kommst auch an die DB. Auch das kannst Du dem User überlassen, indem du ein UDL File verwendest, das der User anlegen muss. Dazu gibt es hier sicher auch schon mehrere Beiträge. UDL Files anlegen: Explorer, Neu, Textdatei, umbenennen nach *.udl, Doppelklick auf die Datei startet einen Windows System Assistenen zur Abfrage der notwendigen Parameter (inkl. Verbindungstest). Die fertige Datei enthält den Connectionstring. |
AW: ADOConnection
Aber.....
Ein Aber gibt es immer.... ADO ist nicht nicht mehr State of the Art aber das galt vor 10 Jahren auch für ODBC! Heute ist es umgekehrt. Du solltest, falls möglich, beide Schnittstellen beachten und alle Datentypen durchtesten. Und da es für Datenbanken auch unterschiedliche Treiber (vom DB-Hersteller und von MS) gibt/geben kann solltest du das im Hinterkopf behalten. Im Zweifel mußt Du Deine Kunden mit den richtigen Treibern versorgen. Gruß K-H |
AW: ADOConnection
Moin...8-)
Zitat:
1. Warum MySQL? Einfach so? Lizenzfalle...schon mal gehört? 2. Warum ADO? Einfach so? 3. Privates Projekt? Commerzielles Projekt? 4. Datensensitive Componenten? = Bääääh. :zwinker: Zum Üben i.O., aber für das eigentliche Projekt besser andere Methode. 5. Normalisierung...schon mal gehört? 6. Admin Tool für deine Datenbankauswahl? |
AW: ADOConnection
Zitat:
1. Weil sie bereits existiert und nur (ab jetzt auch) von mir zugegriffen wird/bearbeitet wird. 2. Weil ich das bisher als einzige Verbindung via Delphi gefunden habe, nehme andere (bessere) Vorschläge gerne an. In diesem Bereich muss ich ja erstmal lernen! 3. nur Firmenintern 4. Auch hier nehme ich bessere Vorschläge gerne an :) 5. Generell ja, jedoch werde ich wohl nur "Werte in vorhandene Tabellen/Spalten ergänzen" 6. Workbench 8.0.16.0 Zitat:
Mal kurz zusammengefasst: Wir arbeiten bei einem Teil der Hardware mit einer Cloud. - check Um die Hardware in die Cloud zu melden, werden Daten der Geräte aufgenommen und daraus eine .csv erstellt. - check Nun soll als weiterer Schritt, diese Geräte in eine Datenbank eingepflegt werden, worüber sie an die Standorte etc. gebucht werden. - todo |
AW: ADOConnection
Du hast Delphi 10.3.
Es wird nur intern verwendet Nimmt die FireDac-Komponenten von Delphi. Da wärst du zwar in der GPL-Falle, ist aber für firmeninterne SW egal. |
AW: ADOConnection
Moin...8-)
Zitat:
|
AW: ADOConnection
Die Verbindung funktioniert mit FireDAC schon mal.
Große Danke dafür schon mal. Wenn ich jedoch den "gleichen" Code für das hinzufügen/entfernen/updaten des Datenbankeintrags verwende erhalte ich eine Fehlermeldung:
Code:
"[FireDAC][Phys][MySQL]-308. Anweisung, die keine Ergebnismengen zurückgibt, kann nicht geöffnet/definiert werden. Hinweis: Verwenden Sie die Methode "Execute/ExecSQL" für Nicht-SELECT-Anweisungen."
procedure DeleteClick(Sender: TObject);
var sQuery : string; begin sQuery := 'DELETE FROM ' + DBNAME + ' WHERE seriennummer = 0000000000000000'; FDQuery.SQL.Clear; FDQuery.SQL.Add(sQuery); FDQuery.SQL.Add('SELECT * FROM ' + DBNAME); FDQuery.Active := True; SetGridColumnWidths(DBGrid); end; Ich suche dafür aber vielleicht kann mir jemand schneller als ich finden kann einen Tipp/Link geben :) Edit: Habs hin bekommen, war einfacher als gedacht XD |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz