Pagina 1 di 8 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 80
  1. #1

    Array in una Select SQL non funge.

    Ciao a tutti,

    dopo tanta fatica sono arrivato alla fine di un processo che mi restituisce una serie di nomi e li mette in Array (visualizzandoli)... e qui tutto OK.

    Quando vado a mettere l'Array in una Select SQL il risultato è:

    codice:
    Tipo di errore:
    Errore di run-time di Microsoft VBScript (0x800A000D)
    Tipo non corrispondente
    la mia Select è:

    codice:
    rs.Source = "SELECT * FROM ADS WHERE AD_POSTER ='" & aryUser & "' AND AD_EXPIRED > date() AND AD_APPROVED = 1 ORDER BY AD_TITLE ASC"
    perchè il tipo non corrisponde? Sono semplici nomi come (Mario, Giovanni, ....)

    Grazie
    Pochi sanno, molti presumono di sapere.

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Il problema è la data. L'hai messa lì senza pensare:
    - che si tratta di una variabile e come tale deve essere tratta
    - che tipo di campo è quello che l'accoglie

    Roby

  3. #3
    Scusa il ritardo Roby,
    ma la data è ok perchè quella Select funziona così, solo quando metto l'Array al posto, ad esempio, di una session.

    Come posso formattare una serie di Array?
    Pochi sanno, molti presumono di sapere.

  4. #4
    il problema non è in sql. è che tu stai componendo una stringa, e cerchi di ficcarci un array. pere e mele non vanno bene assieme! trasforma l'array in una stringa (con join).

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi indicare l'indice dell'array che ti serve ad esempio aryUser(0) se desideri il primo elemento.
    Se li veuoi tutti devi scorrere l'array e al suo interno crearti una query dinamicamente.

    Roby

  6. #6
    Originariamente inviato da Roby_72
    Se li veuoi tutti devi scorrere l'array e al suo interno crearti una query dinamicamente.
    si può usare la JOIN

  7. #7
    E si fece notte fonda ....

    ti posto lo script:

    codice:
    <%
    '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("/BD/test.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.getrows()
    
    ' Scorri 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
    
    %>
    Ti prego Roby cerca di aiutarmi è importante per me risolvere questo ultimo baluardo. Grazie.
    Pochi sanno, molti presumono di sapere.

  8. #8
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755

    Re: Array in una Select SQL non funge.

    Originariamente inviato da Rob2002
    ...la mia Select è:

    codice:
    rs.Source = "SELECT * FROM ADS WHERE AD_POSTER ='" & aryUser & "' AND AD_EXPIRED > date() AND AD_APPROVED = 1 ORDER BY AD_TITLE ASC"
    ...
    come disse Optime
    codice:
    rs.Source = "SELECT * FROM ADS WHERE AD_POSTER ='" & join(aryUser,",") & "' AND AD_EXPIRED > date() AND AD_APPROVED = 1 ORDER BY AD_TITLE ASC"
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  9. #9
    wallinobbello, ovviamente se si fa la join si dovrà usare una WHERE IN, non già una WHERE =. giusto?

  10. #10
    Non va...
    mi dice:
    codice:
    Errore di run-time di Microsoft VBScript (0x800A000D)
    Tipo non corrispondente: 'join'
    Ora se la prende con il Join.!
    Pochi sanno, molti presumono di sapere.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.