| |
|
|
- Seite 1 - |
|
Martin Kempf | Ich versuche mal wieder, meiner Firebird Embedded Datenbank das Arbeiten mit gesammelten Transaktionen beizubringen - mir fehlt aber der Parameter für die Containerfunktionen:
db("fbExec", "#TRANSACTION", N%) db("fbExec", "#COMMIT",N%) db("fbExec", "#ROLLBACK",N%)
was ist N%?? |
|
|
| |
|
|
|
« Dieser Beitrag wurde als Lösung gekennzeichnet. » |
|
Michael W. | Dann schreib' das Token "#TRANSACTION" mal groß. |
|
|
| |
|
|
|
|
Georg Teles | Unter dem Punkt 11.9 bzw. 11.10 ist N% = m (Modus)
1 = Integer-Typ 2 = numerischer Typ mit Nachkommastellen 3 = String-Typ 4 = BLOB
s. [...] (der Link wird zu httpS umgewandelt, einfach mit http öffnen)
Grüße |
|
|
| |
|
|
|
RGH | Die Bedeutung von N% ist bei db("fbExec", ...) doch erklärt:
N% = Modus:
0 : Das Ergebnis wird direkt im Hauptfenster angezeigt (eher für DebuggingZwecke)
1 : Das Ergebnis wird es in eine Listboxliste geschrieben. Der erste Eintrag ist die Titelzeile mit den Feldnamen, der zweite eine Trennlinie
2 : Das Ergebnis wird es in eine Datei geschrieben, deren Dateiname mit set("SQLFile", name) festgelegt wird. Hat der Dateiname die Endung".xml" wird es im XML-Format geschrieben, bei der Endung ".json" im JSON-Format, ansonsten als normale Textdatei. Mit Set("SQLDel" und Set("SQLNull" kann das Ausgabeformat eingestellt werden.
-1: Das Ergebnis wird es in eine Listboxliste geschrieben. Der Modus -1 ist identisch mit dem Modus 1, liefert aber in der ersten Listbox-Zeile nicht nur die Namen der Felder, sondern - getrennt durch ein ":" - auch den Feldtyp. Hierbei bedeuten: 1 = Integer-Typ / 2 = numerischer Typ mit Nachkommastellen / 3 = String-Typ / 4 = BLOB
>2: Handelt es sich beim letzten Parameter um das Handle einer Gridbox, wird das Ergebnis in diese geschrieben, wobei die Spalten und Überschriften der Tabelle in die Gridbox übernommen werden.
Hinweis: Die Rückgabe des SQL-Befehls wird entsprechend des Modus zurückgeschrieben. Das ist natürlich besonders interessant bei SELECT-Befehlen, bei anderen ist es eher irrelevant. Die 0 sollte man dann nicht verwenden, da ein "Ok" oder "n Sätze bearbeitet" wohl selten auf dem Bildschirm erwünscht ist.
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 20.12.2020 ▲ |
|
|
|
|
Martin Kempf | ok, dann haut was nicht hin... Ich hatte es vermutet, dass es der Modus wäre, allerdings bekomme ich eine Fehlermeldung, wenn ich es so angebe: "Falscher Parametertyp: 1 Zeile... db("fbExec", "#transaction", 1) selbe Fehlermeldung auch bei Modus 0 und 2.... |
|
|
| |
|
|
|
Michael W. | db("fbExec", "#transaction", 1)
Wenn ich mir den Befehl in dieser Form anschaue, dann frage ich mich:
"Für welche Datenbankdatei denn...." (also fehlt das Handle)
db("fbExec", H, S, N)
H: Integer - Handle der Datenbank S: String - SQL-Statement N: Integer - Modus
Immer noch einmal mit der Hilfedatei abgleichen; passiert auch mir immer noch. Z.B. ist mir das in Deinem ersten Posting gar nicht aufgefallen...
Ich habe übrigens nur "fbexec" ins Suchfeld der Hilfe eingetragen. Dort wird "db:fbSQLExec" gefunden (ein alternativer Name für "fbexec").
Als "<container>:<name>" eingetragen findet die Suche die meisten Containerfunktionen direkt. Hier wird der Doppelpunkt in der Suche verwendet. |
|
|
| System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 20.12.2020 ▲ |
|
|
|
|
Martin Kempf | messerscharf ermittelt. db("fbExec", ep&, "#transaction", 0) bringt mir leider immer noch nicht das erwünschte Ergebnis sondern als Fehler "Invalid Token"... |
|
|
| |
|
|
|
Michael W. | Dann schreib' das Token "#TRANSACTION" mal groß. |
|
|
| |
|
|
|
Martin Kempf | gratuliere - das wars - da wär ich nie im Leben drauf gekommen... |
|
|
| |
|
|
|
Michael W. | Dafür ist das Forum ja da.
|
|
|
| |
|
|