Hej, Du öppnar din connection med DSN anropet "Intranet" och sedan frigör det snyggt ock fint. Om detta fungerar i 2 dagar och sedan inte mer skulle jag tippa på att det är något problem med din server som inte klarar av att göra ett uppslag till DSN adressen.ODBC-länk kan inte öppnas efter ett tag.
Jag tror att jag har missat något i koden nedan. Koden fungerar men efter ett tag (ca 2 dagar ) så kan inte ODBC-länken "Intranet" öppnas.
Jag misstänker att jag inte "stänger allt" efter mig då en hämtning är gjord men jag kan inte hitta vad felet är.
//Fredrik
<code>
<%@ Language=VBScript %>
<html>
<head>
<title>
Etikettutskrift till fil
</title>
<link rel=stylesheet href="../css/listor_prod.css" type="text/css">
</head>
<body>
<%
IP = Request.ServerVariables("REMOTE_ADDR")
Artikelnr=Trim(request("Artnr"))
Embskrivare = Trim(request.Form("Embskrivare"))
Embetikett = Request.Form("Kart_utskrift")
Embetikett_antal = Trim(request.form("Antal_kart"))
Embetikett_streckkodade_prod = Request.Form("Streckkodade_produkter")
Prodskrivare = Trim(request.Form("Prodskrivare"))
Prodetikett = Request.Form("Prod_utskrift")
Prodetikett_antal = Trim(request.form("Antal_prod"))
strquery= "SELECT * FROM Etiketter_artikelinfo, Etiketter_bildsokvag WHERE Etiketter_artikelinfo.Artgrp = Etiketter_bildsokvag.Artgrp AND Artnr = '" & Artikelnr & "'"
set conn = Server.CreateObject("ADODB.Connection")
conn.open "Intranet"
Set rst = Server.CreateObject("ADODB.recordset")
rst.Open strQuery, conn
Function Svenska(String)
on Error resume next
String = Replace(String, "@","Ö")
String = Replace(String, "#","Ä")
String = Replace(String, "$","Å")
Svenska = String
End Function
'---------------- Skriver till fil för emballageetikett--------------
If Embetikett = "ON" then
strQuery2="SELECT * FROM Etiketter_val_av_skrivare WHERE ID = " &Embskrivare
set rst2 = Server.CreateObject("ADODB.recordset")
rst2.Open strQuery2, conn
Skrivare1 = Trim(rst2("Skrivare1_i_Bartender"))
Etikett = Trim(rst2("Etikett"))
Artnr = Trim(rst("Artnr"))
Benamning = Trim(rst("Benamning"))
Farg = Trim(rst("Farg"))
Antal_i_kartong = Trim(rst("Kart"))
EAN_kod = Trim(rst("EAN_kod"))
Emballagekod = Trim(rst("Emballagekod"))
Sprak_1_ben = Trim(rst("Sprak_1_ben"))
Sprak_1_farg = Trim(rst("Sprak_1_farg"))
Sprak_2_ben = Trim(rst("Sprak_2_ben"))
Sprak_2_farg = Trim(rst("Sprak_2_farg"))
Sprak_3_ben = Trim(rst("Sprak_3_ben"))
Sprak_3_farg = Trim(rst("Sprak_3_farg"))
Sprak_4_ben = Trim(rst("Sprak_4_ben"))
Sprak_4_farg = Trim(rst("Sprak_4_farg"))
Sprak_5_ben = Trim(rst("Sprak_5_ben"))
Sprak_5_farg = Trim(rst("Sprak_5_farg"))
Kunds_art_1 = Trim(rst("Kunds_art_1"))
Kunds_art_2 = Trim(rst("Kunds_art_2"))
Kunds_art_3 = Trim(rst("Kunds_art_3"))
Bildsokvag = replace(Trim(rst("Sokvag_TIF")),"F:\ETIKETT\BILD\","C:\ETIKETTLAYOUTER\BILDER\")
If Embetikett_streckkodade_prod = "ON" then
Streckade = "Streckkodade;produkter;i kartongen"
Else
Streckade = ";;"
End If
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
Fil_emb = ("S:\") & replace(IP,".","_") & "_emb.dd"
Fil_emb_lokal = ("C:\etiketter\") & replace(IP,".","_") & "_emb.dat"
Set OutStream= FileObject.CreateTextFile (Fil_emb, True)
OutStream.WriteLine("%BTW% /RUN /F=C:\Etikettlayouter\" & Etikett & " /D=""" & Fil_emb_lokal & """ /PRN=""" & Skrivare1 & """ /P /X /C=" & Embetikett_antal)
OutStream.WriteLine("%END%")
OutStream.WriteLine(Artnr &";"& Benamning &";"& Farg &";"& Antal_i_kartong &";"& EAN_kod &";"& Emballagekod &";"& Sprak_1_ben &";"& Sprak_1_farg &";"& Sprak_2_ben &";"& Sprak_2_farg &";"& Sprak_3_ben &";"& Sprak_3_farg &";"& Sprak_4_ben &";"& Sprak_4_farg &";"& Sprak_5_ben &";"& Sprak_5_farg &";"& Kunds_art_1 &";"& Kunds_art_2 &";"& Kunds_art_3 &";"& Bildsokvag &";"& Streckade)
rst2.Close
Outstream.Close
End If
'---------------- Skriver till fil för produktetikett--------------
If Prodetikett = "ON" then
strQuery2="SELECT * FROM Etiketter_val_av_skrivare WHERE ID = " &Prodskrivare
set rst2 = Server.CreateObject("ADODB.recordset")
rst2.Open strQuery2, conn
Skrivare1 = Trim(rst2("Skrivare1_i_Bartender"))
Skrivare2 = Trim(rst2("Skrivare2_i_Bartender"))
Etikett = Trim(rst2("Etikett"))
Artnr = Trim(rst("Artnr"))
Benamning = Trim(rst("Benamning"))
Farg = Trim(rst("Farg"))
EAN_kod = Trim(rst("EAN_kod"))
Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
Fil_prod = ("S:\") & replace(IP,".","_") & "_prod.dd"
Fil_prod_lokal = ("C:\etiketter\") & replace(IP,".","_") & "_prod.dat"
Set OutStream= FileObject.CreateTextFile (Fil_prod, True)
If len(Skrivare2)>=1 then
OutStream.WriteLine("%BTW% /RUN /F=C:\Etikettlayouter\" & Etikett & " /D=""" & Fil_prod_lokal & """ /PRN=""" & Skrivare1 & """ /P /X /C=" & Prodetikett_antal)
OutStream.WriteLine("%BTW% /RUN /F=C:\Etikettlayouter\" & Etikett & " /D=""" & Fil_prod_lokal & """ /PRN=""" & Skrivare2 & """ /P /X /C=" & Prodetikett_antal)
OutStream.WriteLine("%END%")
OutStream.WriteLine(Artnr &";"& Benamning &";"& Farg &";"& EAN_kod)
Else
OutStream.WriteLine("%BTW% /RUN /F=C:\Etikettlayouter\" & Etikett & " /D=""" & Fil_prod_lokal & """ /PRN=""" & Skrivare1 & """ /P /X /C=" & Prodetikett_antal)
OutStream.WriteLine("%END%")
OutStream.WriteLine("Tomrad")
OutStream.WriteLine(Artnr &";"& Benamning &";"& Farg &";"& EAN_kod)
End If
rst2.Close
Outstream.Close
End If
'---------------------------------------------------------------------
rst.Close
conn.Close
Set conn = nothing
Set rst = nothing
Set rst2 = nothing
Response.Redirect "http://172.30.10.7/siba/etiketter/Utskrift_art_val.asp"
%>
</body>
</html>
</code>Sv: ODBC-länk kan inte öppnas efter ett tag.
Du kan testa att i stället skriva en DSN-lös adress (se artikeln: http://www.pellesoft.nu/login/articles/other/connectionstrings.asp) och se om detta kan hjälpa.
Hälsningar
/Pelle