webForumDet fria alternativet

Connections

ASPur ASP

18 svar · 221 visningar · startad av Tobbster

TobbsterMedlem sedan mars 2001309 inlägg
#1

Hur skriver jag om den här koden för att slippa göra två connections till databasen...För det är väl onödigt ?

Koden funkar ju som den ska men man ska ju inte göra onödiga saker ;-) .....

<%
SQL1 = "select distinct kontor from telelista"
Set conn=Server.CreateObject("ADODB.Connection")
        Set rs1=Server.CreateObject("ADODB.Recordset")
        conn.Open "DSN=Nexus;UID=;PWD="
        rs1.Open SQL1,conn,1,2
         %>

<%Do while not rs1.eof%>
<a name="<%=rs1("kontor")%>"></a>
<body bgcolor="#ffffff" marginwidth="15" leftmargin="15" topmargin="25">
<!--*************Här börjar allt*********************************-->
<table width="250" border="0" cellspacing="0" cellpadding="0" height="12">
  <tr>
    <td width="7" height="12"><img src="pic/hjorne.jpg" width="8" height="12" /></td>
    <td bgcolor="#92151A" background="pic/pixel.gif" width="100%" height="12" class="lyslink"><b><%=rs1("kontor")%></b></font></td>
    <td width="416" height="12"><img src="pic/hjorne2.jpg" width="20" height="12" /></td>
  </tr>
</table>
<table width="555" border="0" cellspacing="0" cellpadding="0" bgcolor="#000000">
  <tr>
    <td background="pic/pixel.gif" width="100%" height="1"></td>
  </tr>
</table>

<table border="0" cellspacing="0" cellpadding="3" width="550">
<tr><td class="text" bgcolor="#cccccc">

<!--************* Här börjar överskrifter*********************** -->

<table border="0" cellspacing="0" cellpadding="2" width="550">
  <tr>
    <td valign="top" align="left" class="text" bgcolor="#cccccc" width="35%">Namn</td>
    <td valign="top" align="left" class="text" bgcolor="#cccccc" width="13%">Enhet</td>
    <td valign="top" align="left" class="text" bgcolor="#cccccc" width="26%"> Telekontor</td>
    <td valign="top" align="left" class="text" bgcolor="#cccccc" width="26%"> Telemobil</td>

  </tr>
  <tr>
     <td colspan=4><hr></td>
  </tr>
[b]<%
SQL2 = "select * from telelista where kontor = '"& rs1("kontor")&"' "
        Set conn1=Server.CreateObject("ADODB.Connection")
        Set rs2=Server.CreateObject("ADODB.Recordset")
        conn1.Open "DSN=Nexus;UID=;PWD="
        rs2.Open SQL2,conn1,1,2
         %>
  <!--Här börja listan med personer -->
  <%Do while not rs2.eof%>[/b]
  <tr>
    <td><a href="Javascript:visittkort();" class="link"><b><%= rs2("fnamn")%> <%= rs2("Enamn")%></b></a></td>
    <td valign="top" align="left" class="text" bgcolor="#cccccc" width="13%"><%=rs2("Enhet")%> </td>
    <td valign="top" align="left" class="text" bgcolor="#cccccc" width="26%"><%=rs2("telenrk")%> </td>
    <td valign="top" align="left" class="text" bgcolor="#cccccc" width="26%"><%=rs2("telenrm")%> </td>
  </tr>
  <%rs2.movenext
  loop%>

</table>
</table>
<br>
<br>
<br>
<%rs1.movenext
loop%>
<%rs1.close
conn.close
rs2.close
conn1.close
%>
</body>
</html>

------------------
Är man medlem på WF så behöver man inga vänner !

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Det räcker med en sql-fråga också. Jag ändrade så att man bara skriver ut namnet på kontoret när den kolumnen byter värde.

<%
SQL1 = "select * from telelista order by kontor"
Set conn=Server.CreateObject("ADODB.Connection")

conn.Open "DSN=Nexus;UID=;PWD="
Set rs1= conn.execute(sql1)
%>
kontor = ""
<%Do while not rs1.eof%>
<% if kontor <> rs1("kontor") then
kontor = rs1("kontor")
<a name="<%=rs1("kontor")%>"></a>
<body bgcolor="#ffffff" marginwidth="15" leftmargin="15" topmargin="25">
<!--*************Här börjar allt*********************************-->
<table width="250" border="0" cellspacing="0" cellpadding="0" height="12">
<tr>
<td width="7" height="12"><img src="pic/hjorne.jpg" width="8" height="12" /></td>
<td bgcolor="#92151A" background="pic/pixel.gif" width="100%" height="12" class="lyslink"><b><%=rs1("kontor")%></b></font></td>
<td width="416" height="12"><img src="pic/hjorne2.jpg" width="20" height="12" /></td>
</tr>
</table>
<table width="555" border="0" cellspacing="0" cellpadding="0" bgcolor="#000000">
<tr>
<td background="pic/pixel.gif" width="100%" height="1"></td>
</tr>
</table>

