Autor Beitrag
der Berliner
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 417

Win Xp Home
delphi 2005
BeitragVerfasst: So 27.08.06 18:21 
Wie der Titel schon sagt wie kann ich
Prüfen ob eine Tabelle in einer mdb schon vorhanden ist?

Gruß

_________________
[b]Ich weiß nicht immer, wovon ich rede. Aber ich weiß, dass ich recht habe.[b]
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 28.08.06 08:42 
Wie verbindest Du Dich zu der Datenbank, also welche Komponenten?

Meistens bietet die Datenbank-Komponente eine Prozedur namens GetTableNames, vielleicht gibt's die bei Dir ja auch ;)
oldmax
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 380


D3 Prof, D4 Prof
BeitragVerfasst: Mo 28.08.06 09:11 
Hi
Bei Delphi 4 geht’s über TTable.Exists.
In dem Beitrag Adressbuch mit Datenbank hab ich einen kleinen Einstieg beschrieben, in dem auch diese Function benutzt wird. Sollte diese Function nicht gegeben sein, das ist z.B. bei Delphi 3 der Fall, kannst du ganz einfach ein Open setzen. Und mit Try und Except bekommst du die Fehlermeldung in den Griff..

Hier mal beide Beispiele:
D3:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
Procedure TMYDaten.Generate_Tabelle;
Var Tabelle: TTable;
Begin
  Tabelle:=TTable.Create(MyDaten); 
  Tabelle.DatabaseName:='MyConnect';
  Tabelle.TableName:='Adressen';
  Tabelle.TableType:=ttDefault;
  Tabelle.Name:='Adressen';
  Tabelle.FieldDefs.Clear;
  Tabelle.IndexDefs.Clear;
  Tabelle.FieldDefs.Add('Ident',ftInteger,0,True); // ich mach mir immer einen eigenen Ident
  Tabelle.FieldDefs.Add('Vorname',ftString,50,False); // Tabellenfeld Vorname 50 Zeichen
  Tabelle.FieldDefs.Add('Name',ftString,50,False); // Tabellenfeld Name 50 Zeichen
  Tabelle.FieldDefs.Add('Strasse',ftString,30,False); // Tabellenfeld Strasse 30 Zeichen
  Tabelle.FieldDefs.Add('PLZ',ftString,6,False); // usw
  Tabelle.FieldDefs.Add('Ort',ftString,30,False);
  Tabelle.FieldDefs.Add('Telefon',ftString,30,False);
  Tabelle.FieldDefs.Add('EMail',ftString,30,False);
  Tabelle.IndexDefs.Add('''Ident', [ixPrimary, ixUnique]); // und setzte ihn auch als einzigartig
   Try 
      Tabelle.Open; // öffnet eine vorhandene Tabelle
    except
       Tabelle.CreateTable; // erzeuge die Tabelle auf der Datenbank
    end;
  Tabelle.Free; // nicht vergessen, Speicher freigeben, Tabelle liegt nun im angegebenen Verzeichnis
End;

Oder für D4

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
Procedure TMyDaten.Generate_Tabelle;
Var Tabelle : TTable;
Begin
  Tabelle:=TTable.Create(MyDaten); 
  Tabelle.DatabaseName:='MyConnect';
  Tabelle.TableName:='Adressen';
  Tabelle.TableType:=ttDefault;
  Tabelle.Name:='Adressen';
  Tabelle.FieldDefs.Clear;
  Tabelle.IndexDefs.Clear;
  If not Tabelle.exists then // geht nur ab Delphi 4, sonst weglassen und später ausklammern
  begin
    Tabelle.FieldDefs.Add('Ident',ftInteger,0,True); // ich mach mir immer einen eigenen Ident
    Tabelle.FieldDefs.Add('Vorname',ftString,50,False); // Tabellenfeld Vorname 50 Zeichen
    Tabelle.FieldDefs.Add('Name',ftString,50,False); // Tabellenfeld Name 50 Zeichen
    Tabelle.FieldDefs.Add('Strasse',ftString,30,False); // Tabellenfeld Strasse 30 Zeichen
    Tabelle.FieldDefs.Add('PLZ',ftString,6,False); // usw
    Tabelle.FieldDefs.Add('Ort',ftString,30,False);
    Tabelle.FieldDefs.Add('Telefon',ftString,30,False);
    Tabelle.FieldDefs.Add('EMail',ftString,30,False);
    Tabelle.IndexDefs.Add('''Ident', [ixPrimary, ixUnique]); // und setzte ihn auch als einzigartig
    Tabelle.CreateTable;// und erzeuge die Tabelle auf der Datenbank
  end;
  Tabelle.Free; // nicht vergessen, Speicher freigeben, Tabelle liegt nun im angegebenen Verzeichnis
End;

Ich hoffe, es hilft dir
Gruß oldmax

_________________
Zier dich nich so, ich krieg dich schon....
der Berliner Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 417

Win Xp Home
delphi 2005
BeitragVerfasst: Mo 28.08.06 16:19 
Hi...Danke Euch
werde das mit ADOConnection1.GetTableNames(Listbox1.Items,False); lösen
Gruß

_________________
[b]Ich weiß nicht immer, wovon ich rede. Aber ich weiß, dass ich recht habe.[b]