Hej, Du behöver inte deklarera ('dimma') dina variabler. Du kan tvinga fram att variablerna måste deklareras genom att skriva Option Explicit i början av koden. Fördelen med detta är att du inte kan skriva fel. Så här t.ex. Du bör absolut deklarera variablerna. De variabler som är deklarerade fungerar dubbelt så snabbt som de variabler som inte är deklarerade. Försvinner de deklarerade variablerna då koden körts klart? Eller vad händer?Dimensionera variabler?
Vad händer om man inte dimensionerar variabler i asp-kod.
Jag använder både variabler för text och variabler där jag lägger resultatet från beräkningar.
Ingen av dessa har jag dimensionerat.
Har problem med att IIS:n hänger sig efter en ca 1-2 veckor.
Kan avsaknaden av dimesionering av variabler påverka detta.
Jag skickar med koden till en sida nedan. Bör man dimensionera variabler i denna kod. Sidan anropas 100-150 ggr per dag.
Mvh
//Fredrik
<code>
<%@ Language=VBScript %>
<html>
<head>
<title>Etikettutskrift</title>
<link rel=stylesheet href="../css/etiketter.css" type="text/css">
</head>
<body>
<%
Function Svenska(String)
on Error resume next
String = Replace(String, "@","Ö")
String = Replace(String, "#","Ä")
String = Replace(String, "$","Å")
Svenska = String
End Function
IP = Request.ServerVariables("REMOTE_ADDR")
Artikelnr=Trim(request.form("Artnr"))
If IP <> "172.30.10.8" then
strquery= "SELECT * FROM Etikettutskrift WHERE Etiketter_Artikelinfo.Artnr = '" & Artikelnr & "' AND IP_nummer = '" & IP & "' ORDER BY Etiketter_val_av_skrivare.Benamning ASC"
Else
Datornamn = ""
Datornamn = Trim(Request.Cookies("Datornamn"))
If Datornamn <> "" then
strquery= "SELECT * FROM Etikettutskrift WHERE Etiketter_Artikelinfo.Artnr = '" & Artikelnr & "' AND Etiketter_IP_nummer.Datornamn = '" & Datornamn & "' ORDER BY Etiketter_val_av_skrivare.Benamning ASC"
Else
Response.Redirect "http://SQL01W2K/siba/etiketter/cookie.asp"
End If
End If
'--------------- Öppna databasen -----------------
set conn = Server.CreateObject("ADODB.Connection")
'conn.open "Intranet"
conn.Open "Driver={Microsoft Access Driver (*.mdb)};" & _
"Dbq=d:\Intranet\databas\Intranet.mdb;" & _
"Uid=;" & _
"Pwd=;"
'--------------------------------------------------
Set rst = Server.CreateObject("ADODB.recordset")
rst.Open strQuery, conn
Response.Write "<table border=0 cellspacing=0 cellpadding=1 rules=box>"
IF rst.EOF THEN
Response.Write "Det finns ingen artikel med efterfrågat artnr."
ELSE
Response.Write "<tr>"
kolumn1 = 120
kolumn2 = 260
kolumn3 = 70
kolumn4 = 70
If (rst("Pall") > "0" AND rst("Kart") > "0") Then
Antal_kartonger = rst("Pall")/rst("Kart")
Else
Antal_kartonger = 0
End If
Response.Write "<tr>"
Response.Write "<td width=" & kolumn1 & " align=left valign=top></td>"
Response.Write "<td width=" & kolumn2 & " align=left valign=top></td>"
Response.Write "<td width=" & kolumn3 & " rowspan=5 align=left valign=top><img src=" & Replace(rst("Sokvag_GIF"),"F:\ETIKETT\","") & " height=70></td>"
Response.Write "</tr>"
Response.Write "<tr>"
Response.Write "<td width=" & kolumn1 & " align=left valign=top>Artikelnr:</td>"
Response.Write "<td width=" & kolumn2 & " align=left valign=top>" & rst("Artnr") & "</td>"
Response.Write "</tr>"
Response.Write "<tr>"
Response.Write "<td width=" & kolumn1 & " align=left valign=top>Benämning:</td>"
' Response.Write "<td width=" & kolumn2 & " align=left valign=top>" & rst("Benamning") & "</td>"
Response.Write "<td width=" & kolumn2 & " align=left valign=top>" & rst("Artben") & "</td>"
Response.Write "</tr>"
Response.Write "<tr>"
Response.Write "<td width=" & kolumn1 & " align=left valign=top>Färg:</td>"
Response.Write "<td width=" & kolumn2 & " align=left valign=top>" & rst("Farg") & "</td>"
Response.Write "</tr>"
Response.Write "<tr>"
Response.Write "<td width=" & kolumn1 & " align=left valign=top>Antal/pall:</td>"
Response.Write "<td width=" & kolumn2 & " align=left valign=top>" & rst("Pall") & "</td>"
Response.Write "</tr>"
Response.Write "<tr>"
Response.Write "<td width=" & kolumn1 & " align=left valign=top>Antal/kartong:</td>"
Response.Write "<td width=" & kolumn2 & " align=left valign=top>" & rst("Kart") & "</td>"
Response.Write "</tr>"
Response.Write "<tr>"
Response.Write "<td width=" & kolumn1 & " align=left valign=top>Kartonger/pall:</td>"
Response.Write "<td width=" & kolumn2 & " align=left valign=top>" & Antal_kartonger & "</td>"
Response.Write "</tr>"
Response.Write "<tr>"
Response.Write "<td width=" & kolumn1 & " align=left valign=top><hr></td>"
Response.Write "<td width=" & kolumn2 & " align=left valign=top><hr></td>"
Response.Write "</tr>"
Response.Write "</table>"
Response.Write "<form action=Utskrift_art_fil.asp?Artnr=" & trim(rst("Artnr")) & " method=POST>"
'------------- Inställningar hämtning av etikettdata ----------------------------
strSort2="Benamning ASC"
'--------------------- Produktetikett -------------------------------------------
Response.Write "<table border=0 cellspacing=0 cellpadding=1 rules=box>"
Response.Write "<tr>"
Response.Write "<td width=" & kolumn1 & " align=left valign=top>Produkt:</td>"
If rst("Prodflagga")="OFF" then
Response.Write "<td width=30><input type=checkbox name=Prod_utskrift value=ON></td>"
Else
Response.Write "<td width=30><input type=checkbox name=Prod_utskrift value=ON checked></td>"
End If
Response.Write "<td width=80><input type=text name=Antal_prod size=6 value=9999> st</td>"
Response.Write "<td width=100 align=left valign=top><select size=1 name=Prodskrivare>"
On Error Resume Next
rst.MoveFirst
do while Not rst.eof
IF rst("Typ_av_etikett") = "Prod" then
Response.Write "<OPTION VALUE=" & Server.HTMLEncode(rst.Fields("ID").Value) & ">" & Server.HTMLEncode(rst.Fields("Benamning").Value) & "</OPTION>"
End If
rst.MoveNext
loop
Response.Write "</select></td>"
Response.Write "</tr>"
Response.Write "<tr>"
Response.Write "<td width=" & kolumn1 & " align=left valign=top><hr></td>"
Response.Write "<td width=30 align=left valign=top><hr></td>"
Response.Write "<td width=80 align=left valign=top><hr></td>"
Response.Write "<td width=145 align=left valign=top><hr></td>"
Response.Write "</tr>"
Response.Write "</table>"
'--------------------- Slut produktetikett ------------------------------------
'--------------------- Emballageetikett ------------------------------------
Response.Write "<table border=0 cellspacing=0 cellpadding=1 rules=box>"
Response.Write "<tr>"
Response.Write "<td width=" & kolumn1 & " align=left valign=top>Kartong:</td>"
If rst("Embflagga")="OFF" then
Response.Write "<td width=30><input type=checkbox name=Kart_utskrift value=ON></td>"
Else
Response.Write "<td width=30><input type=checkbox name=Kart_utskrift value=ON checked></td>"
End If
Response.Write "<td width=80><input type=text name=Antal_kart size=6 value=" & Antal_kartonger & "> st</td>"
Response.Write "<td width=200 align=left valign=top><select size=1 name=Embskrivare>"
On Error Resume Next
rst.MoveFirst
do while Not rst.eof
IF rst("Typ_av_etikett") = "Emb" then
Response.Write "<OPTION VALUE=" & Server.HTMLEncode(rst.Fields("ID").Value) & ">" & Server.HTMLEncode(rst.Fields("Benamning").Value) & "</OPTION>"
End If
rst.MoveNext
loop
Response.Write "</select></td>"
Response.Write "</tr>"
Response.Write "</table>"
Response.Write "<table border=0 cellspacing=0 cellpadding=1 rules=box>"
Response.Write "<tr>"
Response.Write "<td width=" & kolumn1 & " align=left valign=top></td>"
Response.Write "<td width=30><input type=checkbox name=Streckkodade_produkter value=ON checked></td>"
Response.Write "<td align=left valign=top>Bocka i rutan om produkterna är streckkodade.</td>"
Response.Write "</tr>"
Response.Write "</table>"
Response.Write "<table border=0 cellspacing=0 cellpadding=1 rules=box>"
Response.Write "<tr>"
Response.Write "<td width=" & kolumn1 & " align=left valign=top></td>"
Response.Write "<td width=30><input type=checkbox name=Ny_produkt value=ON></td>"
Response.Write "<td align=left valign=top>Bocka i rutan vid FÄRDIGBELAGD COMPACTKROK.</td>"
Response.Write "</tr>"
Response.Write "</table>"
' Response.Write "<table border=0 cellspacing=0 cellpadding=1 rules=box>"
' Response.Write "<tr>"
' Response.Write "<td width=" & kolumn1 & " align=left valign=top></td>"
' Response.Write "<td width=30 align=left valign=top></td>"
' Response.Write "<td width=220>Klicka här för att ändra antal i kartong.</td>"
' Response.Write "</tr>"
' Response.Write "<tr>"
' Response.Write "<td width=" & kolumn1 & " align=left valign=top><hr></td>"
' Response.Write "<td width=30 align=left valign=top><hr></td>"
' Response.Write "<td width=225 align=left valign=top><hr></td>"
' Response.Write "</tr>"
' Response.Write "</table>"
'--------------------- Slut emballageetikett ------------------------------------
Response.Write "<table>"
Response.Write "<tr>"
Response.Write "<td width=" & kolumn1 & " align=left valign=top></td>"
Response.Write "<td width=" & kolumn2 & " align=left valign=top><input type=submit value=Utskrift name=B1></td>"
Response.Write "</tr>"
Response.Write "</table>"
Response.Write "</form>"
END IF
rst.Close
conn.Close
Set conn = nothing
Set rst = nothing
%>
</body>
</html>
</code>Sv: Dimensionera variabler?
iterator = 10
while iterator > 0
... (gör nåt här)
itrator = itrator - 1 (felstavat namn!)
wend
Denna loop avslutas aldrig eftersom iterator alltid är = 10.
Om du skriver Option Explicit i början av programmet får du ingen hängning, du får i stället ett kompileringsfel.
ISS ASP-motor är inte 100% stabil. Jag kan inte direkt se någon anledning att din kod skulle vara orsaken. I vilket fall som helst ska ASP vara säker, så att du inte ska kunna hänga själva motorn, även om loopen ovan hänger ditt program. ASP-motorn kommer att slänga ut programmet efter en timeout i alla fall.Sv: Dimensionera variabler?
Du kan läsa mer här:
http://www.guffa.com/Programming_article.asp?id=17Sv: Dimensionera variabler?
//Fredrik