Något sånt här?
on error resume next ' fånga ev. fel
' kod som kan generera fel
if err.number <> 0 then
response.write "någe bidde fel! prova igen kanske?"
err.clear ' rensa error-objektet
end if
on error goto 0 ' tillbaka till normalläge
7 svar · 260 visningar · startad av Molna
Hej,
Om man använder sig av access-databaser så kan man ju stöta på problemet att databas är upptagen när man försöker hämta uppgifter ifrån den. Hur gör man för att när ett sånt fel uppstår göra något annat så att inte felmeddelandet syns?
/Tack:)
Något sånt här?
on error resume next ' fånga ev. fel
' kod som kan generera fel
if err.number <> 0 then
response.write "någe bidde fel! prova igen kanske?"
err.clear ' rensa error-objektet
end if
on error goto 0 ' tillbaka till normalläge
jo, det ser väldigt bra ut:)
Men var lägger man den koden? Lägger man den direkt efter conn.OPEN "databasen"? Eller efter där man försöker öppna en tabell?
vad gör den sista raden rent konkret?
Typ.
on error resume next ' fånga ev. fel
set conn = server.createobject("adodb.connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("data.mdb")
if err.number <> 0 then
response.write "någe bidde fel! prova igen kanske?"
err.clear ' rensa error-objektet
else
set rs = conn.execute("SELECT .... ")
end if
on error goto 0 ' tillbaka till normalläge
on error resume next ska man använda väldigt sparsamt. Den gör så att asp-motorn struntar i fel, och fortsätter processa resten av sidan ändå. När du använder detta får du tillgång till error-objektet Err. När propertyn Number har ett värde skilt från noll, har något blivit fel.
Sätt on error resume next precis innan ett fel som du vill fånga kan inträffa, och sätt on error goto 0 direkt efter du gjort det du ska med eventuellt fel. On error goto 0 gör så att processingen av sidan återgår till det normala, dvs: kör sidan tills ett fel inträffar.
Mvh,
YES! Nu är jag lycklig, det blev jättebra. Tackar:)
Tilläggas bör att det kan stå så om du har accessdatabasen öppen lokalt när du paralellt kör ditt ftp-program el. dyl.
Jag har aldrig testat personligen, men det finns ett sätt att använda OLEDB Jet-drivern med exklusiv access.
oConn.Mode = 12
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:\somepath\myDb.mdb;" & _
"User Id=admin;" & _
"Password="
RED. Vid närmare efterforskningar på MSDN kan nämnas att konstanten adModeShareExclusive bör ha värdet 12 för att fungera korrekt. Koden ovan är ändrad.
Hittade en ypperlig sida för vidare sådana ändamål, ADO Data Control Constants: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adodc98/html/vbcstadodatacontrolconstants.asp