| |
|
|
- Seite 1 - |
|
H.Brill | Hätte eine Frage : Ist die Einbettung von Variablen auch in Firebird möglich ?
db("fbSQLExec", hdb&, "CREATE TABLE PREISE (WG NUMERIC(2,0), NUM NUMERIC(4,0), ARTIKEL CHAR(50), EINHEIT CHAR(4), PREIS CHAR(12))", 1)
WhileLoop 0, GetCount(0) - 1
WG = SubStr$(GetString$(0, &LOOP), 1, "|")
NUM = SubStr$(GetString$(0, &LOOP), 2, "|")
ARTIKEL = SubStr$(GetString$(0, &LOOP), 3, "|")
EINHEIT = SubStr$(GetString$(0, &LOOP), 4, "|")
PREIS = SubStr$(GetString$(0, &LOOP), 5, "|")
db("fbSQLExec", hdb&, "INSERT INTO PREISE (WG,NUM,ARTIKEL,EINHEIT,PREIS) VALUES (:WG,:NUM,':ARTIKEL ',':EINHEIT ',':PREIS ')" , 1)
EndWhile
In obiger Schleife möchte ich gerne eine Textdatei mit | als Spalten-Trenner, die ich in die interne Listboxliste eingelesen habe, in eine Firebird DB schreiben.
Ist das bei Firebird überhaupt möglich, bzw. oder ist die Einbettung nur in SQL statthaft ?
Oder wie könnte man es auch noch machen ? |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 30.12.2015 ▲ |
|
|
|
|
« Dieser Beitrag wurde als Lösung gekennzeichnet. » |
|
H.Brill | So, habs selber rausgefunden. Die embedded Variablen gehen nur, wenn sie als Variablen mit Postfix ($,!,%,& usw.) deklariert wurden. Da ich mittlerweile gerne auch mit vorangestelltem Typ deklariere, ist mir das auch nicht aufgefallen.
Wäre vielleicht ein Verbesserungsvorschlag, wenn Roland auch diese Variablen mit einbezieht. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 30.12.2015 ▲ |
|
|
|
|
|
Jörg Sellmeyer | Ich kann es nicht wirklich beantworten, da ich mich mit diesem DB-Kram nicht auskenne. Wenn, dann würde ich es so machen:
Declare txt1$,txt2$,txt3$
txt1$ = "..."
txt2$ = "..."
txt3$ = "..."
db("fbSQLExec", hdb&, "INSERT INTO PREISE (" + txt1$ + "," + txt2$ + "," + txt3$ + ") VALUES (:WG,:NUM,':ARTIKEL ',':EINHEIT ',':PREIS ')" , 1)
Bei den hinteren Angaben der Variablen bei Bedarf auch noch so verfahren. |
|
|
| |
|
|
|
H.Brill | So, habs selber rausgefunden. Die embedded Variablen gehen nur, wenn sie als Variablen mit Postfix ($,!,%,& usw.) deklariert wurden. Da ich mittlerweile gerne auch mit vorangestelltem Typ deklariere, ist mir das auch nicht aufgefallen.
Wäre vielleicht ein Verbesserungsvorschlag, wenn Roland auch diese Variablen mit einbezieht. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 30.12.2015 ▲ |
|
|
|
|
| @Jörg: andersum, insert into preise (spalte,spalte,...) values (wert,wert,...) |
|
|
| |
|
|
|
Jörg Sellmeyer | Ich sag ja, dass ich mich damit nicht auskenne - Recht hatte ich trotzdem |
|
|
| |
|
|
|
| War mir schon klar, wollte nur weil sichs gut merken lässt... |
|
|
| |
|
|
|
Jörg Sellmeyer | H.Brill (30.12.2015)
So, habs selber rausgefunden. Die embedded Variablen gehen nur, wenn sie als Variablen mit Postfix ($,!,%,& usw.) deklariert wurden. Da ich mittlerweile gerne auch mit vorangestelltem Typ deklariere, ist mir das auch nicht aufgefallen.
Wäre vielleicht ein Verbesserungsvorschlag, wenn Roland auch diese Variablen mit einbezieht.
Das mit der Typendeklaration wird wahrscheinlich auch klappen. Du musst die Variablen dann aber auch richtig in den String einfügen. So wie du es oben gemacht hast, bleiben sie ja im String als Literal und nicht als Variable. |
|
|
| |
|
|
|
H.Brill | Nö, das ist schon richtig so. Die XProfanhilfe sagt bei db("SQLExec",....) :
db("SQLExec", "INSERT INTO ueb VALUES (:nummer%,:artikel$,:preis!)",0)
Das hat Roland bloß schon geschrieben, lange bevor es die Typdeklaration mit z.B.
gab. Der Doppelpunkt vor der Variable zeigt an, daß es sich im Befehl (String) für db("SQLExec",..) um eine Variable handelt und dementsprechend ersetzt wird.
So, wie Roland es beim neuen Update von Freeprofan mit den Strings allgemein eingebaut hat : [...]
Dort wird im Stringliteral eine Variable anhand von \:variable erkannt.
Wie schon bereits gesagt, hat Roland bei SQL das für die neue Typ-Deklaration noch nicht berücksichtigt. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 31.12.2015 ▲ |
|
|
|