Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: problema col random

  1. #1

    problema col random

    Mi Sapete dire cosa stia sbagliando?

    ' apertura conn
    Dim Conn
    Set conn = Server.CreateObject("ADODB.Connection")
    ' la stringa di conn
    conn.connectionstring= "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("mdb-database/citazioni.mdb")
    'strConn
    conn.Open
    ' query SQL
    Dim strSQLMax
    strSQLMax = "SELECT Max(ID) as MaxVal FROM tbl_citazioni ORDER BY ID"
    Dim strSQL
    strSQL = "SELECT Top 1 * FROM tbl_citazioni Order by ID"
    ' estrai valore massimo
    Set rs = conn.Execute(strSQLMax)
    set intMax = rs("maxVal")
    rs.Close
    set rs = Nothing
    ' genera valora casuale
    Randomize()
    intRandom = CInt ((Rnd() * intMax) + 1)
    ' estrai record
    Dim rs
    Set rs = conn.Execute(strSQL & intRandom)
    ' visualizza in qualche modo
    response.write "" & rs("citazione") & "."
    response.write "[" & rs("autore") & "
    ]"
    rs.Close
    set rs = Nothing
    ' chiusura conn
    conn.Close
    set conn = Nothing
    Grazie
    Filippoies

    "Una volta pensata, niente fermerà una boiata nella sua strada dal cervello alla bocca." (Arthur Bloch)

  2. #2
    Utente di HTML.it L'avatar di agenti
    Registrato dal
    Feb 2002
    Messaggi
    2,427
    ma che errore ti da ?

  3. #3
    "You tried to execute a query that does not include the specified expression 'ID' as part of an aggregate function"

    Mannaggia, mannaggia!
    Qualcuno mi può dare una mano?
    Filippoies

    "Una volta pensata, niente fermerà una boiata nella sua strada dal cervello alla bocca." (Arthur Bloch)

  4. #4
    La tua query chiede di ordinare per ID ma non gli dici di estrarre ID

    codice:
    "SELECT Max(ID) as MaxVal FROM tbl_citazioni ORDER BY ID"
    Prova così:

    codice:
    "SELECT Max(ID) as MaxVal, ID FROM tbl_citazioni ORDER BY ID"

  5. #5
    Ninete da fare

    Dim strSQLMax
    strSQLMax= "SELECT Max(ID) as MaxVal, ID FROM tbl_citazioni ORDER BY ID"
    'strSQLMax = "SELECT Max(ID) as MaxVal FROM tabella ORDER BY ID"
    Dim strSQL
    strSQL = "SELECT Top 1 * FROM tbl_citazioni Order by ID"
    'strSQL = "SELECT Top 1 ID, citazione FROM tbl_citazioni Where ID = "
    ' estrai valore massimo
    Ho anche provato con le righe che ora sono commentate...niente. Che fo?
    Filippoies

    "Una volta pensata, niente fermerà una boiata nella sua strada dal cervello alla bocca." (Arthur Bloch)

  6. #6
    Anche la query commentata va cambiata (ovviamente se la vuoi usare).

    codice:
    'strSQLMax = "SELECT Max(ID) as MaxVal, ID FROM tabella ORDER BY ID"
    L'errore che ti dà è sempre lo stesso?

  7. #7
    Impossibile eseguire una query che non include l'espressione "ID" specificata come parte di una funzione di aggregazione.
    /frasifamose/default.asp, line 135
    dove la linea 135 è
    Set rs = conn.Execute(strSQLMax)
    set intMax = rs("maxVal")
    rs.Close
    set rs = Nothing
    La prima
    Filippoies

    "Una volta pensata, niente fermerà una boiata nella sua strada dal cervello alla bocca." (Arthur Bloch)

  8. #8
    Prova così:

    codice:
    SELECT Max(ID) as MaxVal FROM tbl_citazioni
    Dal momento che estrai solo un record, l'ordinamento non ti serve.

  9. #9
    Perfetto, ora l'errore lo da come
    Tipo di errore:
    (0x80020009)
    Eccezione.
    /default.asp, line 143
    dove 143:

    intRandom = CInt ((Rnd() * intMax) + 1)
    Filippoies

    "Una volta pensata, niente fermerà una boiata nella sua strada dal cervello alla bocca." (Arthur Bloch)

  10. #10
    Prova così:

    codice:
    intRandom = CInt((intMax * Rnd) + 1)

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.