@ndersMedlem sedan juni 200032 967 inläggDå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,
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?
@ndersMedlem sedan juni 200032 967 inläggDels 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,
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
@ndersMedlem sedan juni 200032 967 inläggJag 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:
-
Se till att dina formulärfält heter typ ID90 istället för bara 90.
-
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,
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.
denna kanske!
SQL = "SELECT * FROM "& Kun &" as k " & _
"WHERE EXISTS (SELECT Kundnr from BF where kundnr = k.asiakasnro AND Artnr = TO_NUMBER(k.Tuotenro))"
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.
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
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
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!