Just nu i M3-nätverket
Gå till innehåll

Felmeddelande


mia_sr

Rekommendera Poster

Hej!

 

Jag får felmeddelande Wrong number of arguments or invalid property assignment på min sqlsats som ser ut så här: (ganska lång men jag klipper in hela i alla fall)

Vad brukar felmeddelandet bero på?

 

sql = "insert into enkat(arbetsplats_forandrad, ljudniva,belysning,stol,bord,skarm,tangentbord, mus,ventilation,utrymme,forvaring, placering, solavskarmningen,kommentar_personligarbetsplats)values('" & request.form("arbetsplats_forandrad") & "','" & request.form("ljudniva") & "','" & request.form("belysning") & "','" & request.form("stol") & "','" & request.form("bord") & "','" & request.form("skarm") & "','" & request.form("tangentbord") & "','" & request.form("mus") & "','" & request.form("ventilation") & "','" & request.form("utrymme") & "','" & request.form("forvaring") & "','" & request.form("placering") & "','" & request.form("solavskarmningen") & "','" & request.form("kommentar_personligarbetsplats") & "')WHERE session =" & session

 

Jag la till några mellanslag

[inlägget ändrat 2002-10-16 14:23:39 av Erik Junesjö]

Länk till kommentar
Dela på andra webbplatser

1. Finns alla fälten (och rätt stavade) i databasen?

 

2. Kläm in ett mellan rum mellan den sista parantesen och WHERE

 

3. Innehåller variablen 'session' alltid ett tal?

 

4.Någon liten klocka ringer om att en sträng max får vara 255 tecken... men är inte säker.... Din är längre än så och resten klipps av, och då får man detta felet...

 

5. Om du har skrivit koden uppdelad på flera rader, måste varje rad sluta med ett _

 

6. Jag tror det finns en maxgräns på hur lång en rad kan vara. ?.

 

 

[inlägget ändrat 2002-10-16 14:29:10 av Mr Andersson]

Länk till kommentar
Dela på andra webbplatser

Magnus Ahlkvist

Blir det fel när du gör conn.execute, eller när du försöker skapa strängen SQL?

Om det är det första, gör:

Response.Write SQL
Response.END

 

Klistra in SQL-satsen som skrivs ut och posta den här i forumet. I övrigt har jag svårt att se något större fel med SQL-satsen, frånsett att du genomgående borde göra:

replace(request.form("någonting"),"'","''")

istället för

request.form("någonting")

 

Annars kan en användare skriva in ' i något av formulärfälten och din SQL-sats blir ogiltig, eftersom ' används som sträng-avskiljare i SQL.

 

--

En röst talade till mig och sade:

”Le och var glad, ty det kunde vara värre”.

Så jag log, och jag var glad.

Och det blev värre.

 

Länk till kommentar
Dela på andra webbplatser

3. Innehåller variablen 'session' alltid ett tal?

 

Ja det är alltid ett tal, men det är en texttyp i accessdatabasen

 

Länk till kommentar
Dela på andra webbplatser

samma fel när jag ändrat till

WHERE session ='" & session & "'"

 

allt är på samma rad så det är inte radbrytningarna det är fel på.

 

Länk till kommentar
Dela på andra webbplatser

Jag kanske kan gå en anna väg.

Skickar med värdet från en annan fil

 

steg2.asp?session=928070498

 

Kanske kan använda RequestQuery.String?

 

Länk till kommentar
Dela på andra webbplatser

Det är inte där felet är.

 

Jag tror mest på #4 i mitt första svar. Testa att korta av strängen, testa med 4 eller 5 fält och se vad som händer. Öka sen på med fler fält och se när det går och skogen.

 

 

Länk till kommentar
Dela på andra webbplatser

testade men då visas inte sidan alls..

 

sql = "insert into enkat(arbetsplats_forandrad)values('" & request.form("arbetsplats_forandrad") & "') WHERE session ='" & session & "'"

 

 

Det har fungerar med arbetsplats_forandrad förut så det är inte namngivningen det är fel på.

 

