Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DataBaseFileName (https://www.delphipraxis.net/101112-databasefilename.html)

Fritz01 8. Okt 2007 16:02

Datenbank: Absolute Database • Zugriff über: ABSTable, DataSource

DataBaseFileName
 
Hallo,
habe da mal wieder einProblem! Folgendes kriege ich da einfach nicht gebacken:

D:\Delpi\Prog\Daten

DasProgramm liegt im Ordner Prog, die Daten (Info.abs) im Ordner Daten.
Für ABSDatabase und alle Tables benutze ich die FormDaten

So sieht das bei Delphi aus:


Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics,
  Controls, Forms, Dialogs, DB, ABSMain, ExtCtrls, DBTables;

const
  DataBaseFileName: String = '\Daten\Info.abs';

type
  TFormDaten = class(TForm)

Delphi-Quellcode:
procedure TFormDaten.FormCreate(Sender: TObject);
begin
  ABSDataBase.Close;
  ABSDatabase.DatabaseFileName := ExtractFilePath(Application.ExeName) + DataBaseFileName;
  ABSDataBase.Open;
  Table1.Open;
  Table2.Open;
  Table3.Open;
end;
Das sollte doch eigentlich alles richtig sein. Es funktioniert nicht! Was mache ich da falsch?
Fritz

DeddyH 8. Okt 2007 16:03

Re: DataBaseFileName
 
ExtractFilePath enthält schon den letzten Backslash. Vielleicht liegt es daran.

Fritz01 8. Okt 2007 16:15

Re: DataBaseFileName
 
Hallo DeddyH,
danke für die schnelle Antwort, aber es geht ohne den Backslash auch nicht.
DataBaseFileName: String = 'Daten\Info.abs';
Fehlermeldung: Das System kann den Pfad nicht finden.

Fritz

mkinzler 8. Okt 2007 16:18

Re: DataBaseFileName
 
Versuch es mal mit dem kompletten Pfad.

quendolineDD 8. Okt 2007 16:18

Re: DataBaseFileName
 
Wird denn der Pfad auch richtig ausgegeben?

DeddyH 8. Okt 2007 17:14

Re: DataBaseFileName
 
Ich würde es zunächst mal so versuchen:
Delphi-Quellcode:
const
  sDataBaseFileName = 'Daten\Info.abs';

procedure TFormDaten.FormCreate(Sender: TObject);
begin
  ABSDataBase.Close;
  ABSDatabase.DatabaseFileName := ExtractFilePath(Application.ExeName) + sDataBaseFileName;

  ShowMessage(ABSDatabase.DatabaseFileName);

  ABSDataBase.Open;
  Table1.Open;
  Table2.Open;
  Table3.Open;
end;

quendolineDD 8. Okt 2007 17:42

Re: DataBaseFileName
 
Oder unter Optionen -> Compiler -> uncheck Optimierung

Dann kannst du deinen Cursor in die Zeile bewegen und F4 drücken, dann dürfte der Compiler bis dahin den Quelltext ausgeführt haben und dann weiter mit F7 zeilenweise testen.

Dann kannst du mit der Maus drüber fahren und schauen ob alles die richtigen Werte hat :)

Edit:
btw, brauch das ganze eigentlich den absoluten oder relativen Pfad?

Fritz01 8. Okt 2007 18:14

Re: DataBaseFileName
 
@DeddyH,
soweit, sogut danke.
ShowMessage(ABSDatabase.DatabaseFileName); bringt die richtige Pfadangabe!
Dennoch kommt die Fehlermeldung: Das System kann ... nicht finden.
Werden die Tabels nicht geöffnet { }, so kommt es auch nicht zu Fehlermeldungen.
Im OI bleibt das Feld für DataBaseFileName leer, als DatabaseName habe ich dort Info ohne .abs eingetragen. Aber auch das sollte richtig sein. Oder?
Fritz

DeddyH 8. Okt 2007 18:16

Re: DataBaseFileName
 
Ich kenne ABS nur vom Namen, aber heißt es wirklich Open und nicht Connect o.ä.?

Fritz01 8. Okt 2007 18:27

Re: DataBaseFileName
 
Hallo DeddyH,
habe mir das nochmal bei den ABS Demos angesehen.
Table.open / Table.close ist OK und der Eintrag bei databaseName ohne .abs ist auch OK
Sollte doch funktionieren! Schaun wir mal ...
Fritz


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:55 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