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.... ?
10 svar · 294 visningar · startad av Pellefant
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 %>
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.... ?
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 %>
ett annat tips, kor med den "nya" db-kopplingen.... ska vara lite snabbare!
Den "nya"?
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
Tack för alla tips
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
?
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....
I SQL-Server kan du bygga flera SQL-satser i en semikolonseparerad lista, men i Access är jag skeptisk.
Ok... Tack för det vide