![]() |
Datenbank: Oracle • Version: 11g • Zugriff über: ADO
ADOConnection wieder öffnen und ConnectionString neu zuweisen
Hallo,
hab ein internes Programm das mit ADOConnection auf eine DB-Zugreift. Das ist beliebter als ursprünglich gedacht und geplant und läuft bei vielen Kollegen den ganzen Tag. Es hält dabei aber ständig die Verbindung zur Datenbank offen, was mittleweile lästig wird und eigentl. nicht nötig ist. Also wird die ADOConnection jetzt nach dem Start geschlossen und nur bei Bedarf wieder geöffnet. Dazu muss ich aber jedesmal der Connection den ConnectionString neu zuweisen. Mach ich das nicht, so kommt bei einem Connection.Open die Fehlermeldung von der Datenbank, dass Benutzername und Passwort falsch sind. Ich hab dann gesehen, das in der ADO-Komponente am Ende der Open-Prozedur die internen Felder für Benutzer und Passwort "geleert" werden (:='') und ich hab mich gefragt, warum ist das so? Was ist der Sinn? |
AW: ADOConnection wieder öffnen und ConnectionString neu zuweisen
Die Open Methode der AdoConnection müsste es in einer überladenen Version geben.
Delphi-Quellcode:
adoconnection1.Open(user, password);
Das ist einfacher als User & Password in den ConnectionString einzubauen. User & PW werden wahrscheinlich aus Sicherheitsgründen aus dem ConnectionString entfernt. Diess könnte auch Providerspezifisch sein und vom Oracle OLE-DB Provider ausgehen. |
AW: ADOConnection wieder öffnen und ConnectionString neu zuweisen
Trägst Du in der Connection Werte für "Persist security Info" ein?
Das ist glaub ich per default = false, erst bei True werden User/pw im connection string abgelegt. Das wäre ggF unproblematisch, solange der String selbst nicht wiederum irgendwo gespeichert wird. |
AW: ADOConnection wieder öffnen und ConnectionString neu zuweisen
Oracle und Zugriff über ADO/OLE DB? Ist eh eine schlechte Kombination?
Der Treiber von MS wurde schon vor Jahren aufs Altengleis geschoben und ist eh eher eine Technologiestudie als für den produktiven Einsatz geeignet. |
AW: ADOConnection wieder öffnen und ConnectionString neu zuweisen
Zitat:
|
AW: ADOConnection wieder öffnen und ConnectionString neu zuweisen
vorher mach mal dass:
ConnectionString:=''; Wenn ich hier was mache und z.B. bei einer TADOTable auf eine andere Tabelle zugreifen will mache ich vor dem Open Grundsätzlich: Connection:=nil; ConnectionString:=''; Sonst behält er irgendwie immer was irgendwo im Cash .... |
AW: ADOConnection wieder öffnen und ConnectionString neu zuweisen
Zitat:
|
AW: ADOConnection wieder öffnen und ConnectionString neu zuweisen
Zitat:
Zitat:
Im Hintergrund ist nämlich ein Datenmodul, quasi wie ein Singelton verwendet, wo man eine Connection anfordern kann. Hat es die Connection schon in ihrem Pool, gibt sie sie raus, ansonsten wird sie erzeugt, dem Pool hinzugefügt und dann rausgegeben. ConnectionString, bzw. Anmdeldeinfos kommen dabei aus einer dll, wodurch wohl irgendwie die Geheimniskrämer hier befriedigt werden sollen, auch wenn das wohl auch nicht mehr ganz zeitgemäß ist. Da hab ich jetzt einfach mal die Prozedur zur Connectionanforderung so angepasst, dass sie bei einer bereits vorhandenen Connection prüft, ob diese geschlossen ist und falls ja, weist sie einfach nochmal den ConnectionString zu. 'Persist security' Info auf true setzen wär natürlich irgendwie einfacher. Sollen mal die Kollegen entscheiden. Bzw. wenn ihr Gedanken dazu habt immer her damit, dann hab ich ggf. Argumente für und wieder, und vllt. hört man dann mal auf mich:cry: |
AW: ADOConnection wieder öffnen und ConnectionString neu zuweisen
Zitat:
Zitat:
|
AW: ADOConnection wieder öffnen und ConnectionString neu zuweisen
Mit dem OraOleDB.Oracle als ADO-Provider habe ich wenig Probleme.
Und Du (Bernhard) darfst ein nicht vergessen,für ADO entstehen keine zusätzlichen Kosten. Zumindestens wenn man als DV-Hilfsarbeiter tätig ist, ist das ein Argument gegen das Du wenig entgegenzusetzen hast. Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:19 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