Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   SQL script zu groß für TStrings. Alternative? (https://www.delphipraxis.net/210896-sql-script-zu-gross-fuer-tstrings-alternative.html)

Kostas 27. Jun 2022 15:55

SQL script zu groß für TStrings. Alternative?
 
Hallo Zusammen,

mein DDL SQL Script für die Neuanlage ist über 186.000 Zeilen lang.
Bisher konnte ich über IBExpert/ExtractMetaData(nur Struktur ohne Daten) das Script in ein TJvMultiStringhHolderCollectionItem schreiben.
Dieses Script und ein paar weitere items um default Werte zu setzen wird der Reihe nach in ein TFDScript geladen und ausgeführt.
Hat bisher funktioniert. Jetzt ist das Script zu groß so dass ich es nicht mehr über die Zwischenablage in ein Item kopieren kann. Der Text wird abgeschnitten. Wenn ich es händisch aufteile in mehrere Items dann funktioniert es. Allerdings steigt die Gefahr dass ich beim Ausschneiden etwas falsch mache. Kennt jemand eine andere Komponente die mehrere String aufnehmen kann und dessen Limitierung größer ist als bei TStrings?

Gruß Kostas

himitsu 27. Jun 2022 16:08

AW: SQL script zu groß für TStrings. Alternative?
 
Auf Strg+V und/oder Shift+Einfg und/oder das Kontextmenü und/oder WM_COPY regaieren, Clipboard.AsText und dann im Code aufteilen und Mehreren Items zuweisen.

Kostas 27. Jun 2022 17:01

AW: SQL script zu groß für TStrings. Alternative?
 
Sorry für das Missverständnis.

Aktuell habe ich den String des SQL-Scripts zur Entwurfszeit über die Zwischenablage in das TStrings Items hinzugefügt.
Ich habe jetzt das Script über eine Resource in die .exe compiliert. Das funktionierte einwandfrei. Ich darf nur nicht vergessen jedes mal beim Update des Scripts die Resourcendatei über brcc32.exe erneut zu erzeugen. Vermutlich ist das eh die bessere Methode dafür.

Gruß Kostas

himitsu 27. Jun 2022 17:43

AW: SQL script zu groß für TStrings. Alternative?
 
Über den Resourcen-Editor (Projekt > Ressourcen und Bilder)
eine Text-Datei als RCCATA einbinden

oder

die *.rc in der ProjektDatei (DPR/DPK) einbinden (Text/RessourceStrings in direkt RC oder als FileLink)

Delphi-Quellcode:
{$R xyz.res xyz.rc}
bzw.
Delphi-Quellcode:
{$RESOURCE xyz.res xyz.rc}
(optional als
Delphi-Quellcode:
'xyz.res'
, auch inkl. Verzeichnis)
Hier kompiliert der Compiler die RES (bzw. das Projekt/DPROJ führt den BRCC32 automatisch aus)

Funktioniert aber nur im Projekt und nicht in einer PAS ... dort wird leider, ohne Fehlermeldung, der zweite Parameter ignoriert.

Sinspin 27. Jun 2022 17:54

AW: SQL script zu groß für TStrings. Alternative?
 
Ich habe auch ein paar Projekte die ihre eigene DB erstellen. Dafür gibt ein Verzeichnis in dem alle Scripte liegen. Wenn Delphi die Exe neu erstellt wird via Buildereignis eine Unit aktualisiert die komprimiert und verschlüsselt die ganzen Scripte als Konstanten enthält.
Zur Laufzeit kümmert sich dann eine Komponente um den Zugriff auf die Daten.
Genauso könnte man die Sachen auch huckepack an die Exe anhängen. Damit haben aber immer malwieder einige Vierenscanner ein Problem.

himitsu 27. Jun 2022 18:03

AW: SQL script zu groß für TStrings. Alternative?
 
Zitat:

Zitat von Sinspin (Beitrag 1507983)
Genauso könnte man die Sachen auch huckepack an die Exe anhängen. Damit haben aber immer malwieder einige Vierenscanner ein Problem.

Nicht wenn du sie als Ressource angängst/einfügst. (geht auch nachträglich)

oder als PE-Section

Kostas 27. Jun 2022 20:09

AW: SQL script zu groß für TStrings. Alternative?
 
Zitat:

Zitat von himitsu (Beitrag 1507979)
Funktioniert aber nur im Projekt und nicht in einer PAS ... dort wird leider, ohne Fehlermeldung, der zweite Parameter ignoriert.

Perfekt, danke für den Hinweis.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 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