webForumDet fria alternativet
Logga in / Bli medlem

Databaskoppling

ASP

5 svar · 181 visningar · startad av web00132

Medlem sedan maj 2001797 inlägg
Trådstart#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

Medlem 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 %>
Medlem 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.

Medlem 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

Medlem 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.

Medlem sedan maj 2001797 inlägg
#6

OK, tack ska du ha!
/Richard

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