Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it L'avatar di seaside
    Registrato dal
    Jul 2004
    Messaggi
    103

    [MySQL] errore nel leggere i dati

    scusatemi, sicuramente sarà una stupidata, ho provato con la ricerca sul forum e su google, ma non sono riuscito a capire dove sbaglio

    codice:
    Dim conn, rs, sql
    
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "driver=Mysql ODBC 3.51 Driver; server=IP-SERVER; uid=MIO-USERID; pwd=MIA-PASSWORD; database=MIO-DATABASE"
    
    sql = "SELECT COUNT(*) FROM nometabella ORDER BY nomecampo ASC"
    Set rs = Server.CreateObject("ADODB.RecordSet")
    rs.Open sql, conn, 3, 3
    
    Response.Write rs(0)
    Response.Write rs("nomecampo")
    
    rs.Close
    Set rs = Nothing
    conn.Close
    Set conn = Nothing
    Risposta del server:

    ADODB.Recordset error '800a0cc1'
    Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto.
    La riga incriminata è: Response.Write rs("nomecampo")

    Se tolgo quella riga, va tutto bene, Response.Write rs(0) mi stampa il numero "3" a video, che è effettivamente il numero totale delle righe della mia tabella, quindi la connessione va bene.

    Non riesco proprio a risolvere il problema

  2. #2
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    codice:
    sql = "SELECT COUNT(*) AS totaleRighe FROM nometabella ORDER BY nomecampo ASC"
    
    Set rs = Server.CreateObject("ADODB.RecordSet")
    rs.Open sql, conn, 3, 3
    
    Response.Write(Rs("totaleRighe")) 
    Response.Write(" righe in totale.")
    A S P : tutto il resto è noia...
    L I N U X : forse mi "converto"...

  3. #3
    Utente di HTML.it L'avatar di seaside
    Registrato dal
    Jul 2004
    Messaggi
    103
    Mi dà di nuovo errore, o forse ho capito male io

    Il codice che ho postato io sembra andare bene come connessione, perché effettivamente con
    Response.Write rs(0)
    mi visualizza "3" che è il numero totale di righe della mia tabella.

    Ma io vorrei visualizzare il valore del campo "nomecampo" della prima riga, insomma una semplice prova per poi passare a tabelle e query serie

    Response.Write (rs("nomecampo"))

    mi dà questo errore:
    ADODB.Recordset error '800a0cc1'
    Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto.

    :master:

  4. #4
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    Hai provato il mio di codice?
    A S P : tutto il resto è noia...
    L I N U X : forse mi "converto"...

  5. #5
    Utente di HTML.it L'avatar di seaside
    Registrato dal
    Jul 2004
    Messaggi
    103
    Sì e mi dà errore, anche se perdonami, credo di avere capito male io, perché non credo che dovessi copiarlo paripari.

    L'errore è questo:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e21'
    Il driver ODBC non supporta le proprietà richieste.

    Quel "totaleRighe" cosa sarebbe?
    Vorrei solo stampare il primo valore dell'unico campo in tabella.

  6. #6
    Utente di HTML.it L'avatar di seaside
    Registrato dal
    Jul 2004
    Messaggi
    103
    Scusa sono rinco io, il tuo codice va bene
    Mi stampa il numero delle righe totali ma quello lo faceva anche il mio postato all'inizio con il comando

    Response.Write rs(0)

    Era solo una prova, la mia intenzione è però stampare il primo valore del campo "nomecampo"

  7. #7
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    Originariamente inviato da seaside
    Scusa sono rinco io, il tuo codice va bene
    Mi stampa il numero delle righe totali ma quello lo faceva anche il mio postato all'inizio con il comando

    Response.Write rs(0)

    Era solo una prova, la mia intenzione è però stampare il primo valore del campo "nomecampo"
    Ed hai bisogno di fare un query selectcount per stampare il primo valore del campo "nomecampo"??
    A S P : tutto il resto è noia...
    L I N U X : forse mi "converto"...

  8. #8
    Utente di HTML.it L'avatar di seaside
    Registrato dal
    Jul 2004
    Messaggi
    103
    Abbi pietà vengo da Access!!!

    Sto semplicemente facendo una prova, per poi utilizzarla su tabelle che avranno un alto numero di colonne

    Con Access facevo un bel SELECT * poi bastava scrivere

    rs.Fields("campo-1")
    rs.Fields("campo-2")
    ..............
    rs.Fields("campo-n")

    per richiamare tutti i campi.
    Con MySQL devo dichiarare ogni colonna nel select con un alias?

  9. #9
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    http://openskills.info/topic.php?ID=163

    Query utilizzata per estrarre dati da una tabella.
    La sintassi è semplice: SELECT colonne FROM nome_tabella opzioni

    Vediamo alcuni esempi:
    SELECT nome FROM anagrafica
    vengono selezionati solo i nomi dalla tabella anagrafica

    SELECT nome,cognome FROM anagrafica
    vengono selezionati sia i nomi che i cognomi dalla tabella anagrafica

    SELECT * FROM anagrafica
    vengono pescati tutti i valori contenuti nella tabella anagrafica (nome, cognome e indirizzo e-mail)

    Vediamo quali opzioni prevede la query select:
    WHERE condizione: specifica un criterio con cui eseguire la ricerca.
    LIKE variabile: restituisce i risultati che comprendono la variabile specificata. Quando si utilizza il simbolo % si intende che si accetta qualunque sequenza di caratteri.
    ORDER BY colonna: se non viene specificato nient'altro, il risultato è ordinato in ordine crescente (alfabetico o numerico) a partire dalla colonna specificata. Per ordine in maniera decrescente si usa il comando DESC.
    LIMIT numero: limita il numero di risultati a quanto definito

    Vediamo alcuni esempi:
    SELECT * FROM anagrafica WHERE nome='Paolo'
    vengono restituiti tutti i record che hanno come nome Paolo

    SELECT * FROM anagrafica WHERE nome='Paolo' AND cognome='Rossi'
    vengono restituiti tutti i record che hanno come nome Paolo e come cognome Rossi

    SELECT * FROM anagrafica WHERE nome<>'Paolo'
    vengono restituiti tutti i record che hanno il nome diverso da Paolo

    SELECT * FROM anagrafica WHERE nome like 'Pa%'
    vengono restituiti tutti i record che come hanno il nome che comincia con il valore "Pa", ad es. Paolo, Patrizia, Pasquale, etc.

    SELECT * FROM anagrafica WHERE nome like '%lo'
    vengono restituiti tutti i record che come hanno il nome che finisce con il valore "lo", ad es. Paolo, Bartolo, etc.

    SELECT * FROM anagrafica WHERE nome like '%paol%'
    vengono restituiti tutti i record che come hanno all'interno del nome il valore "paol", ad es. Paolo, Gianpaolo, Paolantonio, etc.

    SELECT * FROM anagrafica ORDER BY telefono
    i record risultanti vengono ordinati per numero di telefono, dal più piccolo al più grande

    SELECT * FROM anagrafica ORDER BY nome DESC, cognome ASC
    i record risultanti vengono ordinati in maniera crescente secondo il cognome e decrescente secondo il nome

    SELECT * FROM anagrafica ORDER BY RAND()
    i record risultanti vengono ordinati in maniera casuale (random)

    SELECT * FROM anagrafica LIMIT BY 5
    vengono restituiti gli ultimi 5 record estratti
    A S P : tutto il resto è noia...
    L I N U X : forse mi "converto"...

  10. #10
    Utente di HTML.it L'avatar di seaside
    Registrato dal
    Jul 2004
    Messaggi
    103
    Grazie mille ottimo link
    ma il mio problema non è nella sintassi SELECT (ho verificato che va bene), ma nella stupidata di stampare a video un semplice dato che si trova in tabella

    Con Access facevo
    Response.Write (rs.Fields("nomecampo"))

    Con MySQL faccio
    Response.Write rs("nomecampo")

    e mi restituisce l'errore
    ADODB.Recordset error '800a0cc1'
    Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto.

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.