Thema: Delphi Fehler in SQL-Syntax

Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#12

AW: Fehler in SQL-Syntax

  Alt 19. Sep 2017, 14:12
Gehen wir mit Uwes Vorschlag noch etwas weiter und ignorieren den von haentschman:

Die Scripte werden als Dateien gespeichert und zur Laufzeit geladen. Hat den Vorteil, man muss bei Scriptänderungen nicht auch das Programm ändern. Man lädt einfach nur die Scripte und gut ist:
Delphi-Quellcode:
function TDMLSQLite.CreateTblHtml :String; // "ContentMasterData". ContentMasterData.
  var SQLString: TStringList;
begin
  SQLString := TStringList.Create;
  SQLString.LoadFromFile('TblHtml.sql');
  Result := SQLString.Text;
  SQLString.Free;
Wenn man's noch weiter vereinfacht, dann übergibt man den Namen des Scriptes als Parameter und muss nicht mehr für jede Tabelle ... eine eigene Funktion erstellen.
SQL-Code:
-- Erstellscript für die Tabelle tbl_html
-- Scriptedate: tbl_html.sql
CREATE TABLE tbl_Html(
  idHtml INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
  MenueCSS INTEGER NOT NULL CHECK(MenueCSS>=0),
  PageCSS INTEGER NOT NULL CHECK(PageCSS>=0),
  MenueID INTEGER NOT NULL CHECK(MenueID>=0),
  HTMLPage LONGTEXT NOT NULL,
  URL VARCHAR(45) NOT NULL,
  tbl_Javascript_idJavascript INTEGER NOT NULL,
  tbl_CSS_idCSS INTEGER NOT NULL CHECK(tbl_CSS_idCSS>=0),
  tblgalerie_Gallery_ID INTEGER NOT NULL CHECK(tblgalerie_Gallery_ID>=0),
  CONSTRAINT fk_tbl_Html_tbl_Javascript1
    FOREIGN KEY(tbl_Javascript_idJavascript)
    REFERENCES tbl_Javascript(idJavascript),
  CONSTRAINT fk_tbl_Html_tbl_CSS1
    FOREIGN KEY(tbl_CSS_idCSS)
    REFERENCES tbl_CSS(idCSS)
  CONSTRAINT fk_tbl_Html_tblgalerie1
    FOREIGN KEY(tblgalerie_Gallery_ID)
    REFERENCES tblgalerie(Gallery_ID)
);
Delphi-Quellcode:
function TDMLSQLite.CreateTbl(AScriptName : String) :String;
  var SQLString: TStringList;
begin
  if FileExists(AScriptName) then begin
    SQLString := TStringList.Create;
    SQLString.LoadFromFile(AScriptName);
    Result := SQLString.Text;
    SQLString.Free;
  end else begin
    MessageDlg(Format('Script nicht gefunden: %s',[AScriptName]),mtError,[mbOK],0);
  end;
end;
Vorteil:
Funktionierende Scripte kann man nicht mehr versehentlich "verunstalten".
Scriptänderungen haben keine direkte Auswirkung auf das Kompilat des Programmes.

Geändert von nahpets (19. Sep 2017 um 14:13 Uhr) Grund: Schreibfehler - wie immer :-(
  Mit Zitat antworten Zitat