webForumDet fria alternativet

definiera dynamiskt värde på en querystring, eller nått?

ASP

32 svar · 667 visningar · startad av His Divine Shadow · sida 2 av 2

Frågan, av His Divine Shadow

SQL = "SELECT FROM BF WHERE Kundnr = '"& Request.Querystring("Kundnr") &"'" rs.open SQL, conn, 2, 2 do until RS.EOF artnum = rs("Artnr") rs.Update rs("Justerat") = Request.Querystring("<Artnum värdet här>") rs.Update RS.MoveNext Loop Conn.Close Vad jag vill göra här är att på nått vis göra så att artnum värdet läggs in som namn på querystringen, går det att göra på nått vis?

Läs frågan i sin helhet →
Medlem sedan juni 200032 967 inlägg
#21

Dåså. :)

Då har du lärt dig UPDATE, ta INSERT snart också då? ;)

Läs Vides utmärkta artiklar på www.webeye.nu, exempelvis denna: http://www.webeye.nu/default2.asp?que=asp/default.asp&exec=asp/artiklar/asp8.asp

Där får du lära dig UPDATE och INSERT.

Också finns ju vi här när det krånglar. :)

Mvh,

Medlem sedan sep. 20004 079 inlägg
#22

Har redan en insert för nått annat, det fick jag att funka, men jag undrar, vad är så "förkastligt" med denna tidigare metoden?

Medlem sedan juni 200032 967 inlägg
#23

Dels tycker jag personligen att det blir alldeles för många rader kod.

Jag vill också citera LarsG:

Att använda recordset för att göra update eller insert kostar mer än att göra execute på ett sql-statement.

Ett test som Jaan gjorde visade att om man gjorde insert på en tabell med tre kolumner via ett recordset så innebar det 50 anrop till ODBC medan om man gjorde execute så blev det 3 stycken ODBC-anrop. Visserligen så går inte alla anrop vidare till databas-servern men ändock.

Källa: http://www.webforum.nu/showthread.php?s=&threadid=12302

Jag tycker att man ska sträva efter att koden man skriver inte är onödigt lång, och att applikationen är så bra prestandamässigt som möjligt.

Mvh,

Medlem sedan sep. 20004 079 inlägg
#24

Problem, försökte utöka koden med lite och nu får jag detta:
**Request object error 'ASP 0105 : 80004005'

Index out of range

/forslag/justera.asp, line 25

An array index is out of range.**

Här är den nya koden, strSQL2 är linje 25:

do until RS.EOF

artnum = rs("Artnr")
artnum2 = rs("ID")

strSQL = "UPDATE BF SET Justerat = " & Request.querystring(artnum) & " WHERE Kundnr = '" & Request.querystring("Kundnr") & "' AND Artnr = '" & artnum & "'"
conn.execute (strSQL) 

strSQL2 = "UPDATE BF SET Lager = " & Request.querystring(artnum2) & " WHERE Kundnr = '" & Request.querystring("Kundnr") & "' AND ID = " & artnum2 & ""
conn.execute (strSQL2) 

RS.MoveNext
Loop
Conn.Close
Medlem sedan juni 200032 967 inlägg
#25

Jag tror inte det är bra att använda formulärfält som heter bara en siffra. Jag tror att det är det som bråkar.

Jag tycker du ska prova så här:

  1. Se till att dina formulärfält heter typ ID90 istället för bara 90.

  2. Använd en SQL-fråga som denna, ungefärligen:

strSQL2 = "UPDATE BF SET Lager = " & Request.querystring("ID" & artnum2) & " WHERE Kundnr = '" & Request.querystring("Kundnr") & "' AND ID = " & artnum2 & ""

Mvh,

Medlem sedan sep. 20004 079 inlägg
#26

Problems, med denna kod-bit:

SQL = "SELECT * FROM "& Kun &" as k " & _ 
"WHERE EXISTS (SELECT Kundnr from BF where kundnr = k.asiakasnro AND Artnr = k.Tuotenro)"

Problemet är att tuotenro är ett vanligt text fält och jag får en type mismatch problem p.g.a. det, jag vet inte hur jag ska skriva så det funkar som det ska, lägga apostrofer runt funkar inte av självklara orsaker.

Medlem sedan sep. 20004 079 inlägg
#27

Ingen alls som vet?

Medlem sedan juni 20003 076 inlägg
#28

denna kanske!

SQL = "SELECT * FROM "& Kun &" as k " & _ 
"WHERE EXISTS (SELECT Kundnr from BF where kundnr = k.asiakasnro AND Artnr = TO_NUMBER(k.Tuotenro))"
Medlem sedan sep. 20004 079 inlägg
#29

Tja, nu när jag kör koden som gör det motsatta:

SQL2 = "SELECT * FROM "& Kun &" as k WHERE NOT exists (SELECT Kundnr from BF where Kundnr = k.Asiaksnro AND Artnr = k.Tuotenro)"

Så då får jag:

Microsoft JET Database Engine error '80040e10'
No value given for one or more required parameters.

Jag fick det förra att funkar genom att ändra Artnr till text typ.

Medlem sedan juni 20003 076 inlägg
#30

gör en response på koden så får vi se.

SQL2 = "SELECT * FROM "& Kun &" as k WHERE NOT exists (SELECT Kundnr from BF where Kundnr = k.Asiaksnro AND Artnr = k.Tuotenro)"
response.write SQL2
Medlem sedan sep. 20004 079 inlägg
#31

SELECT * FROM 213 as k WHERE NOT exists (SELECT Kundnr from BF where Kundnr = k.Asiaksnro AND Artnr = k.Tuotenro)

Tja, inte vet jag.

Info på fälten:
Kundnr - Tal
Artnr - Text
Asiakasnro - Tal
Tuotenro - Text

Medlem sedan juni 20003 076 inlägg
#32

jaha, en sak kan ju vara att du har as i from-taggen, man kanske får ha så men annars räcker det med ett mellanslag: 213 k
annars får moderatorerna hoppa in och fixa koden!

Medlem sedan sep. 20004 079 inlägg
#33

Nä, samma fel ännu.

265 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)