webForumDet fria alternativet

Bara en uppdateras ?

ASP

10 svar · 289 visningar · startad av Pellefant

Medlem sedan maj 20023 372 inlägg
Frågan#1

Hej!

Bara den första (id 1) vill uppdatera sig.

Hur kan man skriva om detta mycket smidigare?

<% text1 = request.Form("text1") %>
<% text2 = request.Form("text2") %>
<% text3 = request.Form("text3") %>
<% text4 = request.Form("text4") %>
<% text5 = request.Form("text5") %>

text1:<%=text1%><br>
text2:<%=text2%><br>
text3:<%=text3%><br>
text4:<%=text4%><br>
text5:<%=text5%><br>

<% Set Databas = Server.CreateObject("ADODB.Connection") 
Databas.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("contest.mdb") 
databas.execute "update table1 set [text] ='" & text1 & "' where id = 1" 
Databas.Close %>

<% Set Databas2 = Server.CreateObject("ADODB.Connection") 
Databas2.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("contest.mdb") 
databas2.execute "update table1 set [text] ='" & text2 & "' where id = 2" 
Databas2.Close %>

<% Set Databas3 = Server.CreateObject("ADODB.Connection") 
Databas3.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("contest.mdb") 
databas3.execute "update table1 set [text] ='" & text3 & "' where id = 3" 
Databas3.Close %>

<% Set Databas4 = Server.CreateObject("ADODB.Connection") 
Databas4.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("contest.mdb") 
databas4.execute "update table1 set [text] ='" & text4 & "' where id = 4" 
Databas4.Close %>

<% Set Databas5 = Server.CreateObject("ADODB.Connection") 
Databas5.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("contest.mdb") 
databas5.execute "update table1 set [text] ='" & text5 & "' where id = 5" 
Databas5.Close %>
Medlem sedan dec. 20002 526 inlägg
#2

For det forsta, att ansluta samma databas 5 ganger ar ingen prestandforbattring, du behover endast en anslutning...

Ar dom alltid ifyllda? Formularen alltsa? Du kan ju gora en For.... Next loop.. som fyller i for varje form.... ?

Medlem sedan maj 20023 372 inlägg
#3

Fick det att funka nu, vet inte varför det strulande innan.

Tack

<% Set Databas = Server.CreateObject("ADODB.Connection") 
Databas.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("contest.mdb") 
databas.execute "update table1 set [text] ='" & text1 & "' where id = 1" 
databas.execute "update table1 set [text] ='" & text2 & "' where id = 2" 
databas.execute "update table1 set [text] ='" & text3 & "' where id = 3" 
databas.execute "update table1 set [text] ='" & text4 & "' where id = 4" 
databas.execute "update table1 set [text] ='" & text5 & "' where id = 5" 
Databas.Close %>
Medlem sedan dec. 20002 526 inlägg
#4

ett annat tips, kor med den "nya" db-kopplingen.... ska vara lite snabbare!

Medlem sedan juli 2002549 inlägg
#5

Den "nya"?

Medlem sedan nov. 20017 144 inlägg
#6

Så här kanske?

Set Databas = Server.CreateObject("ADODB.Connection")  
Databas.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("contest.mdb"))
Dim i
i=1
for i=1 to 5 
databas.execute "update table1 set [text] ='"& request("text"& i &"") &"' where id ="& i
next
Databas.Close
Medlem sedan maj 20023 372 inlägg
#7

Tack för alla tips :)

Medlem sedan aug. 20013 824 inlägg
#8

Finns det ingen möjlighet att skapa nån form av jätte-sql-fråga så man kan uppdatera allt i en exekvering?

Menar typ nått sånt här:

update table1 set [text] ='" & text1 & "',
(update table1 set [text] ='" & text2 & "' where id = 2), 
(update table1 set [text] ='" & text3 & "' where id = 3), 
(update table1 set [text] ='" & text4 & "' where id = 4), 
(update table1 set [text] ='" & text5 & "' where id = 5), 
 where id = 1

LarsG kanske vet ;) :OO :stud ?

Medlem sedan dec. 20002 526 inlägg
#9

Det var sa jag menade med den kod Jesper skrev... Men fick inget ritkigt svar innan..... ;) Men sa ar nog bast. Och nej, man kan inte gora en san "jatte sql" hehe.... :)

Medlem sedan dec. 19998 577 inlägg
#10

I SQL-Server kan du bygga flera SQL-satser i en semikolonseparerad lista, men i Access är jag skeptisk.

Medlem sedan aug. 20013 824 inlägg
#11

Ok... Tack för det vide ;)

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)