AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

eigener String in Registry

Ein Thema von tyron78 · begonnen am 17. Okt 2005 · letzter Beitrag vom 17. Okt 2005
Antwort Antwort
tyron78

Registriert seit: 11. Aug 2005
Ort: Düsseldorf
23 Beiträge
 
#1

eigener String in Registry

  Alt 17. Okt 2005, 21:00
Hallo.
Hab hier schon ne Weile in der Praxis gesucht, aber noch nichts passendes gefunden. Nach meinem (dank Euch) erfolgreichem Versuch mit Access habe ich mich (auf raten eines Kollegen hin) entschlossen, auf Interbase umzuschenken, bevor meine Anwendung zu umfangreich ist.
Ich habe also (erstmal Manuell) einen Registryeintrag (IBCON) erstellt, der sich wie folgt zusammensetzt:

Dateiname (inkl. Pfad) +'>>'+ Username + '>>'+ Passwort

Dieser wird später wird in die einzelnen Komponenten aufgebröselt und es wird ein connect zur DB erstellt (klappt soweit auch - habs mal ohne Registry also hardcodiert getestet).

Entspricht zwar keinerlei Security-Richtlinien oder ähnlichem, aber da die Anwendung nur lokal läuft ist das vorerst egal.
Ich versuche mit folgendem Code die Registry auszulesen:

Delphi-Quellcode:
    function ReadDSNFromRegistry(DSN: string): string;
    var Registry: TRegistry;
        Reg_Result: string;
    begin
      Registry:=TRegistry.Create;
      try
        Registry.RootKey:=HKEY_LOCAL_MACHINE;
        if Registry.KeyExists('\Software\mydir\myapp')=true then begin
          if Registry.OpenKey('\Software\mydir\myapp',true)=true then
            Reg_Result := Registry.ReadString('IBCON')
          else
            Reg_Result := '';
          end
        else
          Reg_Result := '';
        finally
          Registry.Free;
          Result := Reg_Result;
        end;
    end;
Nun bekomme ich bereits beim Start der Anwendung die Fehlermeldung "Kein zulässiger Dateiname". Entferne ich den Teil nach dem Dateinamen (>> etc.) kommt die Fehlermeldung "Nicht erkennbares Datenbankformat". Woran kann das liegen??? Hoffe mir kann hier jemand helfen... Danke im Vorraus.

Tyron
God is integer - until declared real...
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: eigener String in Registry

  Alt 17. Okt 2005, 21:13
wenn du vorher prüfen willst ob der Key in der Registry existiert kannst du auch das KeyExists weg machen und den zweiten Parameter von OpenKey auf False setzen. Desweiteren gehört es sich eigentlich das man CloseKey aufruft wenn das OpenKey geklappt hat.
Zu deinem Fehler den du bekommst. Der hat eignetlich nix mit dem Quellcode zu tun den du hier gepostet hast da dies ja das auslesen der Registry ist und nichts mit dem öffnen der Datenbank etc. zu tun hat. Du übergibst der funktion ja "DSN" aber wo verwendest du das innerhalb der funktion?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: eigener String in Registry

  Alt 17. Okt 2005, 21:16
Moin Tyron,

als erstes sollest Du mal Reg_Result zu Beginn der Routine initialisieren.
Dann ist die Überprüfung mit KeyExists überflüssig, wenn Du sowieso Open mit true verwendest, ausserdem solltest Du bei booleschen Abfragen = true weglassen.
Wenn OpenKey erfolgreich war, solltest Du den Key auch wieder schliessen.

Dein eigentliches Problem liegt allerdings wohl nicht beim Auslesen des Wertes aus der Registry, sondern bei der Verarbeitung des zurückgegebenen Wertes.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
tyron78

Registriert seit: 11. Aug 2005
Ort: Düsseldorf
23 Beiträge
 
#4

Re: eigener String in Registry

  Alt 17. Okt 2005, 21:28
Hallo.

Danke für die schnelle Antwort und die Tips. Hab den Fehler gerade gefunden: Die Funktion wurde noch in nem anderen Unit aufgerufen, was ich eigentlich nicht mehr verwende aber noch im Projekt habe... hab den Aufruf auskommentiert (brauch den Rest der Unit noch als Vorlage) - jetzt klappts.

mfg

Tyron
God is integer - until declared real...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr.
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