![]() |
ODBC zu Access via Batch-Datei erstellen
Hallo Zusammen,
ich benötige für meine Software eine ODBC-Verbindung zu einer AccessDB. Da ich aber nicht bei jedem Benutzer das von Hand einrichten möchte, wöchte ich, dass meine Software beim Start prüft, ob die Verbindung bereits besteht. Und das ist die erste Frage: Wie kann ich prüfen, ob die ODBC-Verbindung Oberflaechen1 schon exitsiert? Wenn sie nicht existiert, dann möchte ich eine Batch-Datei ausführen lassen, welche die ODBC-Verbindung anlegt. Und das ist die zweite Frage: Ich habe die Batch-Datei wie folgt aufgebaut:
Delphi-Quellcode:
Ich bekomme bei der letzten Zeile einen Fehler angezeigt. Kann mir jemand erklären warum. Ich begebe mich gerade auf Neuland...
@echo off
reg add HKCU\SOFTWARE\ODBC\ODBC.INI\Oberflaechen1 /v DBQ /t REG_SZ /d "H:\Oberflächen\Oberflächenschlüssel.mdb" /f reg add HKCU\SOFTWARE\ODBC\ODBC.INI\Oberflaechen1 /v Description /t REG_SZ /d "Oberflächenschlüssel AL" /f reg add HKCU\SOFTWARE\ODBC\ODBC.INI\Oberflaechen1 /v Driver /t REG_SZ /d "C:\WINDOWS\system32\odbcjt32.dll" /f reg add HKCU\SOFTWARE\ODBC\ODBC.INI\Oberflaechen1 /v FIL /t REG_SZ /d "MS Access" /f reg add HKCU\SOFTWARE\ODBC\ODBC.INI\Oberflaechen1 /v PWD /t REG_SZ /d "" /f reg add HKCU\SOFTWARE\ODBC\ODBC.INI\Oberflaechen1 /v UID /t REG_SZ /d "" /f reg add HKCU\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources /v Oberflaechen1 /t REG_SZ /d "Microsoft Access Driver (*.mdb)" /f Vielen Dank Patrick |
AW: ODBC zu Access via Batch-Datei erstellen
Zu Deiner ersten Frage:
Schau doch in der Registry nach Zu Deiner zweiten Frage: überprüf einmal die Anzahl der " in der letzten Zeile. Sind auch die entsporechenden "ODBC Data Sources" eingetragen? Gruß K-H |
AW: ODBC zu Access via Batch-Datei erstellen
Hallo,
vielen Dank für die Antwort. Zu 1) Ich möchte gerne, dass mein Programm ich der Registry nachsieht, habe aber keine Idee, wie ich das anstellen muss. Zu 2) Genau bei diesem Eintrag macht er Probleme. Daher lautet die Antwort NEIN! Aber ich weiß auch leider nicht, wie ich den Eintrag in die "ODBC Data Sources" hinbekomme. Die Anzahl der " sollte stimmen... Vielen Dank Patrick |
AW: ODBC zu Access via Batch-Datei erstellen
evtl.
reg add HKCU\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources /v Oberflaechen1 /t REG_SZ /d "Microsoft Access Driver (*.mdb)" /f ändern in reg add "HKCU\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources" /v Oberflaechen1 /t REG_SZ /d "Microsoft Access Driver (*.mdb)" /f |
AW: ODBC zu Access via Batch-Datei erstellen
Mit der Klasse TRegistry kann du sowohl nachsehen was überhaupt schon in der Registry steht als auch deine eigenen Einträge erstellen.
Das Arbeiten mit Batch-Datei halte ich hier für zu fehleranfällig. Besser ist es natürlich gleich die dafür vorgesehene ![]() |
AW: ODBC zu Access via Batch-Datei erstellen
Wenn du ADO-Komponenten verwenden würdest, dann bräuchtest du keine ODBC-Verbindung und könntest dir die Änderungen in der Registry sparen.
Wie wär's damit? |
AW: ODBC zu Access via Batch-Datei erstellen
Zitat:
|
AW: ODBC zu Access via Batch-Datei erstellen
Zitat:
![]() |
AW: ODBC zu Access via Batch-Datei erstellen
Ich wünschte mir auch, ich hätte nicht die Starter... Schmecken tut mir diese Vorgehensweise auch nicht, schon weil ich mich mit der Regitry noch nie beschäftigt habe...
Mit der Batch-Datei bekomme ich es leider auch nicht hin. Er legt zwar nach dem Änderungsvorschlag von baumina alles an, erzählt mir aber dann, dass er die Driver Datei (C:\Windows\system32\odbcjt.dll) nicht finden kann. Ich habe es jetzt mit er veränderten *.reg Datei gelöst. Jetzt komme ich aber bei der Überprüfung, ob die ODBC-Schnittstelle vorhanden ist, nicht weiter. Kann mir da einer einen Schups geben? Ich bin dem Link von Bernhard Geyer gefolgt, habe aber noch keine Lösung damit gefunden - tue mich damit etwas schwer. Vielen Dank Patrick |
AW: ODBC zu Access via Batch-Datei erstellen
Zitat:
|
AW: ODBC zu Access via Batch-Datei erstellen
Liste der Anhänge anzeigen (Anzahl: 3)
Sorry, das war ein Flüchtigkeitsfehler meinerseits... Habe es in der Batchdatei richtig gemacht.
Ich habe ebenfalls dann festgestellt, dass die in dem Verzeichnis SysWOW64 liegt und den Pfad geändert. Leider hat mich das nicht weitergebracht. Was ich nicht verstehe: Ich hatte die ODBC Schnittstelle manuel angelegt, und dann trägt er system32 ein - und es klappt... Meine Batch-Datei fürhre ich auf dem gleichen System aus... Kannst Du mir noch bei der Überprüfung helfen? Vielen Dank Patrick |
AW: ODBC zu Access via Batch-Datei erstellen
Ok, habe gerade heraugefunden, dass es nicht an der Treiber-Datei liegt, sondern an den Äs und Üs in dem Dateipfad für die Datenbank. Ich habe den Name nicht vergeben und kann ihn auch leider nicht ändern. Wie kann ich die Batchdatei dazu bringen, dass sie Äs und Üs richtig darstellt?
Vielen Dank Patrick |
AW: ODBC zu Access via Batch-Datei erstellen
Zitat:
![]() |
AW: ODBC zu Access via Batch-Datei erstellen
PRIMA, jetzt funktioniert die Batch-Datei.
Bleibt nur noch das Thema mit der Überprüfung, mit dem ich leider alleine nicht zurechtkomme. Kann ich hierbei auf Hilfe hoffen? Vielen Dank Patrick |
AW: ODBC zu Access via Batch-Datei erstellen
Was willst Du Prüfen?
Wenn du auf Batch-Dateien stehst, dann arbeite doch mit "reg Compare". ansonsten könnte Auch Dein Delphiprogramm dies leisten (TRegistry). Beispele müßten hier eigentlich en Masse zu finden sein. Die einfachste Methode is natürlich vor jedem Programmstart, die ODBC-Schnittstelle neu einzurichten,denn dann bist Du sicher, daß das System immer Deinen Ansprüchen genügt. (ich würde Dein Programm dann allerdings ganz schnell von allen erreichbaren Rechnern entfernen. Freundlich wäre es den Benutzer den Schnittstellennamen auswählen zu lassen und diesen dann zu nutzen) Gruß K-H |
AW: ODBC zu Access via Batch-Datei erstellen
Hallo,
ich möchte gucken, ob die ODBC-Schnittstelle schon vorhanden ist, oder nicht. Das mit dem Auswählen mache ich besser nicht. Das Programm wird nur intern benutzt und würde den ein oder anderen User leider überfordern... ABer ich habe zwei Datenbankparameter, auf denen ich bei Änderung der Datenbank die Änderung im Programm vornehmen kann. Das Programm soll erst in 1-2 Wochen eingeführt werden, d.h. bis jetzt ist es noch auf keinem Rechner drauf. Das mit der TRegistry muss ich mal gucken. Habe ich bislang noch nie mit gearbeitet... Am liebsten würde ich die ODBC-Schnittstelle nicht bei jedem Start neu erstellen, sondern nur wenn sie nicht vorhanden oder nicht funktioniert... Gruß Patrick |
AW: ODBC zu Access via Batch-Datei erstellen
Hallo Zusammen,
ich will nur noch schnell meinen gewählten Lösungsansatz mitteilen: Ich habe die Abfrage, welche auf die ODBC-Verbindung angewiesen ist einfach in ein Try - Except gesetzt. Geht etwas schief, dann wird in dem Except-Teil die ODBC-Schnittstelle via Batch-Datei angelegt/Repariert und es wird eine erneute Abfrage versucht. Wenn die auch schiefgeht, dann kommt eine MessageBox mit einem Hinweis. Das war jetzt aus meiner Sicht der einfachste Weg, um das Thema sicher zu machen. Vielen Dank für die Unterstützung - Ihr habe mir mal wieder toll weitergeholfen! Gruß Patrick |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:41 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