Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Automatische Anmeldung ODBC -> AS400 -> DB2 (https://www.delphipraxis.net/181554-automatische-anmeldung-odbc-as400-db2.html)

lfriedrich 25. Aug 2014 11:01

Datenbank: DB2 • Version: CA 6.1 • Zugriff über: ODBC

Automatische Anmeldung ODBC -> AS400 -> DB2
 
Hallo Progi's,

ich habe eine kleines Problem, an dem ich fast verzweifele. Eigentlich einfach, aber ich kann es nicht lösen.

Ich habe eine Software geschreiben, die Maschinendaten schichtweise auswertet (6,14,22 Uhr). Anschliessend sollen die Daten in verschiedene Datenbanksystem gespeichert werden. Die Software der Betriebsdatenerfassung läuft, alles ist fertig, aber....... !!

Die Speicherung der Daten in den MySQL-Tabellen klappt, denn ich benutze die Zeo's Lib in der ich User und Passwort hinterlegen kann. Nun werden aber auch Daten in eine DB2-Tabelle auf einer AS400 geschrieben. Dazu nutze ich den ODBC-Treiber von Client Access, auch das klappt die Woche über ganz toll. Ausser Montagsmorgens, denn in der Nacht macht die AS400 ein Reboot, so das alle Verbindungen verloren gehen. Dass bedeutet, für mein Programm, das ich keine Daten an die AS400 per ODBC übertragen kann, denn beim Aktivieren der Verbindung kommt die Aufforderung zur manuellen Eingabe von Username und Passwort. Es ist aber noch keine Benutzer vor Ort der die Eingabe machen könnte!!!! Ich kann im ODBC-Treiber aber auch keinen Username und Passwort hinterlegen, zumindest finde ich keinen Eintrag dazu.

Nach einiger Suche fand ich einen Hinweis, den Connect mit ADO zu machen, aber auch hier klappt die Sache mit der automatischen Verbindung bei einem "open" nicht. Es erscheint auch die Maske für die manuelle Eingabe von Username und Passwort (Link = http://www.delphipraxis.net/151464-m...zugreifen.html).

Ich brauche deshalb mal Eure Hilfe oder ein paar Codeschnipsel, wie ich die Software trotz verlorener Verbindung zu bewegen kann, Daten an die AS400 zu senden.......

Ich nutze die SQL-Query der BDE, der DatabaseName wird im ODBC-Treiber unter Benutzer-DSN angelegt.


Grüße
Lothar

Uwe Raabe 25. Aug 2014 11:28

AW: Automatische Anmeldung ODBC -> AS400 -> DB2
 
Hast du das schon ausprobiert?

p80286 25. Aug 2014 11:45

AW: Automatische Anmeldung ODBC -> AS400 -> DB2
 
Zitat:

Zitat von lfriedrich (Beitrag 1269759)
Nach einiger Suche fand ich einen Hinweis, den Connect mit ADO zu machen, aber auch hier klappt die Sache mit der automatischen Verbindung bei einem "open" nicht. Es erscheint auch die Maske für die manuelle Eingabe von Username und Passwort (Link = http://www.delphipraxis.net/151464-m...zugreifen.html).
...

Ich nutze die SQL-Query der BDE, der DatabaseName wird im ODBC-Treiber unter Benutzer-DSN angelegt.

Auch wenn der eine oder andere mit ADO auf dem Kriegsfuß steht (es gibt gute Gründe) ich habe bisher noch nicht erlebt, das das "autologin" nicht funktioniert. (gut ine AS400 habe ich noch icht probiert) Du bist Dir im Klaren, daß das Passwort hierfür gespeichert werden muß?

Und Du solltest Dich vllt. entscheiden, ob Du die BDE, oder eine andere Schnittstellentechnologie nutzt, es ist zwar lange her, aber BDE war meiner Meinung nach eine schreckliche Krücke.


Gruß
K-H

Union 25. Aug 2014 12:28

AW: Automatische Anmeldung ODBC -> AS400 -> DB2
 
Du kannst Passwort und User in den Connectionstring aufnehmen.
Zitat:

Zitat von lfriedrich (Beitrag 1269759)
denn in der Nacht macht die AS400 ein Reboot, so das alle Verbindungen verloren gehen

Das erscheint mir aber sehr fragwürdig. Das ist bei dem System normalerweise nicht nötig.

lfriedrich 25. Aug 2014 12:47

AW: Automatische Anmeldung ODBC -> AS400 -> DB2
 
Also ADO funktioniert definitiv nicht mit dem o.a. Beispiel. Es kommt das Eingabefenster für die manuelle Datenbankanmeldung, so wie beim einfachen BDE-Query via ODBC. Das Speichern des Passwort auf dem System ist nicht der Knackpunkt, denn der User darf nur auf eine ganz spezielle Tabelle schreibend zugreifen, mehr nicht.

Also ich nutze seit Jahren die BDE für den Zugriff über ODBC auf die AS400. Allerdings müssen die Anwendungen immer vom User gestartet werden und dabei erfolgt die Anmeldung über die manuelle Eingabemaske. Es gab noch nie Probleme mit der BDE und SQL, wohl aber mit dem "neuen" dbExpress !! Schade dass die BDE nun langsam ausstirbt.

Die o.g. Software wird einmal gestartet und läuft in der Theorie bis zum Weltuntergang, PC-Absturz oder wie in diesem Fall einem Reboot/Reorganisation der AS400. Ich bin kein ERP-Spezialist, sondern nur ein doofer Progi, deshalb verstehe ich auch nicht, warum das Ding einmal die Woche neu gestartet werden muss. Meine MySQL-Server laufen Monate durch.... ohne Probleme.

@Uwe: Ja, hab ich schon probiert, keine Chnce da ein Passwort zu hinterlegen... Username ja. Leider keine automatische Anmeldung möglich.
@Union: Den Connectionstring habe ich so aufgebaut wie im o.a. ADO-Beispiel angegeben. Automatische Anmeldung ohne manuelle Anmeldung ist nicht möglich, es erscheint wieder die Eingabemaske für User und Passwort. Beim BDE-Queryobjekt habe ich keinen Connectiostring gefunden.

jobo 25. Aug 2014 12:49

AW: Automatische Anmeldung ODBC -> AS400 -> DB2
 
Für ADO gibt es notfalls auch einen ODBC Wrapper. Dann kannst Du ADO Komponenten verwenden, aber weiter mit den ODBC Treibern arbeiten.
Dann gibt es für die Connection sowas wie "LoginPrompt" property oder so ähnlich, die abzuschalten wäre, also auf False, damit kein Anmeldedialog erscheint.
User und PW können auch bzw. müssen dann im Connectionstring gespeichert sein oder programmatisch angegeben werden. Das ist nicht verkehrt, weil man dann im Gegensatz zum ADO Connectionstring selbst festlegen kann, wo und wie das Passwort gespeichert / Verschlüsselt wird.

lfriedrich 25. Aug 2014 13:18

AW: Automatische Anmeldung ODBC -> AS400 -> DB2
 
@jobo:

Ich glaube, der Tip mit dem Abschalten des "LoginPromt" scheint die Lösung zu sein. Ich installiere die neue Software mal auf dem Zielrechner und warte das kommende Wochenende ab. Im Moment sieht es gut aus :-)

Danke für die vielen Anregungen. Melde mich mit dem Ergebnis bzw. der Lösung wenn's sauber und stabil läuft.

Grüße
Lothar

jobo 25. Aug 2014 13:45

AW: Automatische Anmeldung ODBC -> AS400 -> DB2
 
Zitat:

Zitat von lfriedrich (Beitrag 1269780)
Ich glaube, der Tip mit dem Abschalten des "LoginPromt" scheint die Lösung zu sein.

Möglich, aber höchstens die halbe Lösung, Username und Password Property musst Du dann selbst verwalten und bereitstellen.

Außerdem würde ich testen, wie das nun mit der "normalen" Anmeldung interaktiv nach Programmstart harmoniert und ob die dort eingegeben Login-Daten ordentlich gespeichert werden. Bzw. was bei Passwort / Login Änderung auf dem Server oder Client geschieht.

p80286 25. Aug 2014 14:54

AW: Automatische Anmeldung ODBC -> AS400 -> DB2
 
Zitat:

Zitat von jobo (Beitrag 1269783)
Zitat:

Zitat von lfriedrich (Beitrag 1269780)
Ich glaube, der Tip mit dem Abschalten des "LoginPromt" scheint die Lösung zu sein.

Möglich, aber höchstens die halbe Lösung, Username und Password Property musst Du dann selbst verwalten und bereitstellen.

Außerdem würde ich testen, wie das nun mit der "normalen" Anmeldung interaktiv nach Programmstart harmoniert und ob die dort eingegeben Login-Daten ordentlich gespeichert werden. Bzw. was bei Passwort / Login Änderung auf dem Server oder Client geschieht.

Es könnte sein, daß das Abschalten wirklich reicht, trotzdem solltest Du Testen, Testen, Testen.....
Sich darauf verlassen, daß die DB-Verbindung für immer und ewig steht ist leichtsinnig bis grob fahrlässig. Dein Programm sollte immer darauf gefasst sein, daß der Client oder einer der Server sich kurzfristig verabschiedet und darauf dann angemessen reagieren können.

Gruß
K-H

vagtler 26. Aug 2014 08:40

AW: Automatische Anmeldung ODBC -> AS400 -> DB2
 
Zitat:

Zitat von lfriedrich (Beitrag 1269776)
[...] Schade dass die BDE nun langsam ausstirbt. [...]

Langsam? Ägyptische Pharaonen sind lebendiger... :p


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 Uhr.

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