webForumDet fria alternativet

Fel på update

12 svar · 309 visningar · startad av saw

sawMedlem sedan mars 20011 880 inlägg
#1

Jag får ett fel på min uppdate

   minDB.Execute = "Update t_datum " & _
   " Set Datum =#" & strDatum & "#, placeringSv ='" 
& strPlacSv & "', placeringEu ='" & strPlacEu & "', 
PlaceringVärlden ='" & strPlacVrld & "' WHERE
 datum_Id =" & strID

Jag jobbar i VB 6.0
Tacksam för hjälp :l

@ndersMedlem sedan juni 200032 969 inlägg
#2

Och vad får du för fel?

sawMedlem sedan mars 20011 880 inlägg
#3

Efter jag hade lagt in detta anropet, så visade sig att jag för samma fel på min insert SQL.
Här är alltså först min uppdate lite justerad:

   minDB.Execute = ("Update t_datum  Set Datum = # " & 
strDatum & " #, placeringSv =" & strPlacSv & ", 
placeringEu =" & strPlacEu & ", PlaceringVärlden =" & 
strPlacVrld & " WHERE
 datum_Id =" & strID & "")

Och här är inserten:
[kod]
minDB.Execute = ("INSERT INTO t_datum(datum,placeringSv,placeringEu,PlaceringVärlden,sångtitel)
VALUES(#" & strDatum & "#, " & strPlacSv & "," & strPlacEu & ", "
& strPlacVrld & ", " & strID & "")

{/kod]

I bägge fallen så får jag felmedelandet att:
Compile Error
Argument not optional

Jag har kollat och jämmfört med massor av koder, både egna och andras, jag kan inte se vad felet är...
:(

@ndersMedlem sedan juni 200032 969 inlägg
#4

Ah.

Jag ser nu. Det har ingenting med SQL-frågorna att göra.

Du ska inte ha = efter Execute.

minDB.Execute ("Update t_datum  Set Datum = # " & 
strDatum & " #, placeringSv =" & strPlacSv & ", 
placeringEu =" & strPlacEu & ", PlaceringVärlden =" & 
strPlacVrld & " WHERE
 datum_Id =" & strID & "")
minDB.Execute ("INSERT INTO t_datum(datum,placeringSv,placeringEu,PlaceringVärlden,sångtitel) 
VALUES(#" & strDatum & "#, " & strPlacSv & "," & strPlacEu & ", " 
& strPlacVrld & ", " & strID & "")

Red: Min cut & paste blev lite konstig, men du fattar. :)

Mvh,

sawMedlem sedan mars 20011 880 inlägg
#5

Oj :r
Tack för vänligheten.
Jag skall kolla när jag kommer hem :e

sawMedlem sedan mars 20011 880 inlägg
#6

@nders....
...livet är inte så enkelt trots allt. :l
Jag fick fel på bägge två SQL:erna.
Först Insert.

   SQL = ("INSERT INTO t_datum(datum,placeringSv,placeringEu,PlaceringVärlden,sångtitel)
 VALUES(#" & strDatum & "#,  " & strPlacSv & "," & strPlacEu
 & ", " & strPlacVrld & ", " & strID & "")

När jag Debuggar koden:


INSERT INTO t_datum(datum,placeringSv,placeringEu,PlaceringVärlden,sångtitel) 
VALUES(#2002-02-02#,  1,2, 3, 2

Felmedelande:
Syntax ERROR in Insert Into Statsment

När det gäller min uppdate, så får jag inga felmedelanden, men databasen uppdateras inte...

   minDB.Execute ("Update t_datum  Set Datum = # " & strDatum 
& " #, placeringSv =" & strPlacSv & ", placeringEu =" & strPlacEu & ",
 PlaceringVärlden =" & strPlacVrld & " WHERE datum_Id =" & 
strID & "")

Och när jag debuggar den:


Update t_datum  Set Datum = # 2001-11-05 #, placeringSv =5, placeringEu =39, 
PlaceringVärlden =399 WHERE datum_Id =2

Vad fasen skall jag göra åt saken :(

LarsGMedlem sedan dec. 200012 464 inlägg
#7

Det saknas en parentes

SQL = ("INSERT INTO  t_datum(datum,placeringSv,placeringEu,PlaceringVärlden,sångt
itel)
 VALUES(#" & strDatum & "#,  " & strPlacSv & "," & strPlacEu
 & ", " & strPlacVrld & ", " & strID & ")")

Din update ser riktig ut, så att om det inte uppdateras något så finns det väl ingen post med datum_id 2 ?

sawMedlem sedan mars 20011 880 inlägg
#8

TACK nu fungerar det.
Jag måste bara försöka att skriva en felhanterare, han tycker inte om Null-värden. :e

sawMedlem sedan mars 20011 880 inlägg
#9

Det ser ut som om jag måste fråga igen.
Hur kan man bygga om SQL:en dynamiskt ?
Min fråga gäller bägge SQL:erna.
Om vi först pratar om uppdateringen, det finns kanske en placering i Sverige och en i Europa men ingen i Världen. Det är detta som uppdaten reagerar mot. Jag kan sätta fälten till att acceptera nullvärde, för det är datatypen tal vi pratar om.
Några tips ? :q

sawMedlem sedan mars 20011 880 inlägg
#10

Jag försöker att bygga om Uppdaten men jag tänker nog lite galet..

SQL = "Update t_datum  Set Datum = # " & strDatum & " #, 
placeringSv =" & strPlacSv & ""
    If Not IsNull(strPlacEu) Then
        SQL = SQL & ",placeringEu =" & strPlacEu & ""
        Else
        SQL = SQL & " WHERE Sång_ID =" & strID & ""
    End If
    If Not IsNull(strPlacVrld) Then
        SQL = SQL & ", PlaceringVärlden =" & strPlacVrld & ""
        Else
        SQL = SQL & " WHERE Sång_ID =" & strID & ""
    End If
        SQL = SQL & " WHERE Sång_ID =" & strID & ""
    minDB.Execute SQL

Men galet går det, för jag kan bara uppdatera om jag har alla fälten ifyllda... :(

sawMedlem sedan mars 20011 880 inlägg
#11

Mmmm uppdaten tycktes jag klara av, men jag har problem med inserten. :l

LarsGMedlem sedan dec. 200012 464 inlägg
#12

Vilket problem har du med insert?

sawMedlem sedan mars 20011 880 inlägg
#13

Jag såg det väldigt svårt att kunna hitta på en dynamisk SQL för inserten, men vill du höra något kul??
JAG KLARADE DET :e

Tack för all din medverkan.

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)