Det här är en jättegrej och jag förstår om ingen orkar göra det men om nån mot all förmodan orkar göra det så e jag evigt tacksam och den personen kommer ha en självklar plats i min hall of fame :e
Under ca 2 veckors tid har jag sökt här, på microsoft, på google m.fl. och försökt fatta det här med getrows samt subbar för att kunna optimera optimalt :) men trots detta har jag ej kunnat greppa getrows och dess tvådimensionella arrayer. Så jag undrar nu om någon kan hjälpa mig att få en rättsida på det hela...
Jag vet att det är väldigt o-optimerad kod just nu, men hey e man en nybörjare så e man. :D
Det första jag gjorde var att dela upp sidan i funktioner och subbar och lägga dem i en annan sida...
Show.inc
<%
Sub ShowPost(strSQL)
Set Connection = Server.CreateObject("adodb.connection")
Connection.open "orrbo.nu-log"
Set RS = Connection.Execute(strSQL)
If Not RS.EOF Then
Records = RS.GetRows()
End If
Connection.Close
Set RS = Nothing
Set Connection = Nothing
End Sub
Sub UpdatePost(strSQL)
Set Connection = Server.CreateObject("adodb.connection")
Connection.open "orrbo.nu-log"
Connection.Execute(strSQL)
Connection.Close
Set Connection = Nothing
End Sub
%>
Sedan började jag försöka implementera getrows...
<!--#include file="../_nem-flz/bot.inc"-->
<!--#include file="inc/show.inc"-->
<HTML>
<HEAD>
<TITLE>nemus_gbok</TITLE>
<LINK REL="stylesheet" HREF="../_nem-flz/nemus.css">
<SCRIPT LANGUAGE="javascript">
<!--
function checkformessage() {
if (document.skriv.medd.value == "")
{
alert("Du har ju inte skrivit något(!)")
return false
}
}
//-->
</SCRIPT>
<SCRIPT LANGUAGE="javascript" SRC="../_nem-flz/mouseover.js"></SCRIPT>
</HEAD>
<BODY BGCOLOR=#7B869C>
<TABLE CELLPADDING=0 CELLSPACING=0 HEIGHT="100%" BORDER=0><TR>
<TD VALIGN=TOP>
<TABLE CELLPADDING=0 CELLSPACING=0 WIDTH=600 HEIGHT="100%" BORDER=0><TR>
<TD WIDTH=170 HEIGHT=184 BGCOLOR=#993300 ALIGN=CENTER VALIGN=TOP>
<!-- #INCLUDE FILE="ssi/meny.txt" -->
</TD>
<TD WIDTH=001 BGCOLOR=#000000><IMG SRC="../_nem-gfx/pix.gif" WIDTH=1 HEIGHT=1></TD>
<TD WIDTH=427 BACKGROUND="../_nem-gfx/mid_centerbak.gif" VALIGN=TOP ALIGN=RIGHT>
<%
Session.LCID = 1053
Dim anvandare, sessionanv, Topnamn, Antal, X, msg, sida, nasta, steg
Sida = Request.QueryString("next")
Anvandare = Request.Querystring("user")
sessionanv = Session("anv")
Call ShowPost("SELECT Anvnamn FROM users Where Anvnamn = '" & anvandare & "'")
Topnamn = Records
IF anvandare = sessionanv THEN
Call UpdatePost("UPDATE gast SET sett = '1' WHERE till ='" & anvandare & "'")
END IF
Call ShowPost("Select Count(bokid) AS Antal From gast Where Till = '" & anvandare & "'")
Antal = Records
%>
<IMG SRC="../_nem-gfx/pix.gif" WIDTH=1 HEIGHT=10><BR>
<TABLE CELLPADDING=0 CELLSPACING=0 WIDTH=417 HEIGHT=206 BORDER=0><TR>
<TD WIDTH=400>
<TABLE CELLPADDING=1 CELLSPACING=0 WIDTH=400 HEIGHT=200 BORDER=0><TR>
<TD BGCOLOR=#00000>
<TABLE CELLPADDING=0 CELLSPACING=0 WIDTH=398 HEIGHT=198 BORDER=0><TR>
<TD HEIGHT=20 BGCOLOR=#666699 BACKGROUND="../_nem-gfx/mid_bigbluewintop.gif" VALIGN=TOP>
<TABLE CELLPADDING=0 CELLSPACING=0 WIDTH=398 HEIGHT=13 BORDER=0><TR>
<TD WIDTH=386><FONT FACE="verdana, tahoma, arial" SIZE=1 COLOR=#FFFFFF CLASS="winHead"> .<%= Topnamn(0,0) %>s gästbok</TD>
<TD WIDTH=012><A HREF=" close "><IMG SRC="../_nem-gfx/mid_bluewincheck.gif" WIDTH=12 HEIGHT=13 BORDER=0></TD>
</TR></TABLE>
</TD>
</TR><TR>
<TD HEIGHT=172 BGCOLOR=#CCCCCC>
<TABLE CELLPADDING=0 CELLSPACING=0 WIDTH=398 HEIGHT=172 BORDER=0><TR>
<TD WIDTH=006 HEIGHT=172 BGCOLOR=#FFFFFF BACKGROUND="../_nem-gfx/mid_winedgeleft.gif"><IMG SRC="../_nem-gfx/pix.gif" WIDTH=1 HEIGHT=1></TD>
<TD WIDTH=386 HEIGHT=172 VALIGN=TOP>
<!-- Huvud fält, designkod -->
<table cellpadding=6 cellspacing=0 width=386 height=172 border=0><tr>
<td valign=top>
<table cellpadding=0 cellspacing=0 height=14 width="100%" border=0><tR>
<td height=13><FONT FACE="verdana, tahoma, arial" SIZE=1 COLOR=#000000 CLASS="usual"><%= Topnamn(0,0) %> har <%= Antal(0,0) %> inlägg</td>
</tr><tr>
<td height=1 background="../_nem-gfx/mid_linesmaker.gif"><IMG SRC="../_nem-gfx/pix.gif" WIDTH=1 HEIGHT=1></td>
</tr></table><IMG SRC="../_nem-gfx/pix.gif" WIDTH=1 HEIGHT=10><br>
<table cellpadding=4 cellspacing=0 width=374 border=0>
<%
Call ShowPost("SELECT vem.gast, till.gast, meddelande.gast, när.gast, bild.users FROM gast, users Where Till.gast = '" & anvandare & "' AND Anvnamn.users = '" & anvandare & "' ORDER BY bokid DESC")
Msg = Records
X = 0
If Sida = "" Then
Nasta = 1
ElseIf sida = 0 Then
Nasta = 1
ElseIf sida > 0 Then
Nasta = sida
Nasta = sida -- 1
Steg = sida * 10
END IF
For i = steg To Ubound(Msg)
DO WHILE X < 10
IF Msg = ""
EXIT DO
Response.Write "Du har inga gästboksinlägg"
END IF
Dim bgcolor
if bgcolor = "#c0c0c0" then
bgcolor = "#c0c0c0"
else
bgcolor = "#c0c0c0"
end if
Men sen tog det slut, jag vet helt enkelt inte hur jag ska fortsätta...så jag vänder mig till Er...som sagt, det e ej en liten sak jag ber om och jag förstår om ni inte orkar men ett försök vore mycket uppskattat :e
------------------
[Q] It's better to burn out than fade away!
Har vi månne försökt optimera så mycket at koden blivit oläslig? Nåja, det först aproblemet jag kan se är att du försöker använda variabeln Records utanför ShowPost, men Records är lokal i ShowPost. Du får gör om det till en funktion som returnerar raderna.
Function ShowPost(strSQL)
Set Connection = Server.CreateObject("adodb.connection")
Connection.open "orrbo.nu-log"
Set RS = Connection.Execute(strSQL)
If Not RS.EOF Then
ShowPost = RS.GetRows() ' Returnera funna rader
Else
' Returnera något som påvisar att inget hittats
End If
Connection.Close
Set RS = Nothing
Set Connection = Nothing
End Function
Om du vill optimera har du börjat i extremt fel ända. Med tanke att du skapar en ny databasanslutning för varje anrop av ShowPost så är dina ansträngningar med GetRows ganska menlösa. Först skriver man fungerande kod, sen optimerar man. Om man vill eller behöver, kan man kanske tillägga...
\r Användningen av din funktion ser alltså ut så här:
Försök titta lite på optimala databaskopplingar och börja ditt optimerande där. Det jag såg direkt var att du kan använda dig av array:s när du gör en hämtning från databasen. Ett annat råd är att skapa en form av databasavdelning. Där du gör alla nödvändiga db-hämtningar i följd och därefter stänger db:n så snabbt som möjligt. Sök lite i forum-arkivet här på ord som optimering, databaskoppling, recordset etc så kommer din kod att spinna som en katt sen.
------------------
Alltid lär man sig något nytt varje dag...
SQL = "SELECT * FROM Users"
Set mini = Connection.Execute(SQL)
on error resume next
myGetRows = mini.GetRows()
' ## PRINT ALL POSTS
FOR j = 0 to UBound(myGetRows, 2)
FOR i = 0 to UBound(myGetRows, 1)
response.write i & "> " & myGetRows(i, j) & " " & vbCRLF
NEXT
IF NOT j = UBound(myGetRows, 2) THEN response.write "<BR><BR>"
NEXT
' ## PRINT 2:nd POST TO SCREEN
FOR j = 0 to UBound(myGetRows, 2)
response.write myGetRows([b]1[/b], j) & "<BR>"
NEXT
Första positionen är '0,0', andra '1,0'.
------------------ OLR WebAdmin - gratis webbverktyg för små och medelstora webbplatser. A small amount of work now let's us be lazy in the future.
[Redigerat av Eclipse den 14 aug 2001]
274 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2