AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Problem beim Erstellen einer Paradox Tabelle
Thema durchsuchen
Ansicht
Themen-Optionen

Problem beim Erstellen einer Paradox Tabelle

Ein Thema von haentschman · begonnen am 25. Feb 2007 · letzter Beitrag vom 28. Feb 2007
Antwort Antwort
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#1

Problem beim Erstellen einer Paradox Tabelle

  Alt 25. Feb 2007, 13:46
Datenbank: Paradox • Zugriff über: BDE
Hallo alle...

bitte nicht gleich teeren und federn wegen Paradox....

folgender im Prinzip einfacher Code..

Delphi-Quellcode:
procedure TabWartungerzeugen;
begin
  with Form1.TabWartungsprotokoll do
    begin
      TableType := ttParadox;
      TableName := WartungPName;
      with FieldDefs do
        begin
          Clear;
          with AddFieldDef do
            begin
              Name := 'Nummer';
              DataType := ftString;
              Size := 30;
            end;
          with AddFieldDef do
            begin
              Name := 'Gruppe';
              DataType := ftString;
              Size := 30;
            end;
          with AddFieldDef do
            begin
              Name := 'Tatigkeit';
              DataType := ftString;
              Size := 100;
            end;
          with AddFieldDef do
            begin
              Name := 'IO';
              DataType := ftBoolean;
            end;
          with AddFieldDef do
            begin
              Name := 'Mangel';
              DataType := ftBoolean;
            end;
          with AddFieldDef do
            begin
              Name := 'Erledigt';
              DataType := ftBoolean;
            end;
        end;
      with IndexDefs do
        begin
          with AddIndexDef do
            begin
              Name := '';
              Fields := 'Nummer;Gruppe;Tatigkeit';
              Options := [ixPrimary];
            end;
        end;
      CreateTable;
    end;
end;
Infos:

WartungPName enthält kpl. Verzeichnis incl. Dateinamen z.B. 'C:\Test\WP2007.DB'
TabWartungsprotokoll ist Active:= False

zum Problem:

der erste Durchlauf der procedure ist ok die Tabelle wird wie gewünscht erstellt.
vor dem 2. Durchlauf wird WartungPName geändert in z.B 'C:\Test\WP2008.DB'

beim CreateTable erhalte ich folgenden Fehler:

bla..bla..bla.. Invalid Parameter....Table 'C:\Test\WP2008.DB' does not exist

ist ja klar...sie soll ja erstellt werden

Danke für eure Mithilfe...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem beim Erstellen einer Paradox Tabelle

  Alt 25. Feb 2007, 13:51
.TableName sollte ohne Pfad sein
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#3

Re: Problem beim Erstellen einer Paradox Tabelle

  Alt 25. Feb 2007, 13:54
Ich werde das mal ändern...hatte aber prinzipiell so bisher keine Probleme

bis gleich
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#4

Re: Problem beim Erstellen einer Paradox Tabelle

  Alt 25. Feb 2007, 14:05
also...

TableName gesetzt auf z.b. WP2007.DB
DatabaseName gesetzt auf das Verzeichnis


Ergebnis ist das gleiche...

1.Durchlauf ok
2. Durchlauf Fehler

ich verbringe jetzt schon Stunden damit die Parameter des Aufufes zu kontrollieren und umzustellen...

wenn es ja nie funktionieren würde hätte ich ja einen Ansatz
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#5

Re: Problem beim Erstellen einer Paradox Tabelle

  Alt 25. Feb 2007, 14:12
so...

ich habe herausgefunden, das die procedure jedesmal problemlos durchläuft, wenn ich das Programm neu starte...

ich denke, das ich irgend etwas noch freigeben muß nach CreateTable...

werde mal das Forum durchblättern...
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#6

Re: Problem beim Erstellen einer Paradox Tabelle

  Alt 25. Feb 2007, 14:25
