Avatar billede andersasp Nybegynder
29. januar 2004 - 17:14 Der er 14 kommentarer og
1 løsning

Fejl i connectionen!

Hejsa!

Jeg har en side som logger noget statistik, den kommer dog med følgende fejl som jeg ikke helt forstår!

Error Type:
Microsoft VBScript compilation (0x800A0411)
Name redefined
/admin/stats/pagecount.asp, line 2, column 4
Dim Con
---^

koden ser således ud:

<%
Dim Con
Dim Con_numRows
Dim RS

Set Con = Server.CreateObject("ADODB.Connection")
Con.Open MM_counter_STRING

Con_numRows = 0
%>

Connection som er åbnet ser således ud!

<%
Dim MM_counter_STRING
MM_counter_STRING = "dsn=counter;"
%>
Avatar billede eagleeye Praktikant
29. januar 2004 - 17:16 #1
Det er fordi du har to linjer hvor der står:

Dim Con

Includer du filen fra flere filer?
Avatar billede andersasp Nybegynder
29. januar 2004 - 17:24 #2
Ja det går jeg, den side som inkluderer ovenstående kode (pagecount) har følgende includes!

<!--#include file="Connections/hovedside.asp" -->
<!--#include file="admin/stats/Connections/counter.asp" -->
<!--#include file="admin/stats/count.asp" -->
<!--#include file="admin/stats/pagecount.asp" -->
Avatar billede eagleeye Praktikant
29. januar 2004 - 17:26 #3
Ok, men de andre sider includer de også den med databasen?
Avatar billede andersasp Nybegynder
29. januar 2004 - 17:35 #4
Jeg er ikke helt sikker på jeg forstår hvad du mener! men på f.eks. index.asp skal pagecount.asp inkluderes således den gemmer brugerens IP mm. på index.asp bruger den en anden connetion som hedder <!--#include file="Connections/hovedside.asp" -->

der kører derfor 2 databaser hovedside.mdb og counter.mdb

<%
Dim MM_hovedside_STRING
MM_hovedside_STRING = "dsn=hovedside;"
%>
Avatar billede eagleeye Praktikant
29. januar 2004 - 17:41 #5
Problemet er at når koden køre støder den på en denne linje to gange eller to ens linjer:
Dim Con

Du kan evt prøve at fjerne linjen:  Dim Con
Avatar billede andersasp Nybegynder
29. januar 2004 - 17:49 #6
Så kommer fejlen blot i næste linie, jeg har prøvet at fjerne dem enkeltvis!

Dim Con
Dim Con_numRows
Dim RS

Det er lidt underligt for den anden side som også inkluderes er der ingen problmer med!

count.asp

<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/counter.asp" -->
<%
Dim Con
Dim Con_numRows
Dim RS

Set Con = Server.CreateObject("ADODB.Connection")
Con.Open MM_counter_STRING

Con_numRows = 0
%>
Avatar billede eagleeye Praktikant
29. januar 2004 - 17:54 #7
Eks hvis man har en fil som indeholder dette:

<!--#include file="fil.asp" -->
<%
Dim Con
Dim Con_numRows
Dim RS
..
..
..
%>



og fil.asp indeholder dette:
<%
Dim Con
Dim Con_numRows
Dim RS
..
..
..
%>

Vil du få fejlen fordi include laver globale variable, og ikke lokale variable. Hvis du skal udføre koden i filen og ikke få variable ud af det kan du bruger server.execute

<%
Server.Execute("fil.asp")
Dim Con
Dim Con_numRows
Dim RS
..
..
..
%>
Avatar billede andersasp Nybegynder
29. januar 2004 - 18:03 #8
OK! jeg har nu lagt den ændrede kode ind i pagecount.asp:

<%
Server.Execute("pagecount.asp")
Dim Con
Dim Con_numRows
Dim RS

Set Con = Server.CreateObject("ADODB.Connection")
Con.Open MM_counter_STRING

Con_numRows = 0
%>
----------------------------------
men den kommer med denne fejl!

Server object error 'ASP 0228 : 80004005'

Server.Execute Error

/ny/admin/stats/pagecount.asp, line 2

The call to Server.Execute failed while loading the page.
Avatar billede eagleeye Praktikant
29. januar 2004 - 18:21 #9
Køre koden ikke på en IIS server??
Det kunne type på det ikke gør da server.execute ikke er med i tidligere version af vbscript.
Avatar billede andersasp Nybegynder
29. januar 2004 - 18:31 #10
Jeg kører siden på azeros windows servere, og jeg ved ikke lige hvilken version det er. jeg er dog kommet frem til dette: men her kommer den med fejl i linie 30 som jeg har markert så du ikke skal tælle:

fejlen er: syntax error in INSERT INTO statement

<!--#include file="Connections/counter.asp" -->
<%
Dim Con2
Dim Con2_numRows
Dim RS2

Set Con2 = Server.CreateObject("ADODB.Connection")
Con2.Open MM_counter_STRING

Con2_numRows = 0
%>
<%
Function fixQuotes( theString )
    fixQuotes = Replace( theString, "'", "''" )
End Function

IP = Request.ServerVariables("REMOTE_ADDR")
URL = Request.ServerVariables("URL")

If Session("Reload") <> "" & IP & "," & URL & "" Then
   
    Session("Reload") = "" & IP & "," & URL & ""

    Sql = "SELECT * FROM sider WHERE URL = '" & URL & "'"
    Set RS2 = Con2.Execute(Sql)   

        If (RS2.BOF Or RS2.EOF) Then
            Count = 1
            SqlNy = "INSERT INTO sider (URL, Count) VALUES('" & fixQuotes(URL) & "','" & fixQuotes(Count) & "')"
            Con2.Execute(SqlNy)  ' ---  HER KOMMER FEJLEN!!!!!!!!!!!!!!!!!
    else
        Site = RS2("URL")
        End If
       
       
        If Site = URL Then
            Count = RS2("Count") + 1
            SqlCount = "UPDATE sider SET Count='" & Count & "' WHERE URL = '" & URL & "'"
            Con2.Execute(SqlCount)
        End If       
End If

%>
<%
Con2.Close()
Set RS2 = Nothing
Set Con2 = Nothing
%>
Avatar billede eagleeye Praktikant
29. januar 2004 - 18:35 #11
Er Count en tal kolonne?
Avatar billede andersasp Nybegynder
29. januar 2004 - 18:36 #12
nej det er tekst! skal dette ændres til tal??
Avatar billede eagleeye Praktikant
29. januar 2004 - 18:39 #13
Nej det fint med tekst. Dog skal du huske at hvis du laver en ORDER BY count  så er "10" mindre en "2" alfabetisk set.


Så det fordi count er et reserveret ord i Access så prøv med [] omkring [Count]:

SqlNy = "INSERT INTO sider (URL, [Count]) VALUES('" & fixQuotes(URL) & "','" & fixQuotes(Count) & "')"
Avatar billede andersasp Nybegynder
29. januar 2004 - 18:45 #14
nu virker det sku!!!  Tusinde tak :-D

jeg skal dog lige bruge et svar!
Avatar billede eagleeye Praktikant
29. januar 2004 - 18:46 #15
Ok her et svar ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester