Hej! Du tilldelar objConn en sträng istället för att öpna anslutningen.Problem med att stänga connection
Har använt denna koden mot access 2000 utan problem, men blev tvungen att börja med Ms-Sql alldeles nyligen.
Nu har det blivit strul med stängning av öppnade connections!?!
<b>Felmeddelandet:</b>
Microsoft VBScript runtime error '800a01a8'
Object required: 'objConn'
/admin/beg_boats/x2.asp, line 144
<b>Koden:</b>
<code>
<%
' skapa connection object och öppna databasen --
Set objConn = Server.CreateObject("ADODB.Connection")
objConn = "Provider=SQLOLEDB;Data Source=xxx.xxx.xx.xxx;Initial Catalog=xxxxxx;User Id=xxxxxx;Password=xxxxxxxx"
' hur många poster ska visas per sida --
intPageSize = 15
' vilken sida ska visas --
intPage = Request.QueryString("page")
' kontrollera så att inte intPage variabeln är tom --
If intPage = "" Then intPage = 1 ' visa första sidan som default --
' sql-fråga för att hämta data från databasen --
strSQL = "SELECT * FROM TBL_BegBat ORDER BY ID DESC"
' skapa och öppna recordsetet --
Set objRS = Server.CreateObject("ADODB.Recordset")
With objRS
.ActiveConnection = objConn
.Source = strSQL
' bestämmer hur många poster som varje sida ska bestå av i recordsetet --
.PageSize = intPageSize
.CursorType = 3
.LockType = 1
.Open
End With
' kontrollera om några poster har returnerats eller inte --
If Not objRS.EOF Then
' poster har returnerats --
' visa rätt sida i recordsetet --
objRS.AbsolutePage = intPage
' hur många sidor består recordsetet av --
intTotalPages = objRS.PageCount
%>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="5" width="410">
<tr>
<% Do Until objRS.EOF OR intCounter >= intPageSize
intCounter = intCounter + 1
' printa ut informationen till besökare/användaren ---------------------------------------------------
checkcounter = FormatNumber(Round(intCounter/3,2),1)
If right(checkcounter,1) <> "0" Then %>
<td valign="top" align="center" width="33%"><img border="1" src="../thumbs/<%=objRS("Thumbs") %>" alt="Båt nr: <%=objRS("ID") %>" width="120" height="80"><br><br>
" onMouseOver="window.status=''; return true"><%=objRS("Beskrivning")%></font></td>
<% Else %>
<td valign="top" align="center" width="33%"><img border="1" src="../thumbs/<%=objRS("Thumbs") %>" alt="Båt nr: <%=objRS("ID") %>" width="120" height="80"><br><br>
" onMouseOver="window.status=''; return true"><%=objRS("Beskrivning")%></font></td>
</tr>
</table>
</center>
</div><br><br>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="5" width="410">
<tr>
<% End If
objRS.MoveNext
Loop
Else
' inga poster returnerades --
End If
' rensa up --
objRS.Close
Set objRS = Nothing
objConn.Close <b><<<<<<<<<<<<<<<<<<< line 144</b>
Set objconn = Nothing
%>
</td>
</tr>
<tr>
<td><br><br>
<!-- bild visning slut -->
</td>
</tr>
</table>
</div>
</center>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" width="400">
<tr>
<td align="center"> <%
'## -- visa sidnavigeringen --
Call PageNavigation(intPage, intTotalPages)
%> </td>
</tr>
</table>
</center>
</div>
</td>
<!--#INCLUDE FILE="../includes/inc_pagingFunction_2.asp"-->
<td width="30" rowspan="2"></td>
<td width="140" rowspan="2" valign="top" align="center">
<div align="center">
</td>
</tr>
</table>
</center>
</div>
</code>
<b>Och så koden till inc_pagingFunction_2.asp:</b>
<code>
<%
Sub PageNavigation(ByVal Page, TotalPages)
Dim strScriptName
If intTotalPages > 1 Then
Response.Write "<font face='Verdana' size='1'>"
'## -- denna sidas namn --
strScriptName = Request.ServerVariables("SCRIPT_NAME")
'## -- länk till föregående sida --
'## -- kontrollera att det inte är första sidan som visas --
If CInt(Page) > 1 Then
'## -- inte första sidan som visas så gör en länk --
Response.Write "<< Föregående "
Else
'## -- det är första sidan som ska visas. gör ingen länk --
Response.Write "<< Föregående "
End If
'## -- bygg upp själva pagebaren, dvs varje sidnummer ska ha en länk
'## -- så att besökaren snabbt kan ta sig till rätt sida --
For N = 1 To CInt(TotalPages)
If N <> CInt(Page) Then
'## -- ej aktuell sida, länka --
Response.Write "" & N & " "
Else
'## -- aktuell sida, länka ej --
Response.Write "<B>" & N & "</B> "
End If
Next
'## -- länk till nästa sida. om vi står på sista sidan ska den ej vara länkad --
If CInt(Page) < CInt(TotalPages) Then
'## -- vi är inte på sista sidan --
Response.Write "Nästa >>"
Else
'## -- vi är på sista sidan. länka ej --
Response.Write "Nästa >>"
End If
Else
Exit Sub
End If
End Sub
%>
</code>Sv: Problem med att stänga connection
Ersätt:
<code>
Set objConn = Server.CreateObject("ADODB.Connection")
objConn = "Provider=SQLOLEDB;Data Source=xxx.xxx.xx.xxx;Initial Catalog=xxxxxx;User Id=xxxxxx;Password=xxxxxxxx"
</code>
Med:
<code>
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=SQLOLEDB;Data Source=xxx.xxx.xx.xxx;Initial Catalog=xxxxxx;User Id=xxxxxx;Password=xxxxxxxx"
</code>
Du bör oxå ersätta:
<code>
.ActiveConnection = objConn
</code>
Med:
<code>
Set .ActiveConnection = objConn
</code>
Annars kommer du tilldela strängen och recordsetet är då tvungen att skapa en egeninstans av anslutningen.
Så ska det fungera