Entwickler-Ecke
Datenbanken - If Tabelle.exits then
GUFR - So 13.06.04 19:45
Titel: If Tabelle.exits then
Hallo
Der Datenbank Zugriff mache ich mit ADO auf eine Accessdatenbank. Nun habe ich zur Laufzeit eine Tabelle erstellt und möchte mit "if Tabelle.exits then" prüfen ob die Tabelle noch existiert, aber Delphi sagt Undefinierter Bezeichner "Tabelle".
Wieso, muss ich noch was definieren?
Gruss
GUFR :D
smiegel - Mo 14.06.04 08:25
Hallo,
so geht das auch nicht. Da musst Du die ADOConnection bemühen. Die weiss, welche Tabellen zur aktuellen MDB gehören.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| function TabelleExists(aCon:TADOConnection; const aTabelle:String):Boolean; var sl:TStringList; begin Result:=False; sl:=TStringList.Create; try aCon.GetTableNames(sl); Result:=(sl.IndexOf(aTabelle)<>-1); finally sl.Free; end; end;
... if TabelleExists(ADOConnection1, 'MeineTabelle') then ShowMessage('Tabelle ist vorhanden.'); ... |
GUFR - Mo 14.06.04 19:52
Titel: If Tabelle.exits then
Hallo Smiegel
Es läuft noch nicht, da ich es noch nicht ganz verstanden habe.
Präzisierung: Die Tabellen sind in einem Datamodule1, die zu prüfende Tabelle heisst Temp_name.
Frage: Muss die Function in der Programm Unit Datamodule sein. Ist aTabelle der Name meiner Tabelle "Temp_Name"?
Die ADOConnection ist im Datamodule1.
Problem: Undefinierter Bezeichner TADOConnection
Danke für die Mühe!
Gruss
GUFR
smiegel - Di 15.06.04 08:14
Hallo,
kopiere den oben geposteten Code in den implementation-Abschnitt Deines Datamodule1. Im interface-Abschnitt, nach der Deklaration von TDataModul1 musst Du die Funktion aufführen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| ... type TDataModule1=class(TDataModule) ... ... end;
function TabelleExists(aCon:TADOConnection; const aTabelle:String):Boolean; var DataModul1: TDataModule;
implementation ... |
Von nun an ist nur noch der Aufruf der Funktion selber wichtig. Dazu musst Du nur die Unit DataModul1 in den uses-Abschnitt der Unit aufnehmen, die die Funktion aufrufen will.
Delphi-Quelltext
1: 2: 3: 4:
| if TabelleExists(DataModul1.ADOConnection1, 'MeineTabelle') then ShowMessage('Tabelle ist vorhanden.'); |
GUFR - Di 15.06.04 20:08
Titel: If Tabelle.exits then
Hallo
Leider gibts immer noch ein Problem
function TabelleExists(aCon:TADOConnection; const aTabelle:String):Boolean; // <---
Habe alles nach Deinen Anweisungen reinkopiert. Im Datamodule1 oben habe ich diese Zeile und unten die ganze function eingefügt..
Nun reklamiert der Compiler folgendes bei der oberen Zeile: "Auf TabelleExists zugewiesener Wert wird niemals benützt" und das Programm kann nicht wertig compiliert werden.
Warum?
Gruss
GUFR
FaTaLGuiLLoTiNe - Di 15.06.04 22:27
GUFR hat folgendes geschrieben: |
Nun reklamiert der Compiler folgendes bei der oberen Zeile: "Auf TabelleExists zugewiesener Wert wird niemals benützt" und das Programm kann nicht wertig compiliert werden. |
Hmm diese Meldung dürfte nur ein
Hinweis sein, dass du in der Funktion TabelleExists einmal etwas an Result zuweist, wo es dem Compiler unnötig erscheint. An der Compilierung sollte es ihn aber eigentlich nicht hindern ...
GUFR - Mi 16.06.04 19:33
Titel: If Tabelle.exits then
Hallo zusammen
Es läuft. Super, danke !!
Guss
FUFR
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!