OveRRidEMedlem sedan feb. 200112 078 inlägg . :r
Jag brukar faktiskt inte stänga objekt på det sättet, utan försöker alltid att göra det explicit på varje object, så nu när jag testar så är det ju faktiskt så.
Jag testade ju med isObject() och den returnerar ju true även om objektet har fått .close och är satt till Nothing. Nothing räknas ju som ett objekt, har jag för mig.
@nders skrev:
Objekt krävs.:'conn'
Du noterade att jag bytte namn på conn till objConn? Byt tillbaka om du vill, men ungersk notation for president.
Bytte ditt objConn till Conn... spelade ingen roll...
Engine^Medlem sedan dec. 20003 887 inlägg
OveRRidE skrev:
. :r
Jag brukar faktiskt inte stänga objekt på det sättet, utan försöker alltid att göra det explicit på varje object, så nu när jag testar så är det ju faktiskt så.
Jag testade ju med isObject() och den returnerar ju true även om objektet har fått .close och är satt till Nothing. Nothing räknas ju som ett objekt, har jag för mig.
Som svar ger jag
Nothing
Set objectvar = Nothing
Discontinues association of objectvar with any specific object or class. Assigning objectvar to Nothing releases all the system and memory resources associated with the previously referenced object when no other variable refers to it.
Nothing är alltså detsamma som null kan man säga. Ingenting, inte ens ett objekt eller en variabel. En rätt abstrakt historia med andra ord.
voigtann1: Jag tappade bort mig i texten... hur ser din kod ut nu?
just nu kör jag:
function db(strpath)
dim conn
set conn = server.createobject("ADODB.connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(strPath)
set db = conn
end function
@ndersMedlem sedan juni 200032 969 inlägg Och hur kallar du på den funktionen?
db("pellesdatabas.mdb")
så vill jag ju ha koden alltid... utan att skriva att conn = db("namn.mdb")
Engine^Medlem sedan dec. 20003 887 inlägg Har du funderat i banorna att göra det som en klass istället?
Vart får du felet att ett objekt förväntas? Det verkar vara, som tidigare nämndes, saknade referenser till objekt som är problemet.
om sidan ser ut så här:
<!INCLUDE>
<%
db("mindb.mdb")
SQL = "Select * blåbär where blåbär = bär"
set recset = conn.execute(SQL)
%>
vid set recset raden där får jag felet
@ndersMedlem sedan juni 200032 969 inlägg
voigtann1 skrev:
db("pellesdatabas.mdb")
så vill jag ju ha koden alltid... utan att skriva att conn = db("namn.mdb")
Men alltså. Jag förklarade ju att du inte kan göra så!
Om du har en funktion som returnerar ett connectionobjekt, så måste du ta emot det!
Vad var det för problem med att göra som jag föreslog sist? :q
Läs här och här och framför allt här.
men @nders... jag har även försökt med dina koder... det fungera inte heller... annars hade jag inte tagit upp ämnet mer.
Kollade runt lite på script sidan wF har och hittade:
http://www.webforum.nu/showthread.php?s=&threadid=73680&forumid=148
Där har en funktion... testat koderna på datorn med och där fungera det...
@ndersMedlem sedan juni 200032 969 inlägg Fungerar det verkligen inte om du byter:
function db(strpath)
dim conn
set conn = server.createobject("ADODB.connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(strPath)
set db = conn
end function
mot:
dim conn
Sub db(strpath)
set conn = server.createobject("ADODB.connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(strPath)
End Sub
Och sedan sparkar igång med db("db.mdb")? Vad får du för felmeddelande?
Har inte datorn med mig idag till soldathemmet... ska tillbaka till loggementet nu och kollar upp det 100% igen... återkommer till helgen :e ... har för mig samma fel meddelande.. fast det kan ju vara att jag har glömt spara/uppdatera sidan....
Engine^Medlem sedan dec. 20003 887 inlägg Som @nders skrev. Du måste ta emot objektet och i detta fall är det
Dim conn
i includefilen som är mottagaren. Jag begriper inte varför inte det fungerar. Det enda jag kan tänka då är att du kör din kod innan du inkluderar det som ska hantera den.
red.
Eller så kan det vara så att ditt objekt är lokalt för funktionen.
Är på väg att sätta nya rekord i 'Så länge dröjde det att posta svaret'-kategorin.
@ndersMedlem sedan juni 200032 969 inlägg Antingen så använder man en funktion och returnerar objektet, eller så deklarerar man objektet globalt och använder en sub som skapar och initierar objektet. Bägge metoderna skall fungera, om man följer instruktionerna.
Mvh
.... jag har nog förlorat all förståelse inom ASP nu... hade gjort dim conn innanför sub:en därför fungerade det ju inte.... tack @nders för hjälpen!