AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Paradox-tabellen im Ordner der .exe erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Paradox-tabellen im Ordner der .exe erstellen

Ein Thema von plautzer · begonnen am 19. Jun 2004 · letzter Beitrag vom 20. Jun 2004
Antwort Antwort
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#1

Paradox-tabellen im Ordner der .exe erstellen

  Alt 19. Jun 2004, 22:00
Abend,

beim öffen meines programm prüfe ich ob die paradox tabellen da sind oda nicht.
Falls nicht das sollen sie erstellt werden.
Hier meine 2 Fragen dazu:

Wie frage ich ab ob die 2 tabellen im ordner der *.exe sind.
Und wenn die nicht da sind, wie erstelle ich sie genau da?


IF NOT FileExists('C:\***\daten.DB') THEN ... Thx,

plautzer
  Mit Zitat antworten Zitat
MarkusB

Registriert seit: 3. Apr 2004
Ort: Hamburg
105 Beiträge
 
#2

Re: Paradox-tabellen im Ordner der .exe erstellen

  Alt 20. Jun 2004, 11:08
Hi Plautzer!

Ich würde keine Prüfungen auf Existenz der Tabelle vornehmen, sondern gleich versuchen die Tabelle zu erstellen. Wenn die Tabelle schon existiert, dann bekommst Du einen Fehler (13075), den Du mit „try .. except ..end“ abfangen kannst. Wenn die Tabelle nicht existiert, dann wird sie erstellt.

Der code sollte etwa so aussehen:
Delphi-Quellcode:
function myCreateTable: boolean;
var
  i, error_no: integer;
  query: TQuery;
begin
  // Rückgabe auf true setzen (= alles OK)
  myCreateTable := true;

  // Query aufbauen
  query := TQuery.Create(nil);

  with query do
  begin
    SQL.Clear;
    SQL.Add('create table "Tabelle.db"');
    SQL.Add('(');
    SQL.Add(' ID smallint,');
    SQL.Add(' Feld1 char(40),');
    SQL.Add(' Feld1 char(40),');
    SQL.Add(' primary key(ID)');
    SQL.Add(')');
  end;

  // Query ausführen, dabei Fehler abfangen
  // “13057 File already exists" -> Tabelle existiert
  try
    query.ExecSQL;
  except
    on e: EDBEngineError do
    for i := 0 to e.ErrorCount - 1 do
    begin
      error_no := e.Errors[i].ErrorCode;

      // falls Fehler-ID nicht gleich 13057, dann Rückgabe auf false setzen und
      // Message anzeigen
      if error_no <> 13057
      then
      begin
        MessageDlg(e.Message + #13 + 'Error no: ' + IntToStr(error_no), mtError, [mbOK], 0);
        myCreateTable := false;
      end;
    end;
  end;

  // Query nicht mehr nötig, also weghauen
  query.Destroy;
end;
viele Grüße
Markus
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#3

Re: Paradox-tabellen im Ordner der .exe erstellen

  Alt 20. Jun 2004, 11:41
Danke,

ich habe mir mittlerweile auf dieser Weise geholfen:

Delphi-Quellcode:
pfad := ExtractFilePath(Application.ExeName);
  name := ExtractFileName(Application.ExeName);
  ext := ExtractFileExt(Application.ExeName);
  tabellen:=pfad + 'tabellen';
  with Table1 do DatabaseName := tabellen;
  with Table2 do DatabaseName := tabellen;
IF NOT FileExists(tabellen + '\daten.DB') THEN
        BEGIn
        if not ForceDirectories(tabellen) then
        ShowMessage('Beim Anlegen von '+Tabellen+' ist ein Fehler aufgetreten! Bitte überprüfen Sie ob Schreibzugriff auf den Datenträger der *.exe haben.');

        with Table1 do
                begin
                active := false;
                DatabaseName := tabellen;
                tabletype := TTParadox;
                tablename := 'daten';
                Name := 'Table1';

        with FieldDefs do
                begin
                 clear;
                     Add('Whg', ftinteger, 0, false);
                     Add('Name', ftString, 50, false);
                     Add('Vorname', ftstring, 50, false);
                     Add('Mietbegin', ftDate, 0, false);
                     Add('Bemerkung', ftString, 100, false);
                     Add('telefon', ftinteger, 0, false);
                     Add('Bruttomiete', ftcurrency, 0, false);
Das sollte auch funzen, oder sollte ich das doch lieber in eine funktion bauen?

Plautzer
  Mit Zitat antworten Zitat
MarkusB

Registriert seit: 3. Apr 2004
Ort: Hamburg
105 Beiträge
 
#4

Re: Paradox-tabellen im Ordner der .exe erstellen

  Alt 20. Jun 2004, 12:16
Hi Plautzer!

Das Implementieren der Funktionen finde ich immer empfehlenswert, weil Funktionen:
- vermeiden der Entstehung s.g. „spaghetti code“,
- machen Programmcode übersichtlicher und eleganter,
- machen Programme strukturiert und pflegeleichter,
- und, und, und ...

Aber, alles hängt vor allem von Dir und deiner Entwickler-Philosophie ...

Viele Grüße
Markus
  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 13:08 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