webForumDet fria alternativet

Problem med öppning av databas.

7 svar · 296 visningar · startad av Nicklas

NicklasMedlem sedan juni 200133 inlägg
#1

Hej.

Är det någon som vet hur/om det går att lösa så att man inte behöver anroppa och stänga databasen 4 ggr?

Jag har försökt med att göra en IF-sats men det lyckades ju inte :stud

Tack på förhand.

<%@ LANGUAGE="VBSCRIPT" %>
<%
set Databas = Server.CreateObject("ADODB.Connection")
session("dbloggbok") = "provider=SQLOLEDB ;Data source=BHSN43;Initial Catalog=mediainfo;user id=mmuser; password=mmuser"
Databas.Open session("dbloggbok")

lnklogid = Request.Querystring("logid")

'kollar alltid maxid, man kan bara redigera maxid
strSQLMaxID = "SELECT MAX(LogID)AS MaxId FROM Loggbok"
set rsMaxid = Databas.Execute (strSQLMaxid)
strmaxid = rsMaxid("MaxId")

if len(lnklogid) > 0 then
	strSQL = "SELECT * FROM Loggbok WHERE LogID = " & lnklogid
else
	strSQL = "SELECT * FROM Loggbok WHERE LogID = " & strmaxid
end if

function mydateformat(str)
if len(month(str))< 2 then
	strmonth = "-0" & month(str)
else
	strmonth = "-" & month(str)
end if
if len(day(str))< 2 then
	strday = "-0" & day(str)
else
	strday = "-" & day(str)
end if

mydateformat = year(str) & strmonth & strday & " " & formatdatetime(str,vbshorttime)

end function

set rs = Databas.Execute (strSQL)
strlogid = rs("LogID")
%>

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft FrontPage 5.0">
<LINK rel="stylesheet" type="text/css" href="css/mmLoggbok.css">
<TITLE></TITLE>

</HEAD>

<BODY>

<%=mydateformat(rs("Datum"))%>

<%=mydateformat(rs("Datum"))%> Skiftlag <%=rs("Skiftlag")%>

<%if strlogid <> strmaxid then %> 

<%else%>
<A HREF="loggbokdetalj.asp?anm=<%=rs("LogID")%>&sort=Steam"   title="Klicka för att redigera Ånga">Ånga</A>
<%end if%>

<%=rs("Steam")%>

<%if strlogid <> strmaxid then %> 

<%else%>
<A HREF="loggbokdetalj.asp?anm=<%=rs("LogID")%>&sort=AirWater" title="Klicka för att redigera Luft/Vatten">Luft/vatten</A>
<%end if%>
<%=rs("AirWater")%>

<%if strlogid <> strmaxid then %> 

<%else%>
<A HREF="loggbokdetalj.asp?anm=<%=rs("LogID")%>&sort=Env" title="Klicka för att redigera miljö">Miljö</A>
<%end if%>

<%=rs("Env")%>

<%if strlogid <> strmaxid then %> 

<%else%>
<A HREF="loggbokdetalj.asp?anm=<%=rs("LogID")%>&sort=Hg" title="Klicka för att redigera CRV">CRV</A>
<%end if%>
<%=rs("Hg")%>

<%if strlogid <> strmaxid then %> 

<%else%>
<A HREF="loggbokdetalj.asp?anm=<%=rs("LogID")%>&sort=Earth" title="Klicka för att redigera Jordreningen">Jordreningen</A>
<%end if%>

<%=rs("Earth")%>

<%if strlogid <> strmaxid then %> 

<%else%>
<A HREF="loggbokdetalj.asp?anm=<%=rs("LogID")%>&sort=Other" title="Klicka för att redigera Övrigt">Övrigt</A>
<%end if%>

<%=rs("Other")%>

<%
rsMaxid.close
rs.close
databas.Close
%>

<%
set Databas = Server.CreateObject("ADODB.Connection")
session("dbloggbok") = "provider=SQLOLEDB ;Data source=BHSN43;Initial Catalog=mediainfo;user id=mmuser; password=mmuser"
Databas.Open session("dbloggbok")

strSQL = "SELECT * FROM WhiteBoard WHERE wbID = 1"
set rs = Databas.Execute(strSQL)

%>

<%=rs("wbtext")%>

<%
rs.close
databas.Close
%>

<%
set Databas = Server.CreateObject("ADODB.Connection")
session("dbloggbok") = "provider=SQLOLEDB ;Data source=BHSN43;Initial Catalog=mediainfo;user id=mmuser; password=mmuser"
Databas.Open session("dbloggbok")

strSQL = "SELECT * FROM Lasse WHERE laID = 1"
set rs = Databas.Execute(strSQL)

%>

<%=rs("latext")%>

<%
rs.close
databas.Close
%>

<%
set Databas = Server.CreateObject("ADODB.Connection")
session("dbloggbok") = "provider=SQLOLEDB ;Data source=BHSN43;Initial Catalog=mediainfo;user id=mmuser; password=mmuser"
Databas.Open session("dbloggbok")

strSQL = "SELECT * FROM Bengt WHERE beID = 1"
set rs = Databas.Execute(strSQL)

%>

<%=rs("betext")%>

<%
rs.close
databas.Close
%>
</BODY>
@ndersMedlem sedan juni 200032 969 inlägg
#2

Det är bara att öppna din databaskoppling en gång, och inte stänga den förrän du är klar (dvs sist i filen).

mvh

NicklasMedlem sedan juni 200133 inlägg
#3

Tack @nders, Jag får det ändå inte att fungera.

Det är dessa rader som jag inte vet hur jag ska inkludera i koden.

strSQL = "SELECT * FROM Bengt WHERE beID = 1"
strSQL = "SELECT * FROM WhiteBoard WHERE wbID = 1"
strSQL = "SELECT * FROM Lasse WHERE laID = 1"

@ndersMedlem sedan juni 200032 969 inlägg
#4

Hmm... Vad innehåller dina tabeller? Borde inte all data ligga i samma tabell?

NicklasMedlem sedan juni 200133 inlägg
#5

Det är som du säger att jag har data i olika tabeller, jag kanske ska tänka om och lägga allt i en och samma tabell?

Går det att lösa ändå?

@ndersMedlem sedan juni 200032 969 inlägg
#6

Följande saker förstår jag inte:

  1. Varför du har "liknande" / "samma sorts" data i flera tabeller. Lägg ihop det till en tabell.

  2. Varför du skapar en session med din connectionstring inför varje databasöppning.

  3. Varför du har massor av if-satser med samma villkor, där bara else-delen utför något.

Om jag vore du skulle jag:

  1. Se till att lägga allt liknande / samma sorts data i en tabell.
  2. Se till att bara öppna ditt connectionobjekt en gång
  3. Skriva om dina if-satser så det inte blir lika mycket luft. Istället för att bara använda else-delen, skriv om if-satsen. Istället för att använda <> (skilt från), använd då =.

Edit: Jo, det går att lösa ändå, men jag föredrar att problem löses på rätt sätt. :)

mvh

NicklasMedlem sedan juni 200133 inlägg
#7

Tack @nders, självklart ska det lösas på rätt sätt. Jag ska försöka rensa upp och lägga allt i en o samma tabell.

@ndersMedlem sedan juni 200032 969 inlägg
#8

Börja att rensa och försök bygga om lite, så är det bara att återkomma om du behöver mer hjälp. Jag hoppas du fått lite hjälp på vägen av mig i alla fall.

Lycka till! :)

261 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
125 ms — hämta forumlista (db)
130 ms — hämta statistik (db)
129 ms — hämta tråd, inlägg och bilagor (db)