<table border="0" cellspacing="0" cellpadding="3" width="550">
<tr><td class="text" bgcolor="#cccccc">

<!--************* Här börjar överskrifter*********************** -->

<table border="0" cellspacing="0" cellpadding="2" width="550">
<tr>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="35%">Namn</td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="13%">Enhet</td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="26%"> Telekontor</td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="26%"> Telemobil</td>

</tr>
<tr>
<td colspan=4><hr></td>
</tr>
<%
end if
%>
<!--Här börja listan med personer -->

<tr>
<td><a href="Javascript:visittkort();" class="link"><b><%= rs1("fnamn")%> <%= rs1("Enamn")%></b></a></td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="13%"><%=rs1("Enhet")%> </td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="26%"><%=rs1("telenrk")%> </td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="26%"><%=rs1("telenrm")%> </td>
</tr>

</table>
</table>
<br>
<br>
<br>
<%rs1.movenext
loop%>
<%rs1.close
conn.close
%>
</body>
</html>

------------------
essentitia preter non sans multiplicandum

LukaspojkenMedlem sedan maj 20011 312 inlägg
#3

Testa att använda dig av arrays.

strSQL = "SELECT voteID, voteFraga FROM vote WHERE voteID=" & Request.QueryString("voteID")
Set RecSet = Connect.Execute(strSQL)

IF NOT RecSet.EOF THEN
arrRecords = RecSet.GetRows()
voteID = arrRecords(0, 0)
voteFraga = arrRecords(1, 0)
End if

strSQL = "En ny SQLfråga"
Set RecSet = Connect.Execute(strSQL)

IF NOT RecSet.EOF THEN
arrRecords2 = RecSet.GetRows()
variabel1 = arrRecords(0, 0)
variabel2 = arrRecords(1, 0)
End if

RecSet.Close
Set RecSet = nothing
Connect.Close
Set Connect = nothing

Sen i slutet så kör du en close. När du kört detta så använd dig av array-variablerna i html-koden.

------------------
Alltid lär man sig något nytt varje dag...

[Redigerat av Lukaspojken den 24 jul 2001]

TobbsterMedlem sedan mars 2001309 inlägg
#4

Tackar LarsG ...Du är en klippa som vanlig... Men tyvärr funkar det Inte som det ska....
(Men om det hade funkat... ;-) )
Vinner man mycket prestandamässigt på att skriva som du gjorde jämfört med som jag gjorde och i sådana fall ..Vad är det som är så mycket bättre….

------------------
Är man medlem på WF så behöver man inga vänner !

[Redigerat av Tobbster den 24 jul 2001]

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Ja, det blir stor skillnad. En sak som kostar mycket när man jobbar mot databaser är att kompilera sql-satsen. I den första varianten så blir det man kompilerar en sql-fråga för varje kontor + den första, så om du har 10 olika kontor så blir det 11 olika sql-satser som kompileras jämfört med 1 i den andra varianten. Det är samma sak med recordset.

En annan faktor som påverkar prestanda mycket, är hur många nätverksanrop man gör. Det man kan göra åt det är att använda getrows (som Lukaspojken beskrev). Det innebär att man hämtar all data till en array med ett anrop jämfört med att man hämtar varje enskild post med ett anrop.

------------------
essentitia preter non sans multiplicandum

TobbsterMedlem sedan mars 2001309 inlägg
#6

LarsG jag får ju ett lite problem naä jag använder din kod !!!!
Iom att jag använder en nestlad tabel när jag skriver ut personernas namn och telenr mm ...Så blir det ju inte så bra när loopen kommer i sitt andra varv och kontor inte har ändrat sig....Då missar den ju halva tabelen !!!!!

------------------
Är man medlem på WF så behöver man inga vänner !

LarsGMedlem sedan dec. 200012 464 inlägg
#7

Nja, nu förstår jag inte riktigt. Det var därför jag la till


if  kontor <> rs1("kontor") then

och den sträcker sig ner till där man skriver ut persondata.

------------------
essentitia preter non sans multiplicandum

TobbsterMedlem sedan mars 2001309 inlägg
#8

