![]() |
SQL Dateien als Resource einbinden.
Tutorial
SQL-Dateien als Resource einbinden http://www.delphipraxis.net/images/common/divider.jpg Autor: MaBuSE für ![]() Stand: 12.07.2005 (c) 2004-2005, MaBuSE Das Tutorial wurde mit Delphi 7 getestet Mein besonderer Dank für die Arbeit in der DP und Unterstützung für mich geht an: Daniel, Sakura, Gerome und an alle ![]() http://www.delphipraxis.net/images/common/divider.jpg Warum dieses Turorial?
mfg MaBuSE |
Re: SQL Dateien als Resource einbinden.
Ich gebe mal meine Anmerkungen dazu: :zwinker:
Man darf auch Kommentare in den SQL-Dateien einbauen. Diese Kommentare müssen aber vor dem Öffnen der Query gelöscht werden. Kommentare sind einzeilig und werden mit -- oder // eingeleitet. Dazu folgende Procedure:
Delphi-Quellcode:
Und jetzt noch das Ganze zusammengesetzt:
procedure CleanSqlStrings(SQL:TStrings);
var s : string; i : Integer; begin Assert(Assigned(SQL)); for i := SQL.Count-1 downto 0 do begin s := Copy(SQL[i],1 ,2); if (s = '--') or (s='//') then // Kommentarzeile entfernen SQL.Delete(i); end; end;
Delphi-Quellcode:
procedure LoadSQLFromResource(SQL:TStrings; const ResourceName:string);
var tmpStream: TResourceStream; begin Assert(Assigned(SQL)); tmpStream := TResourceStream.Create( HInstance, ResourceName, 'TEXT' ); try SQL.LoadFromStream(tmpStream ); // Laden CleanSQLStrings(SQL); // Kommentare löschen finally tmpStream.Free; end; end; |
Re: SQL Dateien als Resource einbinden.
Zitat:
Die Funktionalität kann man noch beliebig erweitern. Ich habe mal eine relativ komplexe Unit gebaut, in der noch viel mehr gemacht wurde.
Weitere Ansätze sind, SQL-Resourcen an DLL binden und ein einheitliches Interface schaffen (z.B. getSQL('ResourceName'):string). Diese *.dll Datei kann von mehrern Anwendungen benutzt werden. Bei Datenbankänderungen muß "nur" die *.dll Datei angepasst und ausgeliefert werden. Stichwort: DAL = Data Abstraction Layer Leider darf ich diesen Quelltext nicht veröffentlichen, da ich nicht die Rechte daran habe. (war Auftragsarbeit für einen Kunden) ... |
Re: SQL Dateien als Resource einbinden.
Warum über eine Ressourcendatei gehen? Gleiches erreicht man einfacher mit
![]() |
Re: SQL Dateien als Resource einbinden.
... oder man schreibt einfach *ALLE* Statements als Konstanten (oder Resourcestring) in eine Unit, da kann man dann sogar mit einem Conditional zwischen den Servern umschalten.
|
Re: SQL Dateien als Resource einbinden.
Zitat:
Die Dateien liegen wiederum in einer Versionsverwaltung und werden von mehreren Programmierern bearbeitet. Die SQL Dateien können so sehr leicht in z.B: TOAD benutzt und erweitert werden. In dem Projekt waren es ca. 2700 SQL Dateien (komplexe Verzeichnisstruktur). Und ca. 15 Leute die diese Dateien bearbeitet haben. (Alles keine Delphi Programmierer!) Es gab ein paar Duzend *.dll Dateien die SQL-Dateien nach der obigen Methode eingebunden haben. (Jeweils ein Subset, aber auch redundante Statements) Das ist der Grund warum ich das damals so gelöst habe. |
Re: SQL Dateien als Resource einbinden.
Zitat:
Zitat:
Zitat:
Allerdings hat man sehr selten so große Projekte! |
Re: SQL Dateien als Resource einbinden.
Zitat:
Ach ja, die SQL-Dateien (*.res) wurden auch in anderen Programmiersprachen verwendet (C++) Damals haben wir die *.rc Datei mit dem Resourcencompiler in eine *.res Datei umgewandelt, aber Delphi kann das ja auch in der IDE :-) Ich habe neulich in der Firma in derich jetzt arbeite eine ähnliche Problematik gehabt, und das zum Anlass genommen dieses Tutorial zu schreiben. |
Re: SQL Dateien als Resource einbinden.
[OT]
Zitat:
Im Moment arbeite ich in einer Firma und mache den Support für ca. 40 Delphi Entwickler.[/OT] |
Re: SQL Dateien als Resource einbinden.
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz