Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zugriffsverletzung beim ini laden (https://www.delphipraxis.net/89368-zugriffsverletzung-beim-ini-laden.html)

MCOP2001DE 30. Mär 2007 00:11

Datenbank: Access • Version: 2003 • Zugriff über: ADO

Zugriffsverletzung beim ini laden
 
Hallo

ich habe folgendes Problem bei meinem Progamm soll der Pfad der Datenbank aus einer Ini Datei gelesen werden.
Beim ausführen bekomme ich aber die Meldung Zufriffsverletzung :?:
mein Code sieht wie folgt aus
Delphi-Quellcode:
procedure TMainframe.FormCreate(Sender: TObject);
var ini: TIniFile;
Dir : String;
begin

   Mainframe.Entnahme.Hide;     // schliessen des Entnahmeframes
   Mainframe.Lieferung.Hide;    // schliessen des Lieferungsframes
   Mainframe.Dateneingabe.Hide; // schliessen des Dateneingabeframes
   Mainframe.Info.Hide;         // schliessen des Infoframes

// Laden des Datenbankpfads
   ini := TInifile.Create(ExtractFilePath(ParamStr(0))+'Konfiguration.ini');
   try
   Dir := ini.ReadString('DB', 'Pfad', '');
   Tabellen.Verbindung.ConnectionString := Dir;
   finally
   ini.Free;


// öffnen aller Datenbankverbindungen
 begin
   if Fileexists (Dir) then
    begin
     Tabellen.Verbindung.Connected := True;

     Tabellen.Tab_Art.Active        := True;
     Tabellen.TAB_Lieferant.Active  := True;
     Tabellen.TAB_Ersatzteil.Active := True;
     Tabellen.TAB_Lagerbestand.Active:= True;
     Tabellen.TAB_Lieferung.Active  := True;
    end
   else
    begin
     Showmessage('INI Datei oder Datenbank nicht gefunden')
    end;
 end;
end;
end;
Die Adresse der Zugriffsverletzung ist 004B8716 im Modul
Weiß jemand Rat?

MCOP2001DE :gruebel:

omata 30. Mär 2007 00:19

Re: Zugriffsverletzung beim ini laden
 
Hallo MCOP2001DE,

setzt mal einen Breakpoint und versuch herauszufinden, in welcher Zeile der Fehler auftritt.

Gruss
Thorsten

hoika 30. Mär 2007 14:17

Re: Zugriffsverletzung beim ini laden
 
Hallo,

falls es tatsächlich die Ini ist,
benutze statt TIniFile TMemIniFile.


Heiko

MCOP2001DE 30. Mär 2007 17:42

Re: Zugriffsverletzung beim ini laden
 
Hallo Omata

Danke für die schnelle Antwort.
Die Meldung tritt in der Zeile

Tabellen.Verbindung.Connectionstring := Dir;

auf.
Ich habe genau den selben Code in anderen Anwendungen eingestetzt und da geht es :gruebel:

Mcop2001de

MCOP2001DE 30. Mär 2007 17:54

Re: Zugriffsverletzung beim ini laden
 
Hallo Hoika

Das funktioniert auch nicht.
Ich erhalte die Fehlermeldung MemIniFiles.dcu nicht gefunden.

MCop2001de

himitsu 30. Mär 2007 17:56

Re: Zugriffsverletzung beim ini laden
 
Zitat:

Tabellen.Verbindung.Connectionstring := Dir;
Dann hat das aber nichts mit der ini zu tun.

Entweder ist das Verzeichnis falsch,
oder mit Tabellen / Tabellen.Verbindung stimmt was nicht.

marabu 30. Mär 2007 18:02

Re: Zugriffsverletzung beim ini laden
 
Hallo,

das kommt mir spanisch vor - ein ADO ConnectionString für MS Access sieht etwa so aus:

Code:
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\somepath\myDb.mdb'
Was steht denn in der Variable Dir?

Grüße vom marabu

MCOP2001DE 30. Mär 2007 18:11

Re: Zugriffsverletzung beim ini laden
 
Hallo

Die Ini sieht dan so aus wenn er es macht

[DB]
Pfad=D:\Mirko.M-COMPUTERTECHN\Eigene Dateien\Projekt\Ersatzteilverwaltung v1.0\Daten\Data.mdb

Er erstellt mir aber keine Ini Datei.

Den selben fehler bekomme ich auch wenn ich den ADOConnetion in ein eigens Datenmodul packe und ihm einen festen Pfad zuweise

Mcop2001de

marabu 30. Mär 2007 18:17

Re: Zugriffsverletzung beim ini laden
 
Du musst den Pfad in Quotes einfassen, wenn er Leerzeichen enthält:

Code:
Pfad="D:\Mirko.M-COMPUTERTECHN\Eigene Dateien\Projekt\Ersatzteilverwaltung v1.0\Daten\Data.mdb"
Freundliche Grüße

MCOP2001DE 30. Mär 2007 18:40

Re: Zugriffsverletzung beim ini laden
 
Der Pfad soll aber nicht fest im Programm gespeichert werden.
In einen anderen Programm funtioniert das ja auch so wie es soll.
beide Quelltexte sind identisch und trotzdem funktioniert das nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:51 Uhr.
Seite 1 von 2  1 2      

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