Er der nogen der kan forklare hvorfor der går næsten 20 sek. med efterfølgende stump kode ? --- Function checkloginDealer Dim c1, rsUser, rsDealer
set c1 = createobject("ADODB.Connection") c1.Open "FILEDSN=Web.dsn"
user = Request.Cookies("WEB")("user")
if user="" then Response.Redirect Application("VRoot") & "/default.asp" Response.End end if
set rsUser = c1.Execute("SELECT * FROM Person WHERE brugerkode=" & safestring(user)) if rsUser.eof then Response.Redirect Application("VRoot") & "/default.asp" Response.End end if
set rsDealer = c1.execute("SELECT * FROM Dealer WHERE DealerAccount =" & safestring(rsUser("DealerAccount"))) if rsDealer.eof then Response.Redirect Application("VRoot") & "/default.asp" Response.End end if
Response.Cookies("WEB")("user") = user Response.Cookies("WEB").Expires = Date() + 10 End function ---
Når jeg kun udfører eet opslag går den med normal hastighed, dvs. svartid under 1 sek.
--- Function checkloginDealer Dim c1, rsUser, rsDealer
set c1 = createobject("ADODB.Connection") c1.Open "FILEDSN=Web.dsn"
user = Request.Cookies("WEB")("user")
if user="" then Response.Redirect Application("VRoot") & "/default.asp" Response.End end if
set rsUser = c1.Execute("SELECT brugerkode FROM Person WHERE brugerkode=" & safestring(user)) if rsUser.eof then Response.Redirect Application("VRoot") & "/default.asp" Response.End end if
set rsDealer = c1.execute("SELECT DealerAccount FROM Dealer WHERE DealerAccount =" & safestring(rsUser("DealerAccount"))) if rsDealer.eof then Response.Redirect Application("VRoot") & "/default.asp" Response.End end if
Response.Cookies("WEB")("user") = user Response.Cookies("WEB").Expires = Date() + 10 End function ---
Jeg har prøvet at oprette en c2 connection ------ Dim c2
set c1 = createobject("ADODB.Connection") c1.Open "FILEDSN=Web.dsn"
og udført erstattet c1 med c2 på
set rsDealer = c2.execute("SELECT DealerAccount FROM Dealer WHERE DealerAccount =" & safestring(rsUser("DealerAccount"))) ------
Herved går tingene meget hurtige. Problemet er blot at jeg andre steder i hele webstedet anvender mange flere tabeller i mine asp sider. Rent faktisk lægger jeg alle mine ADODB.connections ind i global.asa, samt at jeg anvender 2 SQL baser. Mit problem er at jeg forespørger flere gange gennem samme connection mange steder, og skulle til at oprette nye connections til mer eller mindre alle tabeller, er noget træls.
Jeg bruger MS-SQL. Forhistorien er at mine tabeller har før været i MS-Access database, men jeg har valgt af primært driftmæssige årsager at lægge tabellerne ind i MS-SQL hvor jeg har oprettet en tilsvarende database. Jeg havde overhovedet ingen svartidsproblemer med MS-Access. Det eneste der er gjort ar at jeg har udskriftet min ODBC opsætning. Jeg har prøvet at søge på symptomerne hos Microsoft, men intet fundet. Det eneste er at man "drukner" i information - desværrer ...
er det korrekt at første tabelopslag bruges til at finde en "DealerAccount" som derefter kan bruges til næste opslag? I så fald ville jeg lave begge opslag samtidig og dermed nøjes med et enkelt recordset.
Det må blive noget a'la:
sql = "SELECT DealerAccount FROM Dealer WHERE DealerAccount = (SELECT TOP 1 DealerAccount FROM Person WHERE brugerkode=" & safestring(user) & ")"
Derefter ville jeg til enhver tid åbne mit recordset på følgende måde:
set rs = server.createobject("adodb.recordset") rs.open sql, conn, 1, 1
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.