UBound() räknar antalet index. Det UBound() plockar ut är alltså inte detsamma som det sista indexet.
Prova UBound(pryl)-1
Skriv förresten gärna ut felmeddelande på din nuvarande kod tillsammans med första inlägget.
18 svar · 408 visningar · startad av Jesper T
strSQL = "SELECT Id, Sublink_LinkID, Frukt " & _
"FROM tabellen " & _
"ORDER BY sublink_linkID, vara ASC"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strConnString
Set objRS = objConn.Execute(strSQL)
If Not objRS.EOF Then
'## -- get all links --
arrLinks = objRS.GetRows()
'Response.write arrLinks
End If
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
<script type="text/javascript">
var lista = new Array();
function inptSearchlist(value,listobj){
if(lista.length == 0) buildlist(listobj);
matches=0;
listobj.length = lista.length;
for(n=0;n<lista.length;n++){
if(lista[n].text.substring(0,value.length).toLowerCase() == value.toLowerCase()) {
listobj[matches].text= lista[n].text;
listobj[matches].value = lista[n].value;
matches++;
}
}
listobj.length = matches;
listobj.selectedIndex=0;
}
function buildlist(obj){
for(n=0;n<obj.length;n++){
lista[n] = new makeobj(obj[n].value,obj[n].text);
}
}
function makeobj(value,text){
this.value=value; this.text=text;
}
function boxData(sText, vValue){
this.text = sText;
this.value = vValue;
}
<%
If IsArray(arrLinks,2) Then
i = 0
[b]For N = 0 TO UBound(arrLinks,2)[/b]
intSubLinkID = arrLinks(0,N)
intLinkID = arrLinks(1,N)
strSubLink = arrLinks(2,N)
If intLinkID <> intLastLinkID Then
Response.Write vbcrlf & "var link" & intLinkID & " = new Array();" & vbcrlf
i = 0
End If
Response.Write "link" & intLinkID & "[" & i & "] = new boxData(""" & strSubLink & """," & intSubLinkID & ");" & vbcrlf
intLastLinkID = intLinkID
i = i + 1
Next
End If
%>
skriver jag: For N = 0 TO 14
(där 14 är antal poster) så funkar det bra, men det är ju dumt om man vill lägga in flera grejjor i databasen ju.
UBound() räknar antalet index. Det UBound() plockar ut är alltså inte detsamma som det sista indexet.
Prova UBound(pryl)-1
Skriv förresten gärna ut felmeddelande på din nuvarande kod tillsammans med första inlägget.
Jo det är högsta indexet som returneras.
Vad skall jag då göra?
Till att börja med förklara problemet. Jag förstår inte vad det är som blir fel?
Både For N = 0 TO UBound(arrLinks,2) och For N = 0 TO UBound(arrLinks), loopar ut fem poster då det i själva verket är 14.
såg ett litet fel:
If IsArray(arrLinks,2) Then
ska vara:
If IsArray(arrLinks) Then
vad får du ut om du skriver:
response.write ubound(arrLinks,2)
doggelito skrev:
såg ett litet fel:
If IsArray(arrLinks,2) Then ska vara: If IsArray(arrLinks) Thenvad får du ut om du skriver:
response.write ubound(arrLinks,2)
Om jag skriver ut ubound(arrlinks) får jag : 2, men den listar tre rader.(skall vara 14)
Funkar nu(med ubound(arrlinks,2) , konstigt, jag har ju inte gjort något! Tack ändå!
Förut så såg sql:en ut så här:
strSQL = "SELECT Id, Sublink_LinkID, Frukt " & _
"FROM frukter" & _
"ORDER BY sublink_linkID, Frukt ASC"
Då fungerade det att skriva:
For N = 0 TO UBound(arrLinks,2)
Nu ser frågan ut så här:
strSQL = "SELECT f.Id, f.Sublink_LinkID, f.Frukt, n.Notes " & _
"FROM frukter f, notes n " & _
" WHERE n.N_namn_id = 22"&_
" AND n.N_datum = #2002-10-27#"&_
"ORDER BY f.sublink_linkID,f.Frukt ASC"
Nu fungerar det inte att skriva så här:For N = 0 TO UBound(arrLinks,2)
Varför?
Någon som vet?
då har du inte fler poster som matchar helt enkelt.
Om det är fel så är det nog i sql-frågan
cya,
PatrikB
Och vad är det då för ett fel då?
Är du HELT säker på att det verkligen är 14 poster som uppfyller dina villkor i din sqlfråga?
Jag menar, du har ju lite "hårdare" villkor i den senare sqlfrågan jämfört med den första?
Men dessa frågor avser ju endast tabellen Notes, jag vet inte hur man skall få ut rätt grejjor ur tabellen frukter (getrows) :
" WHERE n.N_namn_id = 22"&_
" AND n.N_datum = #2002-10-27#"&_
Är det ingen som har några idéer ang. detta?
Come on now!