webForumDet fria alternativet

Två recordset

10 svar · 139 visningar · startad av aleborg

aleborgMedlem sedan jan. 20013 341 inlägg
#1

Har lite problem med den här koden, skratta inte nu, den är åt *#%!

<%@LANGUAGE="VBSCRIPT"%>
<!-- #include virtual="unisafe\admin\adovbs.inc" -->
<%
dim Accessgroup
Accessgroup = Session("svAccessgroup")
	If Accessgroup <> "Admin" And Accessgroup <> "Layout" Then
		Response.Redirect "noaccess.asp"
	End If
%>
<%
dim conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "mindb"
 %>
<%
Set rs = Server.CreateObject("ADODB.Recordset")
SQLstr = "SELECT * FROM Tabsid, Sidor"
   rs.Open SQLstr, conn
%>

<%
Set rs = conn.Execute("SELECT * FROM Tabsid Where ID = " & Request.QueryString("ID") & " ")
%>
      <form name="form" method="post" action="layouttabchasucc.asp?ID=<%=rs("ID")%>">
        <table border="0" cellspacing="0" cellpadding="0" width="100%">
          <tr valign="top"> 
<%
set  mrs = conn.Execute("SELECT * FROM Sidor")
%>
<%
If len(mrs("Tabell1namn"))> 0 Then
%>
            <td width="20%" class="ie"><%=mrs("Tabell1namn")%><br>
              <input type="text" name="Tabell1" size="15" class="ie" value="<%=rs("Tabell1")%>">
            </td>
            <% End If %>

dvs i en IF sats så ska den kolla från två stycken recordset! Det ända som syns är från <%=rs("Tabell1")%> resten dyker aldrig upp, inget felmess!

Vad gör jag? Lite defus fortfarande på recordset och dess användande!

PatrikBMedlem sedan mars 20002 836 inlägg
#2

[r]
glöm detta inlägg ....
[/r]

ParikB

[Redigerat av PatrikB den 01 mar 2001]

PatrikBMedlem sedan mars 20002 836 inlägg
#3

Helo,

nu har jag kollat in lite mer =P

Du måste nog bestämma dig för vilket rs du vill ha.
Antingen:

<%
Set rs = Server.CreateObject("ADODB.Recordset")
SQLstr = "SELECT * FROM Tabsid, Sidor"
rs.Open SQLstr, conn
%>

Eller:

<%
Set rs = conn.Execute("SELECT * FROM Tabsid Where ID = " & Request.QueryString("ID") & " ")
%>

Båda dessa recordsets finns i koden direkt efter varandra med OLIKA sql-uttryck.
Som du ser är det den senare av dem som du checkar mot som är det aktiva recordsetet av de båda rs.
Skulle behålla det och fimpa bort det som har med adodb.recordset.

gör du det så kan du oxå fimpa de 2 första raderna som ej behövs...

cya,

------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function

aleborgMedlem sedan jan. 20013 341 inlägg
#4

Gjorde om det lite, men Recordset mrs visas fortfarande inte

<%@LANGUAGE="VBSCRIPT"%>
<!-- #include virtual="unisafe\admin\adovbs.inc" -->
<%
dim Accessgroup
Accessgroup = Session("svAccessgroup")
	If Accessgroup <> "Admin" And Accessgroup <> "Layout" Then
		Response.Redirect "noaccess.asp"
	End If
%>
<%
dim conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "mindb"
 %>
<%
SQL="SELECT * FROM Tabsid Where ID = " & Request.QueryString("ID") & " "
Set rs = conn.Execute(SQL)
%>
      <form name="form" method="post" action="layouttabchasucc.asp?ID=<%=rs("ID")%>">
<%
SQL1 ="SELECT * FROM Sidor"
set  mrs = conn.Execute(SQL1)
Do Until mrs.EOF
%>
<%
If len(mrs("Tabell1namn"))> 0 Then
%>
            <td width="20%" class="ie"><%=mrs("Tabell1namn")%><br>
              <input type="text" name="Tabell1" size="15" class="ie" value="<%=rs("Tabell1")%>">
            </td>
            <% End If %>
<%
mrs.MoveNext
Loop
mrs.Close
rs.Close
%>

[Redigerat av aleborg den 02 mar 2001]

[Redigerat av aleborg den 02 mar 2001]

PatrikBMedlem sedan mars 20002 836 inlägg
#5

Du kan börja med att ta bort dessa 2 rader:

<%@LANGUAGE="VBSCRIPT"%>
<!-- #include virtual="unisafe\admin\adovbs.inc" -->

Denna rad: <%@LANGUAGE="VBSCRIPT"%> fyller ingen funktion. VBSCRIPT är redan satt som default script att köra på en IIS webserver. Att sätta språket en ggn till tar bara resurser från burken.

Hela filen adovbs.inc tycker jag inte heller är så speciellt bra att includera. Bättre att kopiera de konstanter man ska använda och lägga på sidan, eller i en egen inklud-fil.

Har du provat med att ta bort if-satsen och köra utan den?

------------------
Private Function OutPut(ByRef sString)
OutPut = "Who gives ..." & sString
End Function

aleborgMedlem sedan jan. 20013 341 inlägg
#6

Recordset mrs funkar utanför If satsen!
Recordsetet rs funkar i If satsen!

Har tagiy bort dom första två raderna, tack för tipset :)

aleborgMedlem sedan jan. 20013 341 inlägg
#7

Men If satsen funkar, text rutan syns!

aleborgMedlem sedan jan. 20013 341 inlägg
#8

Däremot ifall jag byter ut <%=mrs("Tabell1namn")%> till <%=mrs("Tabell2namn")%> så dyker Tabell2namn datan upp!

Går det inte att använda <%=mrs("Tabell1namn")%> i en If sats som baserar sig på (len(mrs("Tabell1namn"))?

aleborgMedlem sedan jan. 20013 341 inlägg
#9

Ingen som vet varför det inte funkar?

aleborgMedlem sedan jan. 20013 341 inlägg
#10

Måste jag skriva så här?

<%
If len(mrs("Tabell1namn"))> 0 Then
%>
<%
SQL1 ="SELECT * FROM Sidor"
set  mrs = conn.Execute(SQL1)
%>
            <td width="20%" class="ie"><%=mrs("Tabell1namn")%><br>
              <input type="text" name="Tabell1" size="15" class="ie" value="<%=rs("Tabell1")%>">
            </td>
            <% End If %>

Det verkar lite onödigt, efter som jag
redan har startat ett recordset för den!

Då borde ju inte Tabell1 funka heller!?

aleborgMedlem sedan jan. 20013 341 inlägg
#11

*sliter i mitt hår och kan inte komma på vad som är fel* :)

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