Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Errore strano su sql

  1. #1
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258

    Errore strano su sql

    Estraggo dei record da un database ma:
    se ordino tutto per marca1 (order by marca1) va tutto bene mentre se ordino per prezzo1 (order by prezzo1) mi dà questo errore:

    Errore di run-time di Microsoft VBScript (0x800A0009)
    Indice non incluso nell'intervallo: 'i'

    codice:
    sql = "SELECT TOP 8 * FROM tabella order by prezzo1"
    
    Set Rec = Server.CreateObject ("ADODB.Recordset")
    Rec.Open sql, Conn, 3, 3
    
    redim productID(8)
    redim prezzo1(8)
    redim marca1(8)
    
    i = 0
    do while not rec.eof
    i = i + 1
    
    productID(i)=rec("productID") 'l'errore lo dà a questo rigo ma anche se cancello il rigo lo darà al prossimo rigo
    prezzo1(i) = rec("prezzo1")
    marca1(i) = rec ("marca1")

  2. #2

    Re: Errore strano su sql

    Originariamente inviato da Luca1317
    Estraggo dei record da un database ma:
    se ordino tutto per marca1 (order by marca1) va tutto bene mentre se ordino per prezzo1 (order by prezzo1) mi dà questo errore:

    Errore di run-time di Microsoft VBScript (0x800A0009)
    Indice non incluso nell'intervallo: 'i'

    codice:
    sql = "SELECT TOP 8 * FROM tabella order by prezzo1"
    
    Set Rec = Server.CreateObject ("ADODB.Recordset")
    Rec.Open sql, Conn, 3, 3
    
    redim productID(8)
    redim prezzo1(8)
    redim marca1(8)
    
    i = 0
    do while not rec.eof
    i = i + 1
    
    productID(i)=rec("productID") 'l'errore lo dà a questo rigo ma anche se cancello il rigo lo darà al prossimo rigo
    prezzo1(i) = rec("prezzo1")
    marca1(i) = rec ("marca1")
    probabilmente se ordini per prezzo1 la query ti ritorna più di 8(9) record

  3. #3
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    Non riesco a capire...se ci sono 30 record nel database se li ordino per un campo invece che per un altro non dovrebbe andare sempre bene o dare sempre errore?

  4. #4
    Originariamente inviato da Luca1317
    Non riesco a capire...se ci sono 30 record nel database se li ordino per un campo invece che per un altro non dovrebbe andare sempre bene o dare sempre errore?
    se ci sono 5 record con prezzo1=10 ed altri 5 con prezzo1=8
    è molto probabile che la query ti ritorni 10 rec invece degli 8 che gli hai chiesto;
    ...verifica eseguendo la query incriminata direttamente sul db

  5. #5
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    Originariamente inviato da sspintux
    se ci sono 5 record con prezzo1=10 ed altri 5 con prezzo1=8
    è molto probabile che la query ti ritorni 10 rec invece degli 8 che gli hai chiesto;
    ...verifica eseguendo la query incriminata direttamente sul db
    Ok...finalmente ho capito l'errore...ho verificato come tu mi hai suggerito direttamente in access...

    in pratica succede che se faccio un top 1 (cioè richiedo solamente 1 record) con

    3 record di prezzo1=1

    e 5 record prezzo1=2

    invece di darmi un solo record me ne da 3, quei primi 3 con valore 1...

    sinceramente però c'è qualcosa che non capisco, io richiedo solo un record ma me ne escono 3 (ipotizzo che il sistema forse non capisce quali dei 3 io voglia e quindi me li da tutti e 3)

    A questo punto credo che debba inserire qualcosa nella select che scelga una delle 3...ora provo a fare un doppio ordinamento...l'altro con l'id che è la chiave e non può avere un valore uguale all'altro....ci provo e ritorno.

  6. #6
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    Ok, l'intuizione era giusta...grazie mille per avermi indirizzato sulla strada giusta...non riuscivo proprio a capire quale fosse l'errore.

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.