Amiga-Fan hat folgendes geschrieben: |
...wenn ich die DB wechsle, lege ich über variablen die aktuelle db, die queries und die transaktion fest. Nachher greife ich auf diese Variablen zu und übergebe sie dieser prozedur.... |
So ungefähr war es zu erwarten.
Ein Denkfehler produziert wohl einige Folgefehler. Es ist überhaupt kein Problem eine Datenbank zu benutzen und irgendwann eine andere. Ich habe hier bestimmt 10 verschiedene DBs. Test-DB, welche mit Originaldaten usw. Dabei wird gar nichts übergeben, außer dem ConnectionString zur DB. In der Praxis sieht es so aus, dass der DB-Name in einer INI im Programm-Verzeichnis liegt und die wird notfalls eben manuell geändert.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| Ini := TIniFile.Create (ExtractFilePath (ParamStr (0)) + 'DB.INI'); DatenBankName := Ini.ReadString('Datenbank','Name',ExtractFilePath (ParamStr (0))+'db\XXX.fdb') DM.DataBase.Close; DM.DataBase.DatabaseName := DatenBankName; DM.DataBase.Open; DM.Transaction.Active := true; Ini.free; |
Sollte Bedarf bestehen, die DB auch während des Programmlaufes zu wechseln, dann wäre der Code, der die INI betrifft auch leicht durch eine ComboBox etc. zu ersetzen. Es geht lediglich um : Database.Close -> genauen Datenbanknamen angeben -> Database.Open. Alles andere bleibt gleich. Würdest Du bei 10 DBs allen eine extra TDataBase, TTransaction usw. spendieren ?
