Obwohl ich erst neu dabei bin, hab ich schon das Problem bei einer Anwendung von mir vorraus gesehen . Deshalb arbeite ich NUR mit reelen Pfaden. d. h. ohne Alias. (Zweiter Nachteil, der Alias muß bei weitergabe auch weitergegeben werden)
TTable: Ich programmiere als erstes die gesamte Anwendung mit festen Pfaden, die ich nutze. Als
DatabaseName := c:\projektxy\daten1 (reelle Pfadangabe);
TableName := daten1.db (also wie bisher)
Im Query wird das ganze schwiriger. Da mußt du die sql-anweisung so schreiben, das sie (noch auf deinen PC) funktionier mit Reellen Pfadangaben. Das sollte net weiter schwer sein.
Wenn deine Anwendung fertig ist, schreibste ins Formcreate-Ereignis die entsprechenden Daten als Anweisung: (Trotzdem die Stammanweisungen belassen, da Delhi sonnst nicht Compilieren kann)
Während der Laufzeit deinen Table die Anweisungen geben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.FormCreate(Sender: TObject); var verz : string; begin verz := ExtractFilePath(ParamStr(0))+ 'DB'; Query1.Active := False; TableArtikel.ACTIVE := False; try TableArtikel.DatabaseName := verz; TableArtikel.TableName := 'Artikel.db'; TableArtikel.Active := True; except MessageBeep(0); ShowMessage ('Die Tabelle Artikel.db' + #10#13 + 'sich nicht im Unterverzeichnis "DB"') end
end; |
Noch besser währe es natürlich bei fehler, statt einer Fehlermeldung die Tabelle zu erstellen.
Ähnlich gehst du dann mit deinen Query vor.
Da ich z. Z. keinen ensprechenden Code im Kopf habe (SQL ist noch ein sprung zu hoch für mich zur zeit, hier nur die beiden wichtigsten Befehle.
Delphi-Quelltext
1: 2:
| query1.sql.clear; query1.sql.add([Deine Anweisung mit Pfaden]); |
Ich hoffe das hilft dir ein wenig weiter.
Grüße
Tala