webForumDet fria alternativet

Databaskoppling

5 svar · 176 visningar · startad av web00132

web00132Medlem sedan maj 2001797 inlägg
#1

Jag har 2 tabeller, Upcoming och previous. Det är antal gig det handlar om(med mitt band). När vi haft ett gig vill jag att den posten ska hoppa över från tabellen upcoming till tabellen previous. Så här ser min kod ut:

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\dreamboy\data\dreamboy.mdb" 
%>

<%dim dagens
dagens = date%>

<%
Set forsta = Server.CreateObject("ADODB.Recordset")

hamta="SELECT datum FROM upcoming WHERE datum<#"&dagens&"#"

forsta.Open hamta, Connect

if forsta("datum") < dagens then

forsta.Close

Set andra = Server.CreateObject("ADODB.Recordset")
hejhej="INSERT INTO previous(gigid,datum,gig,info) SELECT gigid,datum,gig,info FROM upcoming WHERE datum<#"&dagens&"#"
andra.Open hejhej, Connect
andra.Close

Set tredje = Server.CreateObject("ADODB.Recordset")
tabort="DELETE gigid,datum FROM upcoming WHERE datum<#"&dagens&"#"
tredje.Open tabort, Connect
tredje.Close

else
forsta.Close
end if %>

Har jag överhuvutaget tänkt rätt i min kod?

/Richard

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Jo, men du har onödigt mycket kod

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\dreamboy\data\dreamboy.mdb" 
%>
<%dim dagens
dagens = date

ins = "INSERT INTO previous(gigid,datum,gig,info) " & _
"SELECT gigid,datum,gig,info FROM upcoming WHERE datum<#"&dagens&"#"

connect.execute ins,rows,128

if rows <> 0 then
tabort="DELETE FROM upcoming WHERE datum<#"&dagens&"#"
connect.execute tabort,,128
end if %>

------------------
essentitia preter non sans multiplicandum

LarsGMedlem sedan dec. 200012 464 inlägg
#3

Det jag inte förstår dock, är varför du har två tabeller. Du kan ju direkt från datumet avgöra om en spelning har varit eller inte.

------------------
essentitia preter non sans multiplicandum

web00132Medlem sedan maj 2001797 inlägg
#4

Woohoo! Det funkar! Som jag har kämpat med det där. Tack ska du ha. Vad betyder förresten detta ",,128"?
/Richard

LarsGMedlem sedan dec. 200012 464 inlägg
#5

128 = adExecuteNoRecords

Inget recordset skapas. Om man anropar execute-metoden utan att ange ,,128 så skapas ett tomt och stängt recordset. Det är en liten optimering.

------------------
essentitia preter non sans multiplicandum

web00132Medlem sedan maj 2001797 inlägg
#6

OK, tack ska du ha!
/Richard

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)