Efter första varvet i loopen innan kontor ändras...Så hoppas ju halva av tabellen över.....
Jag vill ju att alla namn som hör till samma kontor skrivs inom samma tabell...

Förstår om det är svårt att fatta vad jag menar.....

------------------
Är man medlem på WF så behöver man inga vänner !

LarsGMedlem sedan dec. 200012 464 inlägg
#9

Jag såg att jag missade lite med <% %> taggarna i början av mitt förra inlägg.

<%
SQL1 = "select * from telelista order by kontor"
Set conn=Server.CreateObject("ADODB.Connection")
conn.Open "DSN=Nexus;UID=;PWD="
Set rs1= conn.execute(sql1)

kontor = ""
Do while not rs1.eof
 if kontor <> rs1("kontor") then
kontor = rs1("kontor")
%>
<a name="<%=rs1("kontor")%>"></a>
<body bgcolor="#ffffff" marginwidth="15" leftmargin="15" topmargin="25">
<!--*************Här börjar allt*********************************-->

------------------
essentitia preter non sans multiplicandum

TobbsterMedlem sedan mars 2001309 inlägg
#10

<% Taggarna har jag redan fixat till men problemet är när sidan ska skrivas ut...Första personen tillhörande varje kontor hamnar rätt i tabellen.Men dom resterande hamnar utanför tack vare nestlingen...Jag fattar inte hur jag ska få in dom i tabellen...Så som jag hade koden från början med två connections så var det inga problem ,men när man skulle snygga till det så blev det problem som vanlig.....

------------------
Är man medlem på WF så behöver man inga vänner !

TobbsterMedlem sedan mars 2001309 inlägg
#11

Jag visar i koden vad som missas nu så kanske någon förstår...Jag ber om ursäkt om jag är kass på att förklara...

</head>
<%
SQL1 = "select * from telelista order by kontor"
Set conn=Server.CreateObject("ADODB.Connection")
conn.Open "DSN=Nexus;UID=;PWD="
Set rs1= conn.execute(sql1)
kontor = ""
Do while not rs1.eof
if kontor <> rs1("kontor") then
kontor = rs1("kontor")
%>
<a name="<%=rs1("kontor")%>"></a>
<body bgcolor="#ffffff" marginwidth="15" leftmargin="15" topmargin="25">
<!--*************Här börjar allt*********************************-->
<a name="<%=rs1("kontor")%>"></a>
<body bgcolor="#ffffff" marginwidth="15" leftmargin="15" topmargin="25">
<table width="250" border="0" cellspacing="0" cellpadding="0" height="12">
<tr>
<td width="7" height="12"><img src="pic/hjorne.jpg" width="8" height="12" /></td>
<td bgcolor="#92151A" background="pic/pixel.gif" width="100%" height="12" class="lyslink"><b><%=rs1("kontor")%></b></font></td>
<td width="416" height="12"><img src="pic/hjorne2.jpg" width="20" height="12" /></td>
</tr>
</table>
<table width="555" border="0" cellspacing="0" cellpadding="0" bgcolor="#000000">
<tr>
<td background="pic/pixel.gif" width="100%" height="1"></td>
</tr>
</table>
[red][b]<table border="0" cellspacing="0" cellpadding="3" width="550">
<tr><td class="text" bgcolor="#cccccc">[/red][/b]
[b]<!-- Det är den feta koden över som missas efter första varvet i loopen-->[/b]

<!--************* Här börjar överskrifter*********************** -->

<table border="0" cellspacing="0" cellpadding="2" width="550">
<tr>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="35%">Namn</td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="13%">Enhet</td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="26%"> Telekontor</td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="26%"> Telemobil</td>

</tr>
<tr>
<td colspan=4><hr></td>
</tr>
 <%
end if
%>
<!--Här börja listan med personer -->
<tr>
<td><a href="Javascript:visittkort();" class="link"><b><%= rs1("fnamn")%> <%= rs1("Enamn")%></b></a></td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="13%"><%=rs1("Enhet")%> </td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="26%"><%=rs1("telenrk")%> </td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="26%"><%=rs1("telenrm")%> </td>
</td>
</tr>
</tr>
</table>
</table>
<br>
<br>
<br>
<%rs1.movenext
loop%>
<%rs1.close
conn.close
%>
</body>
</html>

------------------
Är man medlem på WF så behöver man inga vänner !

[Redigerat av Tobbster den 24 jul 2001]

[Redigerat av Tobbster den 24 jul 2001]

LarsGMedlem sedan dec. 200012 464 inlägg
#12

