Entwickler-Ecke
Datenbanken - OpenDataBase
O'rallY - Mi 31.07.02 16:38
Titel: OpenDataBase
In meinem Delphibuch (Nitty Gritty Delphi 6 von Frank Eller) ist in aller Kürze beschrieben, wie man mit Datenbanken arbeitet. Dort ist auch folgende Funktion aufgeführt (Zugriff über TTable) um die Datenbank zu erstellen:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| function TDataModule2.CreateDB(DBName: string): boolean; begin ... Table1.TableName := DBName; Table1.CreateTable; Result := OpenDataBase(DBName); end; |
Wenn ich das dann so übernehme protestiert der Compiler an dieser Stelle:
Quelltext
1:
| Result := OpenDataBase(DBName); |
Es seien zuviele Parameter übergeben worden. Tatsächlich ist die Funktion in der Hilfe nur so
function OpenDatabase: TDatabase;
aufgeführt.
Wie macht man es denn tatsächlich und warum steht in einem Lehrbuch ein solcher Fehler, wenns denn einer ist?
MrSpock - Mi 31.07.02 17:24
Hallo O'rallY,
es gibt tatsächlich zwei verschiedene Methode mit demselben Namen. Die eine hat einen Parameter, die andere nicht.
Quelltext
1:
| Session.OpenDataBase('C:\MyDB.DB); |
aber verbunden mit einem DBDataSet:
Übrigens braucht man in der Regel OpenDataBase nicht direkt aufrufen.
GPF - Mi 31.07.02 18:18
Ich benutze folgende Methode zum Öffnen bzw. Erstellen von Datenbanken auf TTable-Basis. Für andere Datenquellen muß die Routine angepaßt werden. In diesem Beispiel und dem von Dir vorgestellten Codeschnipsel muß allerdings StoreDefs der Table auf true gesetzt sein bzw. werden. Die Fehlerabfangroutinen habe ich weggelassen, da der Code sonst zu unübersichtlich werden würde.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure OpenDB (Table: TTable; DBName: string); begin if not assigned(Table) then Exit; //Abbruch falls Table nicht existiert (bzw =nil) if Table.Active and (CompareText(DBName, Table.Databasename)=0) then Exit; //Abbruch, da Endzustand bereits erreicht if Table.Open and (Table.State in [dsEdit, dsInsert]) then Table.CheckBrowseMode; //Falls Datenbank aktiv Änderungen speichern, falls vorhanden Table.Close; //Datenbank schließen, funktioniert auch wenn die Datenbank bereits geschlossen ist Table.Databasename:=DBName; if not FileExists(IncludeTrailingBackSlash(Table.Databasename)+Table.Tablename) then Table.CreateTable; //Datenbank erstellen falls nicht existent Table.Open; //Datenbank öffnen end; |
O'rallY - Mi 31.07.02 21:25
danke, es hat mir weitergeholfen!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!