könnte das damit zu tun haben, das die TTable Komponente auf dem Formular liegt und
nicht zur Laufzeit erzeugt und wieder freigegeben wird ?
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#7

Re: Problem beim Erstellen einer Paradox Tabelle

  Alt 25. Feb 2007, 15:03
...und genau damit hat es was zu tun.

Delphi-Quellcode:
procedure TabWartungerzeugen;
var
  Tabelle: TTable;
begin
  Tabelle:= TTable.Create(nil); <---- Tabelle dynamisch erzeugen
  with Tabelle do
    begin
      SessionName:= 'Session1_1';
      TableType := ttParadox;
      TableName := WartungPName;
      with FieldDefs do
        begin
          Clear;
          with AddFieldDef do
            begin
              Name := 'Nummer';
              DataType := ftString;
              Size := 30;
            end;
          with AddFieldDef do
            begin
              Name := 'Gruppe';
              DataType := ftString;
              Size := 30;
            end;
          with AddFieldDef do
            begin
              Name := 'Tatigkeit';
              DataType := ftString;
              Size := 100;
            end;
          with AddFieldDef do
            begin
              Name := 'IO';
              DataType := ftBoolean;
            end;
          with AddFieldDef do
            begin
              Name := 'Mangel';
              DataType := ftBoolean;
            end;
          with AddFieldDef do
            begin
              Name := 'Erledigt';
              DataType := ftBoolean;
            end;
        end;
      with IndexDefs do
        begin
          with AddIndexDef do
            begin
              Name := '';
              Fields := 'Nummer;Gruppe;Tatigkeit';
              Options := [ixPrimary];
            end;
        end;
      CreateTable;
    end;
  Tabelle.Free; <---- Speicher freigeben
end;

...jetzt macht er was ich will !!!


PS: ...Selbstgespräche mag ich gar nicht so. Trotzdem danke an alle die sich Gedanken gemacht haben.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Problem beim Erstellen einer Paradox Tabelle

  Alt 25. Feb 2007, 16:29
Hallo,

durch die dynamische Erstellung deiner Tabelle hast du nicht die Ursache, sonder das Symptom erfolgreich bekämpft. Grundsätzlich hätte auch der erste Ansatz funktionieren können:

Delphi-Quellcode:
procedure TabWartungDefinieren(tbl: TTable);
begin
  with tbl do
  begin
    TableType := ttParadox;
    with FieldDefs do
    begin
      Clear;
      Add('Nummer', ftString, 30);
      Add('Gruppe', ftString, 30);
      Add('Tatigkeit', ftString, 100);
      Add('IO', ftBoolean);
      Add('Mangel', ftBoolean);
      Add('Erledigt', ftBoolean);
    end;
    with IndexDefs do
    begin
      Clear;
      Add('', 'Nummer;Gruppe;Tatigkeit', [ixPrimary]);
    end;
  end;
end;

procedure TabWartungErzeugen(tbl: TTable; fn: TFileName);
begin
  with tbl do
  begin
    // Wegen Test auf Kommentar gesetzt ...
    // DatabaseName := ExtractFileDir(fn);
    // TableName := ChangeFileExt(ExtractFileName(fn), '');
    TableName := fn;
    CreateTable;
  end;
end;
Wenn die Tabellen den gleichen Aufbau haben, dann genügt beim Ansatz über eine extern erzeugte Tabelle die einmalige Definition der Struktur.

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.387 Beiträge
 
Delphi 12 Athens
 
#9

Re: Problem beim Erstellen einer Paradox Tabelle

  Alt 28. Feb 2007, 21:12
Danke für deine Hilfe...

habe meinen Programmcode umgestellt...ist jetzt wesentlich übersichtlicher.

Ich habe das ganze als Procedure ohne Variablenübergabe realisiert...ich komme mit der Deklaration und dem Aufruf nicht klar...ich habe mit diesen Grundlagen noch so meine Probleme... wo gehört was hin und wie übergebe ich richtig ---> da muß ich selbst durch !!!
  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 07:40 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