webForumDet fria alternativet
Logga in / Bli medlem

rs.Addnew vs SQL ="INSERT

ASP

17 svar · 423 visningar · startad av CatZ

Medlem sedan jan. 20022 440 inlägg
Trådstart#1
IF Request.Form("NnDiplomerad") = "" THEN
NewNnDiplomerad = "Nej"
ELSE
NewNnDiplomerad = Request.Form("NnDiplomerad")
END IF
Set rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM Namn"
rs.Open SQL, OBJdbConnection, 3, 3
rs.Addnew
rs("NnNamn") = Request.Form("NnNamn")
rs("NnEfter") = Request.Form("NnEfter")
rs("NnTelehem") = Request.Form("NnTelehem")
rs("NnTelejobb") = Request.Form("NnTelejobb")
rs("NnMobil") = Request.Form("NnMobil")
rs("NnKlubb") = Request.Form("NnKlubb")
rs("NnEpost") = Request.Form("NnEpost")
rs("NnLicens") = Request.Form("NnLicens")
rs("NnDiplomerad") = & NewNnDiplomerad &
rs("NnStyrelse") = Request.Form("NnStyrelse")
rs("NnMpnID") = Request.Form("NnMpnID")
rs.Update
rs.Close

Någon som hittar något tokigt ovan eller ska jag skriva om det som SQL ="INSERT INTO blah blah" istället ?

Medlem sedan feb. 20022 594 inlägg
#2

Någon OBJdbConnection hittar jag inte. Har inte gått igenom koden så minutiöst. Men jag rekommenderar att du gör över till INSERT INTO.

Lycka till!

Medlem sedan apr. 20021 203 inlägg
#3

Det ser väl bra ut...
undrar också när man ska använda Add och när man ska använda Inset.

:)

Medlem sedan jan. 20022 440 inlägg
#4

OBJdbConnection är namnet på min komunikation till databasen och finns som include på varje asp sida jag skriver.... därför behöver jag bara anropa den på det sättet....

Jag är väl också lite nyfiken på om jag ska open eller vad jag ska ha... och vad gör:
rs.Open SQL, OBJdbConnection, 3, 3 ?

ska jag skriva
rs.Execute SQL, OBJdbConnection,,128 ?

Medlem sedan nov. 20016 480 inlägg
#5

rs.Open SQL, OBJdbConnection, 3, 3 ?
kör jag med. =)

Medlem sedan jan. 20022 440 inlägg
#6

Hur gör man?

SQL ="INSERT INTO tabell (fält1, fält2, fält3) " & _
" VALUES('" & Request.Form("Värde1") & "', '" & Request.Form("Värde2") & "', '" & Request.Form("Värde3") & "')"
Medlem sedan feb. 20022 594 inlägg
#7

Japp, precis så. Sen kör du

Set rs = OBJdbConnection.Execute(SQL)

Och denna rad : Set rs = Server.CreateObject("ADODB.Recordset")

Behövs inte längre

Medlem sedan dec. 200012 464 inlägg
#8

Set rs = OBJdbConnection.Execute(SQL)

Eftersom SQL innehåller en insert så skall man inte skapa något recordset.

OBJdbConnection.Execute SQL,,128
Medlem sedan jan. 20022 440 inlägg
#9

men men.. vid update och delete då ?

Medlem sedan feb. 20022 594 inlägg
#10

LarsG skrev:

Eftersom SQL innehåller en insert så skall man inte skapa något recordset

Satt och somnade till lite där tror jag. Kollade i hans kod och såg att han använder ett recordset som hette rs. Sen tryckte jag in det :e Men det är tur att du rättar LarsG. Ska försöka vara lite mer noggrann.

Förresten. Har du lust att förklara det där med ,,128? Och länka inte till någon sida på MSDN man inte fattar ett skit av är du snäll :e

Medlem sedan dec. 200012 464 inlägg
#11

Jag förstår inte vad som är svårt med MSDN. Det är där jag har lärt mig det jag kan.

128 innebär att ADO inte skapar något recordset. Om man inte anger det så skapas ett tomt och stängt recordset när man gör execute på kommandon som inte returnerar någon post.

Medlem sedan jan. 20022 440 inlägg
#12

Nej jag har samma problem, jag kan inte tillräckligt mycket av ASP/VB och Access för att ha någon nytta av MSDN :( Jag läser alla LarsG's länkar dit men förstår ingenting, däremot håller jag inte med dig Ekström. Det är nyttigt för alla som kan lite mer än oss säkert, och för övrigt går jag kontinuerligt igenom alla mina gamla poster för att se om där är något jag kan ha nytta av.

I ett senare skede kan det vara bra med de där länkarna som referens.... när man kan lite mer ;)

Men sedan håller jag ändå med Ekström :) har du tid och lust är en förklaring bättre än en länk till något man inte försår, gärna både länk och förklaring om du har tid och lust ;)

tack på förhand

Medlem sedan jan. 20022 440 inlägg
#13

JAg tror faktiskt jag hajjar nu.... ? Om man ska göra

Set rs = Server.CreateObject("ADODB.Recordset")
SQL ="SELECT * FROM tabell"
[b]rs.Open SQL, OBJdbConnection, 3, 3[/b]
rs.Addnew
rs("fält") = Request.Form("form")
rs("fält2") = Request.Form("form2")

Medans om man gör en SQL = "INSERT så behöver man inte skapa något sådant recordset eftersom du kör det med en SQL fråga istället

Samma med select då? Om du gör en select och skriver alla <%=rs("fält") så behövs ett recordset ?

Rätta mig om jag har fel :)

Medlem sedan nov. 20017 144 inlägg
#14

Om du gör en select och skriver alla <%=rs("fält") så behövs ett recordset ?

...Japp

Medlem sedan maj 200010 687 inlägg
#15

Här snackar jag lite för att använda ADO-uppdatering istället för INSERT. Fördelarna med det. :)

http://www.webforum.nu/showthread.php?s=&threadid=12576

Medlem sedan jan. 20022 440 inlägg
#16

ehe, men jag fattade inte mer av den tråden än att det finns något som kallas stored prcedures som vore det absolut bästa att använda....

Medlem sedan maj 200010 687 inlägg
#17

Stored Procedures är bra prestandamässigt och så, men verktyget suger och det går inte att kategorisera på något vettigt sätt. Blir lite kluddigt när man har en stored-procedure för varje nersparning i databasen.

mrBlonde berättade för mig att på sitt gamla jobb hade de stored-procedures för att söka bland stored-procedures bara för att de hade så många... :e

Medlem sedan jan. 20022 440 inlägg
#18

oh my god! Tror jag håller mig till SQL :)

265 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)