16. marts 2004 - 20:22Der er
4 kommentarer og 1 løsning
Problem med Ubound
Hej
Er lige igang med at fejlfinde et script, det som forårsager fejlen er som følger:
for i = 0 to ubound(ID) - 1 if type_1(i) = "1" then
Det er starten på et loop, hvor der bliver hentet data fra en accessdatabase. Der er pt kun en post i dben med id 164, problemet ligger i at jeg får følgende fejl når der kun er en post, hvis der er flere poster kører det fint:
Microsoft VBScript runtime error '800a000d' Type mismatch: 'ubound'
Det skulle det være. Det skal lige siges at det er et site som jeg lige hjælper (er ved at gå lidt død idet), der er også en tilsvarende asp side, og der er ingen problemer med denne, den indeholder så også mere end 2 poster og disse er mere eller mindre identiske.
Nedenstående skulle være det der generer arrayet (fra en .inc fil):
set rs = CreateObject("ADODB.Recordset") rs.CursorLocation = 3 rs.Open sql_string, Conn, 0, 1, 1 if isObject(rs) = false then set rs = nothing ' Close connection conn.Close() set conn = nothing ' declare variables for k = 0 to ubound(return) Execute(return(k) & " = 0") next else
if rs.BOF and rs.EOF then ' Close recordset rs.Close() set rs = nothing ' Close connection conn.Close() set conn = nothing ' declare variables for k = 0 to ubound(return) Execute(return(k) & " = 0") next else data_array = rs.GetRows() max_rows = rs.RecordCount max_columns = rs.Fields.Count
' if rowcount = 1 -> no array unless data_type_array = 1 if max_rows = 1 and data_type_array = 0 then ' declare variables for k = 0 to ubound(return) temp_val = "dim " & return(k) & "_temp" Execute(temp_val) next
dim p ' Get row for p=0 to (max_columns - 1) row(p) = data_array(p,0) next
for k = 0 to ubound(return)
' Get reference to each variable : return(k)
' returning to ARRAYs 'Execute(command_value_name & " = command_value_name_value") 'temp_val = return(k) & "_temp" 'Execute(temp_val & " = row(" & k & ")") Execute(return(k) & " = convert_double_quotes_to_quotes(row(" & k & "))") next end if
if max_rows = 1 and data_type_array = 1 then ' if data_type_array = 1 -> array dim temp_ar_val
' declare arrays to fill for k = 0 to ubound(return) ' declaring the arrays ARRAYs temp_ar_val = "dim " & return(k) & "_temp(" & max_rows & ")" Execute(temp_ar_val) next
' Get row for j=0 to (max_columns - 1) row(j) = data_array(j,row_count - 1) next
' Return data, Loop return array for k = 0 to ubound(return)
' Get reference to each variable : return(k)
' returning to ARRAYs 'Execute(command_value_name & " = command_value_name_value") temp_ar_val = return(k) & "_temp(" & i & ")" Execute(temp_ar_val & " = row(" & k & "):" & return(k) & " = " & return(k) & "_temp") next next end if
if max_rows > 1 then ' if rowcount > 1 -> array dim temp_ar_val_2
' declare arrays to fill for k = 0 to ubound(return) ' declaring the arrays ARRAYs temp_ar_val_2 = "dim " & return(k) & "_temp(" & max_rows & ")" Execute(temp_ar_val_2) next
' Get row for j2=0 to (max_columns - 1) row(j2) = data_array(j2,row_count - 1) next
' Return data, Loop return array for k2 = 0 to ubound(return)
' Get reference to each variable : return(k)
' returning to ARRAYs 'Execute(command_value_name & " = command_value_name_value") temp_ar_val_2 = return(k2) & "_temp(" & i2 & ")" Execute(temp_ar_val_2 & " = row(" & k2 & "):" & return(k2) & " = " & return(k2) & "_temp") next next end if end if end if end if end if end sub
jeg har nogen gange problemer med at få variable med fra en <!-- #include file="*.inc"--> prøv måske at rename den til .asp i stedet, ved ikke om det hjælper.
Tak for forslaget men det elimenerede ikke problemet, dog løste jeg problemet ved at lave en entry nr. 2 i db'en som ikke bliver vist på sitet, fejlen opstod jo når der kun var en entry i db'en, skummelt...Men tak :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.