Seite 1 von 1

[gelöst] Macro-Syntax

Verfasst: So, 12.03.2023 11:30
von hk3003
Hallo Forum,
in der Beispieldatenbank Zeitmessung ist ein Macro bei dem ich 2 Zeilen nicht ganz verstehe:

Code: Alles auswählen

SUB Zeitmessung_Start_System(oEvent AS OBJECT)
	DIM oForm AS OBJECT
	DIM oFeld AS OBJECT
	DIM oConnection AS OBJECT
	DIM oSQL_Statement AS OBJECT
	DIM stStartzeit AS STRING
	DIM stSql AS STRING
	DIM loZeit AS LONG
	oForm = oEvent.Source.Model.Parent
	stStartzeit = Left(oForm.getString(oForm.findColumn("Startzeit")),19)	<-- was passiert hier genau?
	loZeit = getSystemTicks() ' Gibt die Systemzeit in Millisekunden an
	oConnection = oForm.activeConnection()
	oSQL_Statement = oConnection.createStatement()
	stSql = "UPDATE ""T_Zeitspeicher"" SET ""Zeitspeicher"" =  '"+loZeit+"' WHERE ""Startzeit"" = '"+stStartzeit+"'"	<-- wozu die Pluszeichen?
	oSQL_Statement.executeUpdate(stSql)
END SUB
ich hoffe es kann mir jemand helfen,
lg heinz

Re: Macro-Syntax

Verfasst: Mo, 13.03.2023 08:34
von RobertG
Hallo Heinz,

da ich die Datenbanken und die Beschreibung erstellt habe hier zur ersten Frage ein Verweis auf die Beschreibung zu den Beispielen:
Aus dem Feld "Startzeit" soll der Zeitstempel für die Startzeit ausgelesen werden (Zeile 10). Dieser kann auch Nachkommastellen enthalten. Deshalb wird der Wert als String ausgelesen und berücksichtigt nur die ersten 19 Zeichen (10 Zeichen für das Datum, ein Leerzeichen, 8 Zeichen für die Zeit).
In der Variable stSql wird ein Text gespeichert. Der Text wird dabei zusammengesetzt aus SQL-Code und einigen Variablen. Mit + oder & werden einzelne Elemente im Makro verbunden. Du könntest also die + - Zeichen auch durch & - Zeichen ersetzen.

Gruß

Robert

Re: Macro-Syntax

Verfasst: Mo, 13.03.2023 15:33
von hk3003
Hallo Robert,
In der Variable stSql wird ein Text gespeichert. Der Text wird dabei zusammengesetzt aus SQL-Code und einigen Variablen. Mit + oder & werden einzelne Elemente im Makro verbunden. Du könntest also die + - Zeichen auch durch & - Zeichen ersetzen.
Es ist mir noch immer nicht klar warum die + Zeichen am Anfang und am Ende der Feldnamen sind. Noch dazu sind sie - nach meiner Logik - ja von Hochkomma begrenzt und daher zum Namen gehörend? Oder bewirken diese Steuerzeichen (+), dass hier keine Tabellen- oder Formularfelder eingebunden werden?
Ich hoffe ich bin nicht zu lästig,
lg heinz

Re: Macro-Syntax

Verfasst: Mo, 13.03.2023 16:39
von RobertG
Hallo Heinz,

wenn Du den Code im Editor von Base siehst wird Dir das durch die Farbgebung schneller klar.

Code: Alles auswählen

"…""Zeitspeicher"" =  '"
Damit endet der erste Textteil

Code: Alles auswählen

+loZeit
Damit wird die Variable loZeit an den vorhergehenden Textteil angehängt.

Code: Alles auswählen

+"' WHERE …"
Und hiermit folgt wieder Text.
Die einfachen Anführungszeichen stehen in dem vorgefertigten Textteil. Sie wären bei loZeit auch nicht notwendig, weil es sich dabei ja um eine Zahl handelt. Text muss in SQL hingegen auf jeden Fall in einfache Anführungszeichen gesetzt werden.

Gruß

Robert

Re: Macro-Syntax

Verfasst: Mo, 13.03.2023 17:29
von hk3003
Hallo Robert,
Screenshot 2023-03-13 172500.png
Screenshot 2023-03-13 172500.png (4.95 KiB) 1934 mal betrachtet
jetzt ist mir das klar! Und das gilt nur für Variablen?
lg heinz

Re: Macro-Syntax

Verfasst: Di, 14.03.2023 10:35
von RobertG
Hallo Heinz,

Du kannst auch Text mit Hilfe von + oder & ganz normal verbinden.

Gruß

Robert

Re: Macro-Syntax

Verfasst: Di, 14.03.2023 13:33
von hk3003
Hallo Robert,
danke für die intensive Unterstützung und Kompliment für das Handbuch,
lg heinz