Datenbank: firebird • Version: 1.5 • Zugriff über: ibx, ibexpert
datenbank per skript erstellen lassen
hallo, eine frage:
angenommen ich habe eine anwendung, die auf einen firebird-server zugreift jetzt will ich folgendes erreichen: auf dem firebird-server soll ein sql-skript liegen, welches eine datenbank mit tabellen und allem pipapo erstellt; dinge wie bsp der datenbank-name sollen aber als makros oder variablen erklärt sein, so dass ich aus meiner anwendung heraus diese variablen erst mit werten belege und das skript dann ausführen lasse, geht das irgendwie? danke, martin |
Re: datenbank per skript erstellen lassen
Guck Dir mal IBEscript an (IBExpert). Der Haken an solchen Geschichten ist allerdings, daß alles was da geändert wird auch dem Programm bekannt sein muß. Den Datenbanknamen lasse ich mir ja noch gefallen. Aber was weit darüber hinausgeht ist eher kontraproduktiv.
|
Re: datenbank per skript erstellen lassen
Hallo Martin,
wenn du es zur Laufzeit brauchst, dann denke dir einfach ein paar passende Metazeichen aus, welche deine Variablen identifizieren:
Code:
Dann schreibe dir eine Funktion, welche diese Variablen mit Werten belegt:
CREATE TABLE {TBL} (ID INTEGER, TXT VARCHAR(1000))
Delphi-Quellcode:
Getippt und nicht getestet.
function ProcessScript(fn: TFileName; s: TStrings): String;
var i: Integer; varname: String; script: TStringList; begin script := TSTringList.Create; script.LoadFromFile(fn); for i := 0 to Pred(script.Count) do repeat varname := Between(script[i], '{', '}'); if varname = '' then Break else script[i] := Before(script[i], '{') + s.Values[varname] + After(script[i], '}'); until False; Result := script.Text; script.Free; end; Grüße vom marabu |
Re: datenbank per skript erstellen lassen
nein, ich meinte es anders: das skript soll ja als sql-datei auf dem server liegen, und nicht auf dem rechner der client-anwendung
die client-anwendung soll dann den server veranlassen, die variablen im skript zu belegen und das skript auszuführen... |
Re: datenbank per skript erstellen lassen
Der Client muß dafür aber die Datei laden und gegen den SQL-Server ausführen. Und diesem Zug kannst du ja die "Makro"-Ersetzung durchführen.
|
Re: datenbank per skript erstellen lassen
Zitat:
Aber genau das will ich verhindern Weil das Skript zu Erzeugung der Datenbank so groß ist, will ich verhindern, dass es zwischen Client und Server wandern muss und einfach vom Client aus den Server 'auffordern', das Skript von einem bestimmten Pfad auszuführen. |
Re: datenbank per skript erstellen lassen
Dann muß dort ja ein spezielles Serverprogramm laufen, welches dies für dich erledigt. In diesem Programm kannst du dann auch die Ersetzung durchführen.
|
Re: datenbank per skript erstellen lassen
ich hab eigentlich gedacht, dass ich in meinem delphi-client einfach ein ibscript nehme, in dem einfach nur eine sql-anweisung steht, die den server veranlasst, dass lokale skript zu generierung der datenbank auszuführen..das geht ja, bloß wie mach ich das mit den makros?
|
Re: datenbank per skript erstellen lassen
Wenn dein Skript SO GROSS ist, wie du sagst, denk ich ist der grösste Zeitverlust nicht das Hochladen des Skriptes zum Server (bzw. das Ausführen des Skriptes vom Client aus), sondern die Ausführung des Skriptes an sich.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz