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 · 403 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!