AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi datenbank per skript erstellen lassen
Thema durchsuchen
Ansicht
Themen-Optionen

datenbank per skript erstellen lassen

Ein Thema von sancho1980 · begonnen am 12. Jul 2006 · letzter Beitrag vom 12. Jul 2006
Antwort Antwort
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#1

datenbank per skript erstellen lassen

  Alt 12. Jul 2006, 10:50
Datenbank: firebird • Version: 1.5 • Zugriff über: ibx, ibexpert
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
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: datenbank per skript erstellen lassen

  Alt 12. Jul 2006, 11:22
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.
Gruß
Hansa
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: datenbank per skript erstellen lassen

  Alt 12. Jul 2006, 11:55
Hallo Martin,

wenn du es zur Laufzeit brauchst, dann denke dir einfach ein paar passende Metazeichen aus, welche deine Variablen identifizieren:

Code:
CREATE TABLE {TBL} (ID INTEGER, TXT VARCHAR(1000))
Dann schreibe dir eine Funktion, welche diese Variablen mit Werten belegt:

Delphi-Quellcode:
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;
Getippt und nicht getestet.

Grüße vom marabu
  Mit Zitat antworten Zitat
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#4

Re: datenbank per skript erstellen lassen

  Alt 12. Jul 2006, 12:47
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...
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: datenbank per skript erstellen lassen

  Alt 12. Jul 2006, 12:53
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.
Markus Kinzler
  Mit Zitat antworten Zitat
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#6

Re: datenbank per skript erstellen lassen

  Alt 12. Jul 2006, 16:00
Zitat von mkinzler:
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.

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.
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: datenbank per skript erstellen lassen

  Alt 12. Jul 2006, 16:24
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.
Markus Kinzler
  Mit Zitat antworten Zitat
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#8

Re: datenbank per skript erstellen lassen

  Alt 12. Jul 2006, 16:44
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?
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#9

Re: datenbank per skript erstellen lassen

  Alt 12. Jul 2006, 22:43
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 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