| |
|
|
Tommy | Ich versuche nach gelungenem Connect mit der Firebird embedded Version Datensätze anzufügen und experimentiere an einer Übung aus dem Profanbuch. Wo liegt denn mein Fehler im beigefügten Source? Ich habe dreimal das selbe SQL-Statement an die Datenbank gesendet, das Statement mit den Variablen (:Varname$,..) endet mit der Fehlermeldung -Column does nor belong to referenced table-, während die beiden anderen Statements durchlaufen. Wer kann mir dabei auf die Sprünge helfen? KompilierenMarkierenSeparieren $I firebird.inc
declare Exec$,db&, HST_Name$, HST_Ort$
window 500,500
cls
var fbDLL& = fbUseDLL("fbclient.dll")
' Datenbank erzeugen, falls nicht vorhanden, und Verbindung herstellen
ifnot fileexists("3TSDatabase.fdb")
db& = fbCreate("SYSDBA", "masterkey", "3TSDatabase.fdb")
else
db& = fbInit("SYSDBA", "masterkey", "3TSDatabase.fdb")
endif
Set("Errorlevel", -1)
Exec$="DROP TABLE Haltestelle"
fbSQLExec(db&, Exec$, 0)
Set("Errorlevel",0)
Exec$="create table Haltestelle (HST_Name CHAR(40), HST_Ort CHAR(40), XKoord NUMERIC(10,8), YKoord NUMERIC(10,8))"
fbSQLExec(db&, Exec$, 0)
HST_Name$="aus dem Name$-Dummy"
HST_Ort$="aus dem Ort$-Dummy"
'Exec$="INSERT INTO Haltestelle (HST_Name,HST_Ort) VALUES ('slkjlskjlsfkjsf','lkhjljlkjlkj')" 'Statement 1 -OK
'Exec$="INSERT INTO Haltestelle (HST_Name,HST_Ort) VALUES (:HST_Name$,:HST_Ort$)" 'Statement 2 Fehler- Column does nor belong to referenced table
Exec$="INSERT INTO Haltestelle (HST_Name,HST_Ort) VALUES ('"+HST_Name$+"','"+HST_Ort$+"')"'Statement 3 -OK
fbSQLExec(db&, Exec$, 1)
Exec$="SELECT * FROM Haltestelle"
fbSQLExec(db&, Exec$, 1)
Listbox$("Tabelle Haltestelle",2)
fbDone(db&)
fbFreeDll(fbDLL&)
waitinput
end
|
|
|
| |
|
|
|
E.T. | Ohne jetzt mal angestrengt drüber nach zu denken: Tippe mal auf die Doppelpunkte bei :HST_Name$,:HST_Ort$ .
Mal so probiert ?? KompilierenMarkierenSeparierenExec$="INSERT INTO Haltestelle (HST_Name,HST_Ort) VALUES (HST_Name$,HST_Ort$)"
|
|
|
| XProfan X2Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 13.01.2014 ▲ |
|
|
|
|
Tommy | Hab ich alles probiert: Doppelpunkt weglassen : gleiche Fehlermeldung, Anführungszeichen setzen usw.. Leider kein Ergebnis. Die Vorgabe mit den Doppelpunkten kommt aus dem Buch: Programmieren kinderleicht mit Xprofan, Teil3 : SQL-Datenbanken mit Firebird. Konnte sonst leider keine Quelle entdecken. Ich kann aber nicht glauben, dass man den String vorab durch Zusammensetzen bilden muss, um die Daten in die Datenbank zu bekommen..... |
|
|
| |
|
|
|
Tommy | Ist erledigt: Habe es mit Hilfe einer Antwort im Forum von Jörg Sellmeyer gefunden: Lösung siehe Code. Scheint noch ein wenig trickreich mit den vielen Anführungsstrichen..... KompilierenMarkierenSeparierenExec$="INSERT INTO Haltestelle (HST_Name,HST_Ort) VALUES ('" + HST_Name$ + "','" + HST_Ort$ + "')"
|
|
|
| |
|
|
|
E.T. | Da wundert mich aber, das sich Dietmar nicht zu Wort meldet. Er sollte doch Xprofan - Firebird - Spezialist sein |
|
|
| XProfan X2Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 15.01.2014 ▲ |
|
|
|
|
Tommy | Ich denke ich mach da irgendwas falsch. Die Strings habe ich auf die beschriebene Weise nach Firebird gequetscht, aber numerische Daten lassen sich nur auf nachstehende Weise in die Datenbank laden. Entweder ich gebe die Daten direkt im INSERT-String an oder ich hole sie in eine String-Variable (als Zahl ??) und übergebe sie dann direkt einer numerischen Datenbankvariable. Eine numerische Variable im Insert-String zu übergeben ist nicht möglich. Liegt's an den Anführungszeichen? Ich blick zur Zeit durch die Systematik noch nicht durch. Gibt's weiterführende Literatur zum Thema? Da wäre ein Rat der Spezialisten hilfreich..... KompilierenMarkierenSeparierenTabellendefinition:
Exec$="create table Haltestelle (HST_Name CHAR(40), HST_Ort CHAR(40), XKoord FLOAT, YKoord FLOAT)"
VarDef:
HST_KoordX$=23.66666
HST_KoordY$=10.45555
Insertstring:
Exec$="INSERT INTO Haltestelle (HST_Name,HST_Ort,XKoord) VALUES ('" + HST_Name$ + "','" + HST_Ort$ + "',10.45555, 23.66666)"
oder
Exec$="INSERT INTO Haltestelle (HST_Name,HST_Ort,XKoord,YKoord) VALUES ('" + HST_Name$ + "','" + HST_Ort$ + "','" + HST_KoordX$ + "','" + HST_KoordY$ + "')"
|
|
|
| |
|
|
|
E.T. | |
|
| XProfan X2Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 15.01.2014 ▲ |
|
|
|