Nej, det är jag som är kass på html. Jag missade hur dina <table> </table> taggar hängde ihop.

Nu la jag in att man avslutar <table> när man byter mellan kontoren. Det är lite hackigt men det borde fungera.

<%
SQL1 = "select * from telelista order by kontor"
Set conn=Server.CreateObject("ADODB.Connection")
conn.Open "DSN=Nexus;UID=;PWD="
Set rs1= conn.execute(sql1)
kontor = ""
Do while not rs1.eof
if  kontor <> rs1("kontor") then
kontor = rs1("kontor") %>
<a name="<%=rs1("kontor")%>"></a>
<body bgcolor="#ffffff" marginwidth="15" leftmargin="15" topmargin="25">
<!--*************Här börjar allt*********************************-->
<table width="250" border="0" cellspacing="0" cellpadding="0" height="12">
<tr>
<td width="7" height="12"><img src="pic/hjorne.jpg" width="8" height="12" /></td>
<td bgcolor="#92151A" background="pic/pixel.gif" width="100%" height="12" class="lyslink"><b><%=rs1("kontor")%></b></font></td>
<td width="416" height="12"><img src="pic/hjorne2.jpg" width="20" height="12" /></td>
</tr>
</table>
<table width="555" border="0" cellspacing="0" cellpadding="0" bgcolor="#000000">
<tr>
<td background="pic/pixel.gif" width="100%" height="1"></td>
</tr>
</table>

<table border="0" cellspacing="0" cellpadding="3" width="550">
<tr><td class="text" bgcolor="#cccccc">

<!--************* Här börjar överskrifter*********************** -->

<table border="0" cellspacing="0" cellpadding="2" width="550">
<tr>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="35%">Namn</td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="13%">Enhet</td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="26%"> Telekontor</td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="26%"> Telemobil</td>

</tr>
<tr>
<td colspan=4><hr></td>
</tr>
<%
end if
%>
<!--Här börja listan med personer -->

<tr>
<td><a href="Javascript:visittkort();" class="link"><b><%= rs1("fnamn")%> <%= rs1("Enamn")%></b></a></td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="13%"><%=rs1("Enhet")%> </td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="26%"><%=rs1("telenrk")%> </td>
<td valign="top" align="left" class="text" bgcolor="#cccccc" width="26%"><%=rs1("telenrm")%> </td>
</tr>

<br>
<br>
<br>
<%rs1.movenext
if  rs1.eof then
%>
</table></table>
<%
elseif kontor <> rs1("kontor") then %>
</table></table>
<%end if
loop%>
<%rs1.close
conn.close

</body>
</html>

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 24 jul 2001]

TobbsterMedlem sedan mars 2001309 inlägg
#13

Det funkar tyvärr ändå inte riktigt som det ska...Men nu fattar jag inte ens varför det blir som det blir…
Alla Kontor och alla personer hamnar på rätt plats. Men nu är problemet att det skrivs ut typ tre tomma rader i början va varje presentation av telenummer som tillhör kontoren (Med tomma menar jag att tabell bakgrunden skrivs ut)……

------------------
Är man medlem på WF så behöver man inga vänner !

TobbsterMedlem sedan mars 2001309 inlägg
#14

Föresten när jag ändå är här och tjatar...Synd att man inte kan ta koden från en editor och bara klistra in den här på forumet och få med indenteringen.......

Det underlättar ju för er hjälpsamma....

------------------
Är man medlem på WF så behöver man inga vänner !

PaceMedlem sedan juni 20019 024 inlägg
#15

Använd PERL så funkar det istället för KOD

------------------
Peter D

TobbsterMedlem sedan mars 2001309 inlägg
#16

Använd PERL så funkar det istället för KOD

Det värkar ju inte logiskt....
Men det är ju inte programmering heller
Eller det är kanske det de är.. ;-)

Tackar för upplysningen Pace

------------------
Är man medlem på WF så behöver man inga vänner !

TobbsterMedlem sedan mars 2001309 inlägg
#17

Glömde meddela att nu funkar allt utmärkt...Tackar LarsG för all hjälp

------------------
Är man medlem på WF så behöver man inga vänner !

icaaqMedlem sedan okt. 20005 273 inlägg
#18

det är vid sånna här tillfällen vi vill se hur du gjorde .. :)

------------------
I like ¼ £ whith cheese

LarsGMedlem sedan dec. 200012 464 inlägg
#19

Så bra att det ordnade sig.

------------------
essentitia preter non sans multiplicandum

141 ms totalt · 3 externa anrop · v20260731065814-full.a2ca460b
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)