Tja, det ser ut som att objektet ObjectConn inte är skapat. Visa kod till och med rad 45, ty vi kan icke gissa.
mvh
11 svar · 388 visningar · startad av Phinx
Hejsan
Vet ni vad denna felkod betyder. jag fattar ingenting.
Var ett gratisscript som jag har fått från mitt webbhotall
på ett fotoalbum, som ser helt ok ut. Men de har ingen support på scriptet och man laddade bara över det till sin katalog sen skulle allt funka ..Ha Ha trode jag..
Eller har ni några förslag på ett Foto albums script där man kan ladda upp bilder själv.??
Fel kod:
Microsoft VBScript runtime error '800a01a8'
Object required: 'ObjectConn'
/ASP-gallery/function.asp, line 45
MVH / Phinx.. :q :q
Tja, det ser ut som att objektet ObjectConn inte är skapat. Visa kod till och med rad 45, ty vi kan icke gissa.
mvh
Felkoden betyder inget annat än att objektet ObjectConn inte är skapat. Kolla så att du har använt exakt samma stavning när du skapade det (om du över huvud taget gjorde det :P), motorn skiljer även på gemener och versaler.
SprayMaphia skrev:
motorn skiljer även på gemener och versaler.
Nej, det gör den inte. Inte när man använder VBScript.
Mvh
En kompis till mig tog hem ett gratisscript för att skicka vykort på nätet. Den använde sig av en mysql-databas. Han döpte sin databas till "mina vykort" vilket inte gick så bra. Efter att ha döpt om den till minaVykort eller om det var mina_vykort så funkade det utmärkt. Akta dig för mellanslagen...
Hejsan
Här kommer hela scriptet, eftersom jag har laddat hem det från Ballou så har jag inte gjort något själv... Tack tack på förhand..
<!--#include file="function.asp"-->
<!--#include file="config.asp"-->
<html>
<head>
<title>Välkommen till ASP-Galleriet</title>
<script LANGUAGE="JavaScript">
<!-- hide contents from old browsers
var version;
var width,height
var image,ext,descrip
var cond1,cond2
function transferview(image,title,width,height,descrip)
{
if (width==0)
{
cond1=" ";
}else{
cond1="width="+(width+60)+" ";
}if (height==0){
cond2="scroll='yes'";
}else{
cond2="height="+(height + 60 + descrip.length)+" scroll='no'";
}
var s1 ="\<head\>\<TITLE\>"+title+"\</TITLE\>\<style\>body{font-family:verdana; font-size:10px; color:#333333}.but{font-size:10px}\</style\>\</head\>"
var s15="\<BODY BGCOLOR=#FFFFFF topmargin=5\>"
var s2 ="\<CENTER\>\<IMG SRC='"+image+"' width="+width+" height="+height+" BORDER=0\>\<br\>"+descrip+"\<br\>"
var s3 ="\<FORM\>\<INPUT TYPE='BUTTON' VALUE='Stäng fönstret'"+" onClick='self.close()' class=but\>"
var s4 ="\</FORM\>\</CENTER\>\</BODY\>"
ImageWindow=window.open("", "newwin"+width,"toolbar=no,scrollbars="+scroll+",menubar=no,"+cond1+","+cond2);
ImageWindow.document.write(s1+s15+s2+s3+s4)
ImageWindow.document.close()
}
-->
</script>
<style>
body {font-family:verdana; font-size:10px; color:#666666}
td {font-family:verdana; font-size:10px; color:#666666}
a {font-family:verdana; font-size:10px; color:#990000; text-decoration:none}
a:hover {text-decoration:underline}
hr {border:dashed #990000 1px;background-color:#ffffff;height:0px;}
</style>
</head>
<body>
<table cellpadding=0 cellspacing=0 width=630 align=center>
<tr>
<%
LocalGroup = Request.ServerVariables("PATH_TRANSLATED")
Source = Server.MapPath("../../db/ASP-gallery.mdb")
ImgData = Source
Select Case Request.QueryString("showoff")
Case "Title"
%><td colspan="<%=CellWidth%>" height=20>Du befinner dig i albumet <b><% =Request.QueryString("Category") %></b><hr></td></tr><tr><%
ShowSQL = "SELECT * FROM Images ORDER BY Title ASC"
Case "Added"
%><td colspan="<%=CellWidth%>" height=20>Här visas de 10 senaste bilderna<hr></td></tr><tr><%
ShowSQL = "SELECT * FROM Images ORDER BY Added DESC"
Case Else
%><td><b>Välj Album:</b><hr><ul><%
Trigger = 10
ShowSQL = "SELECT DISTINCT(Category) FROM Images ORDER BY Category ASC"
Call Rebuild("gallery.asp")
End Select
If Len(Request.QueryString("Category")) > 1 Then
ShowSQL = Replace(ShowSQL,"FROM Images ORDER","FROM Images WHERE Category = '" & Request.QueryString("Category") & "' ORDER")
End If
If Request.QueryString("New") = "yes" Then
End If
If Request.QueryString("top") > 0 Then
ShowSQL = Replace(ShowSQL,"SELECT ","SELECT TOP " & Request.QueryString("top") & " ")
End If
ShowSQL = Replace(ShowSQL,"FROM Images WHERE","FROM Images WHERE")
ShowSQL = Replace(ShowSQL,"FROM Images ORDER","FROM Images WHERE NOT (ThumbNail LIKE '%-t-t.jp%') ORDER")
Set ObjConn = Server.CreateObject("ADODB.Connection")
DataSource = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ImgData
ObjConn.Open DataSource
Set RS = ObjConn.Execute(ShowSQL)
If Not(RS.EOF) Then
j = 0
ShowOff = Request.QueryString("showoff")
Do While Not (RS.EOF)
If Request.QueryString("top") > 0 Then
If CInt(Request.QueryString("top")) <= k Then
ShowOff = "Alldone"
End If
End If
Select Case ShowOff
Case "Alldone"
RS.MoveNext
j = j + 1
k = k + 1
Case "Title"
j = j + 1
k = k + 1
%\>
\<td valign=bottom align=center\>\<A HREF="javascript:transferview('\<% =RS("FileName") %\>','\<% If Not IsNull(RS("Title")) Then %\>\<% =Replace(RS("Title"),Chr(39),"\\'") %\>\<% End If %\>',\<% =HaveVal("Fwidth",RS("ID"),RS("Fwidth")) %\>,\<% =HaveVal("Fheight",RS("ID"),RS("Fheight")) %\>,'\<% If Not IsNull(RS("Descrip")) Then %\>\<% =Replace(RS("Descrip"),Chr(39),"\\'") %\>\<% End If %\>')"\>
\<img src="\<% =HaveVal("Thumbnail",RS("ID"),RS("Thumbnail")) %\>" width=\<% =HaveVal("twidth",RS("ID"),RS("twidth")) %\> height=\<% =HaveVal("theight",RS("ID"),RS("theight")) %\> border=0\>\<br\>\<% =RS("Title") %\>\</a\>\</td\>
\<%
RS.MoveNext
Case "Added"
j = j + 1
k = k + 1
%\>
\<td valign=bottom align=center\>\<A HREF="javascript:transferview('\<% =RS("FileName") %\>','\<% If Not IsNull(RS("Title")) Then %\>\<% =Replace(RS("Title"),Chr(39),"\\'") %\>\<% End If %\>',\<% =HaveVal("Fwidth",RS("ID"),RS("Fwidth")) %\>,\<% =HaveVal("Fheight",RS("ID"),RS("Fheight")) %\>,'\<% If Not IsNull(RS("Descrip")) Then %\>\<% =Replace(RS("Descrip"),Chr(39),"\\'") %\>\<% End If %\>')"\>
\<img src="\<% =HaveVal("Thumbnail",RS("ID"),RS("Thumbnail")) %\>" width=\<% =HaveVal("twidth",RS("ID"),RS("twidth")) %\> height=\<% =HaveVal("theight",RS("ID"),RS("theight")) %\> border=0\>\<br\>\<b\>\<% =RS("Title") %\>\</a\>\</b\>\<br\>\<i\>tillagd \<%=Month(RS("Added"))%\>/\<%=Day(RS("Added"))%\>/\<%=Year(RS("Added"))%\>\</i\>\</td\>
\<%
RS.MoveNext
Case Else
%\>
\<li\>\<a href="gallery.asp?showoff=Title&Category=\<% If Not IsNull(RS("Category")) Then %\>\<% =Server.URLEncode(RS("Category")) %\>"\>\<% =RS("Category") %\>\<% Else %\>"\>Ny\<% End If %\>\</a\>
\<%
RS.MoveNext
End Select
If j =\> CellWidth Then
%\>\</tr\>\<tr\>\<%
j = 0
End If
Loop
End If
RS.Close
Set RS=Nothing
ObjConn.Close
Set ObjConn=Nothing
If Trigger = 10 Then
%>
</ul></td>
<% End If %>
</tr>
</table>
<table cellpadding=0 cellspacing=0 width=630 align=center>
<tr>
<td><hr></td></tr><tr><td align=center><a href="gallery.asp"><-- Tillbaka till Album-listan</a><br><a href="gallery.asp?showoff=Added&top=10&New=yes">Visa de 10 senaste bilderna</a><br></td></tr>
</table>
</body>
</html>
MVh / Phinx
PS det finns inga mellanslag i filnamnen inte på databasen heller som är Acess om jag fattade det hela rätt.
Hejsan
Ok nu hajjar jag tror jag sorry lite trögt i dag....
Här är de första 60 raderna i function.asp
<%@ LANGUAGE = VBScript.Encode %>
<%
Sub Rebuild(rooter)
MinMatch = BaseWidth * 50
thePath = Request.ServerVariables("PATH_INFO")
thePath = Replace(thePath,"/gallery.asp","")
thePath = Replace(thePath,"/galleryjs.asp","")
thePath = Replace(thePath,rooter,"")
Set objFS = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.GetFolder(Server.MapPath(thePath))
For Each objItem In objFolder.Files
If objItem.Size \> MinMatch And ((Right(objItem.Name,3) = "jpg" OR Right(objItem.Name,3) = "jpe" OR Right(objItem.Name,4) = "jpeg")) And (InStr(objItem.Name,"-t.") \< 1) Then
Set ObjectConn = Server.CreateObject("ADODB.Connection")
DataSource = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ImgData
ObjectConn.Open DataSource
Set RSt = ObjectConn.Execute("SELECT FileName FROM Images WHERE FileName LIKE '%" & objItem.Name & "'")
If RSt.EOF Then
SQLStatement = "INSERT INTO Images (FileName,Title) VALUES ('" & objItem.Name & "','" & objItem.Name & "')"
UpD(SQLStatement)
End If
RSt.Close
Set RSt=Nothing
End If
Next
For Each objsubFolder In objFolder.SubFolders
For Each objItem In objsubFolder.Files
If objItem.Size \> MinMatch And ((Right(objItem.Name,3) = "jpg" OR Right(objItem.Name,3) = "jpe" OR Right(objItem.Name,4) = "jpeg")) And (InStr(objItem.Name,"-t.") \< 1) Then
Set ObjectConn = Server.CreateObject("ADODB.Connection")
DataSource = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ImgData
ObjectConn.Open DataSource
Set RSt = ObjectConn.Execute("SELECT FileName FROM Images WHERE FileName LIKE '%" & objsubFolder.Name & "/" & objItem.Name & "'")
If RSt.EOF Then
SQLStatement = "INSERT INTO Images (FileName,Title) VALUES ('" & objsubFolder.Name & "/" & objItem.Name & "','" & objsubFolder.Name & "/" & objItem.Name & "')"
UpD(SQLStatement)
End If
RSt.Close
Set RSt=Nothing
End If
Next
Next
ObjectConn.Close
Set ObjectConn=Nothing
End Sub
Function UpD(SQL)
Set InsConn = Server.CreateObject("ADODB.Connection")
DataSource = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ImgData
InsConn.Open DataSource
If Len(SQL) \> 5 Then
Set qryInsert = InsConn.Execute(SQL)
End If
InsConn.Close
Set InsConn=Nothing
End Function
Tack tack för all hjälp.. ni är guld värda..
/ Phinx :-)
HEJ!
Du glömde kod-taggarna...
Felsökningssätt:
ObjectConn verkar inte finnas, hur är det med det?
För att lösa det använde ctrl+f, sista koden, uppåtsökning, letade efter ObjectConn:
- ObjectConn.Open DataSource
- DataSource = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ImgData
- ImgData = Source
- Source = Server.MapPath("../../db/ASP-gallery.mdb")
Ligger databasen där? Och finns den när du behöver den?
Oj... Den där koden är verkligen riktigt ordentligt dålig.
Det skapas mängder av databaskopplingar helt i onödan, och de flesta av dem stängs inte ens. Förutom att det använder massor av resurser ifrån databasen och blir oerhört långsamt, så kan du inte ha fler bilder än det antal databaskopplingar som databasen tillåter samtidigt.
Öppna databaskopplingen i början av subrutinen åtminstone, så att du använder en enda databaskoppling, och skicka med referensen till databaskopplingen till UpD() så att den kan använda samma databaskoppling istället för att öppna en ny hela tiden.