webForumDet fria alternativet

Många sql-satser

4 svar · 336 visningar · startad av zlakker

zlakkerMedlem sedan apr. 2001227 inlägg
#1

Jag är inte speciellt duktig på asp och undrar ifall det är krävande för servern att köra många sql-satser på en sida.
Det kanske finns ett mycket bättre sätt men just nu så ser min sida ut såhär:

Sidan innehåller ett antal olika textfält som ska gå att uppdatera från ett admin-gränssnitt.

Problemet är att när jag skriver ut det så skriver jag min sql-sats såhär:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("data/sfkdatabase.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
%>
	
<table borde="0" cellspacing="0" cellpadding="0" width="200">
<tr>
<td bgcolor="FFF2CA">
		
<% Texten = "SELECT * FROM tblText WHERE rowname = 'startinfo'"
RecSet.Open Texten, Conn, 3, 3 %>
		
<font size="1" face="verdana, arial"><% =RecSet("content") %></font>

<%	RecSet.Close %>

Tabellnamn: tblText
Kolumner: rowname och content

Jag får fram vilken det är jag vill ha genom att köra WHERE rowname = textnamet i sql satsen och sedan i recset skriva ut från kolumnen "content".

Måste jag alltså skriva en sådan sqlsats för varje text jag vill hämta ut på sidan.

Det jag menar med många sql är alltså om jag på en sida har 35 texter som ska hämtas från databasen.

Går det inte att i sql-satsen hämta allt i tabellen och sedan välja vilken rad jag rad i vilken kolumn jag vill skriva ut i koden?

Tack tack..

@ndersMedlem sedan juni 200032 969 inlägg
#2

Jag hade hämtat ut alla texter på en gång, loopat igenom recordsetet, och satt variabler.

strSQL = "SELECT * FROM tblText ORDER BY rowname"
set objRS = Conn.Execute(strSQL)
while not objRS.EOF
     strTmp = objRS("rowname")
     select case strTmp
         case "startinfo" 
              strStartinfo = objRS("content")
         case "foo" 
              strFoo = objRS("content")
         case "bar" 
              strBar = objRS("content")
        ' etc
     end select   
     objRS.MoveNext
wend

Sedan skriver du bara ut variablernas värden på rätt ställe.

mvh

zlakkerMedlem sedan apr. 2001227 inlägg
#3

Tack för hjälpe @nders!
Gör jag såhär sedan jag när ska skriva ut de olika case'en?

<% =RecSet("content") %>
[
@ndersMedlem sedan juni 200032 969 inlägg
#4

Jag hade tänkt mig att du bara skriver ut variabelns innehåll där den ska vara. Exempel; där du ska ha startinfo-texten, så lägger du bara:

<% = strStartinfo %>

(eller vad du nu kallar variabeln för, strStartInfo är från mitt exempel)

mvh

zlakkerMedlem sedan apr. 2001227 inlägg
#5

Tack @nders för hjälpen och att du tog dig tid!
Det funkar perfekt.

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