sicuro di adoperare un array? posta un po' di codice
sicuro di adoperare un array? posta un po' di codice
Questo è il codice dove faccio una Select e metto il risultato in Array (sembra che va perchè visualizzo il risultato della select)
subito dopo nella stessa pagina metto l'Array in un'altra SELECTcodice:<% 'Creo l'Ado object Set adoCon = Server.CreateObject("ADODB.Connection") 'Apro la connessione adoCon.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & server.mappath("/database/test.mdb") & "; Persist Security Info = False" Set rs1 = Server.CreateObject("ADODB.Recordset") sql="SELECT DISTINCT C_USERS FROM CAP WHERE C_CAP = '" & session("mycap") & "' OR C_CAP = '" & session("cap1") & "' OR C_CAP = '" & session("cap2") & "' OR C_CAP = '" & session("cap3") & "' OR C_CAP = '" & session("cap4") & "' OR C_CAP = '" & session("cap5") & "' OR C_CAP = '" & session("cap6") & "' OR C_CAP = '" & session("cap7") & "' OR C_CAP = '" & session("cap8") & "' OR C_CAP = '" & session("cap9") & "' OR C_CAP = '" & session("cap10") & "' AND ABILITATO = '1'" rs1.Open SQL, adoCon if rs1.eof = true then response.write("Non ci sono dati nel CAP indicato") else '***************** ARRAY ***************************** ' Dichiaro variabili Dim aryUser Dim i ' Creo un array aryUser = rs1.getrows() ' Scorro l'array for i=0 to ubound(aryUser ,2) Response.Write(aryUser(0,i) & " ") 'stampa il primo campo next '******************************************************* rs1.close set rs1=nothing set adoCon = nothing end if %>
ma il risultato è Errore di tipo non corrispondente.codice:rs.Source = "SELECT * FROM ADS WHERE AD_POSTER ='" & join(aryUser,",") & "' AND AD_EXPIRED > date() AND AD_APPROVED = 1 ORDER BY AD_TITLE ASC"
Grazie
Pochi sanno, molti presumono di sapere.
prova con
Dim aryUser()
oppure a recuperare la stringa già fomattata con rs.getstring
Ho lo stesso risulatato. (Tipo non corrispondente)
anche con
... maledetto tipo non corrispondentecodice:aryUser = rs.getstring()![]()
Pochi sanno, molti presumono di sapere.
Originariamente inviato da optime
wallinobbello, ovviamente se si fa la join si dovrà usare una WHERE IN, non già una WHERE =. giusto?![]()
![]()
![]()
come dimensioni aryUser? forse non lo devi proprio dimensionare, dovrebbe far tutto zio asp
E' tutto nel post precedente... così come lo vedi. Lo script è composto da due parti:
1) Preleva i dati da una colonna di un db
2) Li metto nell'Array (usando quello che tu mi hai consigliato ieri) e usando un semplice ciclo for visualizzo correttamente gli array, ma tutto si "sfascia" quando questo Array è un parametro di ricerca in un'altra Select.
Infatti non era dimensionato e non va, allora abbiamo pensato di dimensionarlo e non va lo stesso. Ma che succede![]()
Pochi sanno, molti presumono di sapere.
La join riposava nel mio cassetto...![]()
Roby
www.creamweb.it [v. 3.0]
:: Script ASP!
:: Web directory gratuita!
:: Campioni del mondo!
robZOOZ, non fare confusione tra i due array, pls. di quale dei due stai parlando?
Bello il RobZOOZ mi mancava in archivio...
C'è solo 1 Array ricavata e dichiarata qui:
poi c'è una selectcodice:<% 'Creo l'Ado object Set adoCon = Server.CreateObject("ADODB.Connection") 'Apro la connessione adoCon.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & server.mappath("/offertespeciali/_private/DUclassified.mdb") & "; Persist Security Info = False" Set rs1 = Server.CreateObject("ADODB.Recordset") ' Eseguo l'azione sql="SELECT DISTINCT C_USERS FROM CAP WHERE C_CAP = '" & session("mycap") & "' OR C_CAP = '" & session("cap1") & "' OR C_CAP = '" & session("cap2") & "' OR C_CAP = '" & session("cap3") & "' OR C_CAP = '" & session("cap4") & "' OR C_CAP = '" & session("cap5") & "' OR C_CAP = '" & session("cap6") & "' OR C_CAP = '" & session("cap7") & "' OR C_CAP = '" & session("cap8") & "' OR C_CAP = '" & session("cap9") & "' OR C_CAP = '" & session("cap10") & "' AND ABILITATO = '1'" rs1.Open SQL, adoCon if rs1.eof = true then response.write("Non ci sono OFFERTE nel CAP indicato") else '***************** ARRAY ***************************** ' Dichiara variabili Dim aryUser() Dim i ' Crea un array aryUser = rs1.getstring() ' Scorri l'array for i=0 to ubound(aryUser ,2) Response.Write(aryUser(0,i) & " ") next '******************************************************* rs1.close set rs1=nothing set adoCon = nothing end if %>
codice:rs.Source = "SELECT * FROM ADS WHERE AD_POSTER ='" & join(aryUser,",") & "' AND AD_EXPIRED > date() AND AD_APPROVED = 1 ORDER BY AD_TITLE ASC"
Pochi sanno, molti presumono di sapere.