![]() |
Datenbank: Paradox • Zugriff über: BDE
Problem beim Erstellen einer Paradox Tabelle
Hallo alle...
bitte nicht gleich teeren und federn wegen Paradox.... folgender im Prinzip einfacher Code..
Delphi-Quellcode:
Infos:
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; 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 :wiejetzt: ist ja klar...sie soll ja erstellt werden :gruebel: Danke für eure Mithilfe... |
Re: Problem beim Erstellen einer Paradox Tabelle
.TableName sollte ohne Pfad sein
|
Re: Problem beim Erstellen einer Paradox Tabelle
Ich werde das mal ändern...hatte aber prinzipiell so bisher keine Probleme :gruebel:
bis gleich |
Re: Problem beim Erstellen einer Paradox Tabelle
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 :wall: |
Re: Problem beim Erstellen einer Paradox Tabelle
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... :???: |
Re: Problem beim Erstellen einer Paradox Tabelle
könnte das damit zu tun haben, das die TTable Komponente auf dem Formular liegt und
nicht zur Laufzeit erzeugt und wieder freigegeben wird ? :?: |
Re: Problem beim Erstellen einer Paradox Tabelle
...und genau damit hat es was zu tun. :wall:
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 !!! :-D PS: ...Selbstgespräche mag ich gar nicht so. Trotzdem danke an alle die sich Gedanken gemacht haben. |
Re: Problem beim Erstellen einer Paradox Tabelle
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:
Wenn die Tabellen den gleichen Aufbau haben, dann genügt beim Ansatz über eine extern erzeugte Tabelle die einmalige Definition der Struktur.
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; Freundliche Grüße |
Re: Problem beim Erstellen einer Paradox Tabelle
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 :oops: ---> da muß ich selbst durch !!! :( |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz