| 

.NET C# Java Javascript Exception

1
Guten Tag Leute,

Ich habe eine kleine Frage entsprechend eines Syntax.

Vieleicht könnt ihr mir helfen.



UPDATE StRz SET Name=CASE WHEN IntRowId=2 THEN john END


Ich bin mir fasst sicher das der Syntax falsch ist, jedoch finde ich keine erklärung wie man das richtig schreibt mit einer Bedingung,

die 2 und das john wird variabel aus meinem Java app initialisiert.

Vielen Dank im Vorraus, grüße

KS
News:
16.09.2009
Kampfsalat 25 1 4
3 Antworten
2
UPDATE StRz SET Name=CASE WHEN IntRowId=2 THEN 'john' Else Name END

1. 'john' muss ein String sein oder gebunden werden
2. ein Else-Zweig muss glaub ich existieren, damit nicht Null in Name geschrieben wird

Alternativ:

UPDATE StRz SET Name='john' where IntRowId=2
16.09.2009
Floyd 14,6k 3 9
Floyd 14,6k 3 9
0
Super, danke dir vielmals,

Bekomme weiterhin Exceptions, wird wohl aber an der DB liegen, und nicht am Befehl.


horror sowas als SQL-noob ;-)


Grüße
16.09.2009
Kampfsalat 25 1 4
Für Antworten auf Antworten gibt es übrigens die Kommentar-Funktion unter jeder "richtigen" Antwort.
Blauesocke 16.09.2009
Welche Exeption bekommst du den? Schreib Sie einfach hier mal rein, dann können wir dabei vieleicht auch helfen :D
Floyd 16.09.2009
ich bekomme eine GDS Exception 335544569. Dynamic SQL Error.
SQL error code=-206
Column unknown
SANDKASTCHEN
at line1 column 35

und das ganze kommt wenn ich
Statement stmt initialisiert.

stmt.executeUpdate(sqlString); mache

der sqlString ist wie der von Floyd(danke nochma) in der Alternative geschrieben, nur halt mit Variablen(dürfte keine rolle speilen)
Kampfsalat 16.09.2009
Noch zu erwähnen, das ich mit Jaybird 2.2.0 arbeite, und die Exception an sich ist eine: org.firebirdsql.jdbc.FBSQLException
Kampfsalat 16.09.2009
Ich würde das mal so deuten: Die Spalte "SANDKASTCHEN" die du in deinem SQL-Stament am 35ten Zeichen der 1ten Zeile verwendest, in deine Tabelle nicht existiert.
Falls dir dass nicht weiter hilft, brauche ich mehr Details und ich kann dir anbieten, das wir uns mal per ICQ (oder ähnliches) unterhalten.
Floyd 16.09.2009
Gerne, wie lass ich dir am besten meine ICQ zukommen, ohne das es jeder lesen kann?

Grüße
Kampfsalat 16.09.2009
schick mir ne E-Mail auf Floyd.Net{at}gmail.com
Floyd 16.09.2009
0
UPDATE StRz SET Name=CASE WHEN IntRowId=2 THEN 'john' Else Name END

Das ist wie mit Kanonen auf Spatzen schießen! Besser wäre hier ein einfaches Update mit Where-Klausel.
UPDATE StRz SET 
Name = 'john'
WHERE IntRowId = 2


Wie Floyd ja schon als "Alternative" vorgeschlagen hat.
16.09.2009
FalkP 3,3k 3 8
FalkP 3,3k 3 8
Das ist doch die Alternative die Floyd schon gepostet hat!?
Kampfsalat 16.09.2009
Jap, genau das selbe .. nur anders umgebrochen
Floyd 16.09.2009
Ja, die Alternative (die ich persönlich für den richtigeren Weg halte) habe ich erst nach meinem Post gelesen - Sorry. Und löschen geht leider nicht.
FalkP 17.09.2009

Stelle deine Sql-Frage jetzt!