Länk till kommentar
Dela på andra webbplatser

Kläm in lite debugkod före och efter SQL-anropet. Normalt sett om man inte får fram något på skärmen så har det gått bra...

 

Vidare får fila lite på dina mellanslag. Det fattas ett före Values.

 

 

 

Länk till kommentar
Dela på andra webbplatser

Magnus Ahlkvist

Felet är med största sannolikhet att du gör

WHERE session ='" & session & "'"

 

Session är nämligen ett objekt. Det du är ute efter är

Session.SessionID

 

Länk till kommentar
Dela på andra webbplatser

Mia_sr har tidigare bekräftat att variablen innehåller rätt värde, men jag kan hålla med om att det borde vara som du säger.

 

 

Länk till kommentar
Dela på andra webbplatser

Magnus Ahlkvist

Jag reproducerar exakt samma felmeddelande när jag gör:

 

Response.Write "test" & session

 

och felmeddelandet "Default property missing"

 

Response.Write session

 

--

En röst talade till mig och sade:

”Le och var glad, ty det kunde vara värre”.

Så jag log, och jag var glad.

Och det blev värre.

 

Länk till kommentar
Dela på andra webbplatser

Magnus Ahlkvist

Då är det nästan klart :)

 

Det du nu behöver göra är:

 

...WHERE session='" & session.SessionID & "';"

 

En fråga bara - vad är det för databas du använder?

 

--

En röst talade till mig och sade:

”Le och var glad, ty det kunde vara värre”.

Så jag log, och jag var glad.

Och det blev värre.

 

Länk till kommentar
Dela på andra webbplatser

Den säger fortfarade "missing ;" trots

sql = "insert into enkat(arbetsplats_forandrad) values('" & request.form("arbetsplats_forandrad") & "') WHERE session='" & session.SessionID & "';"

 

Det är Access.

 

Länk till kommentar
Dela på andra webbplatser

sql = "INSERT INTO enkat(arbetsplats_forandrad) VALUES('" & request.form("arbetsplats_forandrad") & "') WHERE session='" & session.SessionID & "';"

 

Du kan inte ha WHERE i en INSERT INTO sats...

 

sql = "INSERT INTO enkat(arbetsplats_forandrad) VALUES('" & request.form("arbetsplats_forandrad") & "')"

 

eller

 

sql = "UPDATE [enkat] SET arbetsplats_forandrad = '" & request.form("arbetsplats_forandrad") & "' WHERE session ='" & session.SessionID & "'"

 

- M

-----------------------------------------------------

ju mer jag lär mig ju mer inser jag så lite jag kan

 

 

[inlägget ändrat 2002-10-16 15:22:28 av Magnus Gladh]

Länk till kommentar
Dela på andra webbplatser

Magnus Ahlkvist

Prova att göra:

 


Response.Write SQL
Response.End

efter att du mekat ihop strängen SQL, utför alltså inte databasanropet, utan skriv istället ut SQL-strängen. Posta den så får vi se vad vi kan göra.

 

..

 

En röst talade till mig och sade:

”Le och var glad, ty det kunde vara värre”.

Så jag log, och jag var glad.

Och det blev värre.

 

Länk till kommentar
Dela på andra webbplatser

F-n... nu känner man sig som en jubelåsna.....

 

SJÄLVKLART kan man inte ha WHERE i en INSERT!!

 

Dags att sova, eller kanske byta jobb....?

 

[inlägget ändrat 2002-10-16 15:23:23 av Mr Andersson]

Länk till kommentar
Dela på andra webbplatser

hehe.. jag är bäst.. trallalalaa

 

- M

-----------------------------------------------------

ju mer jag lär mig ju mer inser jag så lite jag kan

 

Länk till kommentar
Dela på andra webbplatser

Vaddå bäst?

 

Du har just försört resten av min dag och sågat mitt självförtroende jämns med hälarna!!

 

Nej, jag bara skojjar! Det var bra att du trillade in och berättade att vi är ute på fel spår!

 

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...