<code> Det enda felet jag ser är att du försöker öppna samma anslutning två gånger direkt efter varandra... Som att försöka äta maten två gänger... :) Som sagts, du öppnar flera connections till samma databas i samma fil två gånger och det är onödigt arbete för servern. Hejsan pelle. jo jag vet om att de är 2 connection. Kan omöjligt gissa felmeddelandet så du får skicka in det här så jag har någon chans att hjälpa dig. Jo den där rad nummer 5 säger den att att den inte fungerar men som du ser så finns de på rad 6 ocvkså samma kod. Hej. Att de kan vara så lite fel som man nästan inte ser som är felet.Vilken av dom här 2 raderna är fel? för får error på 1
Con.open "Driver={Micorsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("mdb/community.mdb") & ";" 'rad 5
</code>
<code>
Con.open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("mdb/community.mdb") & ";" 'rad 6
</code>
Är rade 5 fel eller är rad 6 fel?
Vilken av dom här är fel?
Vill bara kolla om ni kan se vad som är fel?
För 1 av dom här 1 funkar inte hos mig men jag ser inget fel därför undrar jag om du ser vad som är fel!
Så ska vi se om de är jag som är blind eller inte.Sv: Vilken av dom här 2 raderna är fel? för får error på
Saker att tänka på vid anslutning av databas för mindre serverarbete
En regel du kan följa är: Använd en connection till alla anrop som sker på sidan under förutsättning att det förstås bara är en databas du arbetar med.
Ex:
<code>
Set Con = Server.CreateObject("adodb.connection")
Con.Open "mindsn"
set rst = con.execute("select * from tabell")
rst.close
con.execute("update ...")
con.execute("delete from ...")
con.execute("insert into ...")
set con = nothing
</code>
Som du ser återanvänder du connection hela tiden och bara arbetar med recordset genom den connection du just skapat. Så tänk på att göra såhär i fortsättningen.
Du bör även undvika att ha en includefil som öppnar en connection åt dig på varje sida för det är inte säkert att du alltid använder den, inte heller säkert att du kommer ihåg att sätta den till nothing så den släpps loss till connectionpoolen.
När vi fortsätter på optimering så undvik att använda mappath hela tiden. Det tar också extra kraft och tid eftersom servern måste söka efter en fil med det namnet. Hellre att du i global.asa deklarerar en applicationvariabel innehållande sökvägen eller ditt dns-namn.
Ex:
<code>
Sub Application_OnStart()
Application.Lock
Application("DSN") = "provider= ......"
Application.UnLock
End Sub
</code>
På detta sätt behöver du bara när du skall arbeta med data skriva:
<code>
Set con = Server.CreateObject("Adodb.Connection")
Con.Open Application("dsn")
</code>
Och som du ser - om du flyttar ditt program till någon server, säljer systemet eller något så är det bara att ändra på ett enda ställe i global.asa - vilket underlättar enormt för såväl dig som den som skall installera programmet.Sv: Vilken av dom här 2 raderna är fel? för får error på
Men ser du om de är något fel i en connection som finns på rad 5?
Jag fick Error ......
Så jag skrev de på raden under och satte en ' i rad 5.
och jag ser inte någon skillnad på rad 5 och rad 6.
Men ändå funka rad 6. Som kod men inte rad 5 med samma kod.
Hoppas du förstår hur jag menar?Sv: Vilken av dom här 2 raderna är fel? för får error på
Sv: Vilken av dom här 2 raderna är fel? för får error på
Men den på rad 6 funkar men inte samma kod på rad 5.
Men om jag tittar på båda koderna så ser jag ingen skillad på dom.
Och därför förstår jag inte varför jag får felmedelande på rad 5 men inte på rad 6.
jag får följande felmedelande:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
/test-asp/sql3.asp, line 5
Och på rad 5 står följande kod.
Con.open "Driver={Micorsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("mdb/community.mdb") & ";" 'rad 5
'Con.open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("mdb/community.mdb") & ";" 'rad 6
Jag skrev till den koden på rad 6 sen efteråt men jag ser inte 0% skillnad på rad 5 mot rad 6. De är ju 100% samma kod enligt som jag ser de i min ögon.
Men ändå får jag det felmedelande på rad 5 men inte på rad 6 när jag kör exakt samma kod.
Vad är fel när den gör så då?Sv: Vilken av dom här 2 raderna är fel? för får error på
Det beror nog på att micorsoft inte har sett dagens ljus ännu!
Rad 1 är fel.
/StefanSv: Vilken av dom här 2 raderna är fel? för får error på
jag har nersatt syn för många.
Så kan vara därför som jag har probem med mina koder ibland :-)