Einzelnen Beitrag anzeigen

MarkusB

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

Re: Paradox-tabellen im Ordner der .exe erstellen

  Alt 20. Jun 2004, 10: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