Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    asp e mysql: errori in un'operazione OLE DB composta da più passaggi... che roba è?

    ciao a tutti ho realizzato un forum in asp-mysql 4.1 (http://www.tommyblue.it/myforum/index.asp), però ho un problema (SOLO sul server, ma non sul mio pc in locale), ve lo descrivo.
    faccio una query per leggere i messaggi, ad esempio di una discussione; quando vado a visualizzare il messaggio mi dà l'errore

    ---
    Provider error '80040e21'

    Si sono verificati errori in un'operazione OLE DB composta da più passaggi. Controllare i singoli valori di stato OLE DB, se disponibili. Nessuna operazione eseguita.
    ---

    esattamente nella riga in cui faccio
    response.write rs("msg")
    dove il campo "msg" è di tipo text. la cosa che mi fa arrabbiare è che se imposto il campo come varchar funziona tutto, mentre se lo metto text o di dimensioni ancora maggiori (tipo longtext, ecc...) mi dà l'errore sopra.
    credo che dipenda da asp...
    non so esattamente che server sia, non lo gestisco io ma se serve mi informo, so solo che c'è mysql 4.1 (versione stabile)
    a casa (win 2000 sp4, iis installato dal cd di win 2000, mysql è la stessa versione), come dicevo, non dà problemi
    qualcuno ne sa qualcosa di più?
    ciao grazie
    un computer fa quello che gli dici, non quello che vuoi!

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Posta la query e come scorri il recordset.

    Roby

  3. #3
    l'errore me lo dà ogni volta che voglio mostrare il contenuto di un campo text o più lungo. questo è quanto avviene per visualizzare un singolo messaggio privato.
    ----questa è la query e la sua apertura (che avviene in una routine separata)

    sql="SELECT mess_p.id, mess_p.titolo, mess_p.msg, mess_p.data, mess_p.ida, "
    sql=sql & "mess_p.idda, f1.nik AS danik, f2.nik AS anik, f1.avatar, f1.firma, f1.cit, "
    sql=sql & "f1.datareg, f1.idstato, f1.idcateg, f1.firmaab, f1.avatarab "
    sql=sql & "FROM mess_p, forumisti AS f1, forumisti AS f2 "
    sql=sql & "WHERE mess_p.id=" & idm & " AND (mess_p.ida=" & sidf & " OR "
    sql=sql & "mess_p.idda=" & sidf & ") AND mess_p.idda=f1.id AND mess_p.ida=f2.id ;"

    call openconn()
    call openrs(sql, rs)
    ---
    questa è la riga incriminata, non c'è ciclo in questo caso
    response.write "</td><td><table width=""100%""><tr><td><div class=""p_vmmsg"">" & rs("msg") & "</div></td></tr></table></td></tr>"

    ah, l'errore che mi dà cercando di mostrare un mess privato (error '80020009') è un altro numero e non ha descrizione, ma credo che sia sempre quello descritto sopra.

    per la visualizzazione delle discussioni è la stessa cosa solo che scorro i risultati in un ciclo tipo

    do until rs.eof
    '----
    loop
    un computer fa quello che gli dici, non quello che vuoi!

  4. #4
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    ma hai provato a vedere se la query funziona direttamente da console o con l'admin?
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  5. #5
    l'utente che le asp usano per accedere al db credo che abbia tutti i poteri sul db del forum, comunque ho eseguito ora la query dal phpmyadmin e dà il risultato corretto, senza problemi. per questo credo che il problema sia dell'asp.
    ho provato a fare una semplicissima pagina

    ---
    dim sql

    sql="SELECT msg FROM mess;"
    dim rs
    call openconn()
    call openrs(sql,rs)

    do until rs.eof
    response.write rs("msg")
    loop
    ----

    e anche qui mi dà l'errore, vedi tu stesso... http://www.tommyblue.it/myforum/prova.asp
    un computer fa quello che gli dici, non quello che vuoi!

  6. #6
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    posta anche la parte relativa alla stringa di connessione
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  7. #7
    ecco qua...

    sub openconn()
    'programma di connessione al database
    Set conn = server.CreateObject("ADODB.Connection")
    Set comm = server.CreateObject("ADODB.Command")

    conn.CommandTimeout = 40
    conn.CursorLocation = 1
    conn.ConnectionString="DRIVER={MySQL ODBC 3.51 Driver};" & dbname_user_pass
    conn.Open
    comm.ActiveConnection = conn
    comm.CommandType = 1
    connaperta=true
    end sub

    sub closeconn() 'chiude la connessione al database
    conn.close
    set conn = nothing
    connaperta=false
    end sub

    sub openrs(sql, rs) 'apre un recordset
    set rs = server.CreateObject("adodb.recordset")
    comm.CommandText = sql
    rs.Open comm, , 1, 1
    end sub

    sub closers(rs) 'chiude un recordset
    rs.close
    set rs=nothing
    end sub
    un computer fa quello che gli dici, non quello che vuoi!

  8. #8
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    Perchè invece di fare tutto quell':ambaradan:, non adotti una procedura più semplice tanto per fugare ogni dubbio?

    togli di mezzo le sub per ora e prova ad istanziare solo l'oggetto connection, scrivere la stringa di connessione per intero, aprire la connessionee poi fare in questo modo:

    codice:
    Set rs = conn.execute(sql)
    vedi cosa ti esce fuori.
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

  9. #9
    intendevi una cosa del genere?? spero di no

    codice:
    dim sql, rs
    
    sql="SELECT msg FROM mess;"
    
    Set conn = server.CreateObject("ADODB.Connection")
    conn.ConnectionString="DRIVER={MySQL ODBC 3.51 Driver};" & dbname_user_pass
    conn.Open
    
    Set rs = conn.execute(sql)
    
    do until rs.eof
    	response.write rs("msg")
    loop
    perché così mi fa impallare tutto il forum per qualche minuto...
    un computer fa quello che gli dici, non quello che vuoi!

  10. #10
    ah, ecco che è appena arrivato l'errore...è andato in Timeout script
    un computer fa quello che gli dici, non quello che vuoi!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.