Hallo,
Ich habe oft den Fall, dass ich längere mehrzeilige
SQL-Queries als String brauche. Entsprechende Einfüge-Funktionen gibts in MMX, CnPack und GExperts, nur dummerweise bei keinem so wie ich es bräuchte. Ein Beispiel:
Code:
SELECT T1.A AS NAME_1,
T2.A AS NAME_2,
T2.B AS NAME_3
FROM MY_TABLE_1 AS T1
LEFT JOIN MY_TABLE_2 AS T2
ON T1.KEYFIELD=T2.KEYFIELD
WHERE T2.C=:MY_PARAM_1
ORDER BY T2.B;
Daraus sollte werden:
Delphi-Quellcode:
'SELECT T1.A AS NAME_1, ' +
'T2.A AS NAME_2, ' +
'T2.B AS NAME_3 ' +
'FROM MY_TABLE_1 AS T1 ' +
'LEFT JOIN MY_TABLE_2 AS T2 ' +
'ON T1.KEYFIELD=T2.KEYFIELD ' +
'WHERE T2.C=:MY_PARAM_1 ' +
'ORDER BY T2.B;';
Für sowas wäre es ideal, wenn Delphi HereDoc unterstützen würde anstatt dass man solche Klimmzüge machen muss. In meinem Fall scheidet auch die sauberere Lösung mit den Resourcenstrings aus, weil ich die Queries dynamisch zusammenbauen muss. Am nächsten dran ist für meinen Bedarf noch GExperts. Allerdings muss ich hier dann noch einen zweiten Schritt gehen und alle "'," in "' +" ersetzen. CnPack und MMX konvertieren jeweils noch die Zeilenumbrüche in "#13#10", was ja hier im Fall von
SQL völlig unnötig ist.
Insgesamt halt ein bissl mühselig bei langen Queries. Der oben gezeigte ist ja noch winzig im Vergleich...
Grüße
Cody