Seite 1 von 1

Makro: SQL Code einer Abfrage auslesen und BASIC gerecht formatieren zur Verwendung in executeUpdate()

Verfasst: Sa 24. Sep 2016, 23:27
von EinsamerBaumWald
Hallo,

ich weiß, wie ich in einem Makro SQL-Befehle absetzen kann. Zwecks der besseren Lesbarkeit schreibe ich den SQL Code eingerückt in einer Abfrage (SQL-Kommando direkt ausführen angehakt). Nun würde ich gerne wissen, wie ich in einem Makro den SQL-Code direkt aus der Abfrage auslesen kann.
Der String müsste um die Zeilenumbrüche und Tabs bereinigt werden, die Anführungszeichen verdoppelt, um ihn dann an oSQL_Statement.executeUpdate() zu übergeben.

Hintergrund:
Es handelt sich um UPDATE, INSERT INTO - Befehle, die ich aus der Abfrage heraus gar nicht ausführen kann, diese dient nur zum Speichern wg. der Übersichtlichkeit bei der Erstellung des Codes.
Ich möchte mir das manuelle Copy & Paste und umformatieren sparen.
Außerdem wäre es schön, die Daten nicht zweimal in einer Datei speichern zu müssen.


Vielen Dank!

Grüße,
EinsamerBaumWald

Re: Makro: SQL Code einer Abfrage auslesen und BASIC gerecht formatieren zur Verwendung in executeUpdate()

Verfasst: Sa 25. Feb 2017, 09:59
von gogo
SQL-Code:

Code: Alles auswählen

thisDatabaseDocument.DataSource.QueryDefinitions.getByIndex(3).Command
.getByIndex(3) verweist auf Abfrage 3 (gezählt wird von 0 bis n). Da kannst Du auch .getByName("MeineAbfrage") verwenden.

zwecks Übersichtlichkeit:
kann man im Makrobereich auch übersichtlich gestalten. z.B. so:

Code: Alles auswählen

sSQL = "Select                                           " & _
	 " 	Preis,                                          " & _
	 " 	Artikelname                                     " & _
	 " from                                               " & _
	 " 	Artikel                                         " & _
	 " where                                              " & _
	 " 	ID_Artikel = " & cStr(sArtikelnummer)             & _
	 " order by                                           " & _
	 " 	Preis"
wird dann natürlich komplexer, wenn man " braucht ...
cave: Nach den "_" MUSS DIREKT EIN ZEILENUMBRUCH FOLGEN.