Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Errore su controllo valore campo

    Ciao,

    ho una pagina che recupera un campo memo da un DB access, questo campo viene "pulito" con una funzione:
    Codice PHP:
    <%
    'recupero il campo dal DB
    campo_memo = VediTesto(RS("campo"))

    '
    funzione che pulisce
    If StringaTesto "" OR IsNull(StringaTesto) OR Len(StringaTesto) = OR IsEmpty (StringaTestoThen     '<-- riga che genera l'errore
        StringaTesto 
    " "
    ElseIf StringaTesto <> "" Then
        StringaTesto 
    Replace(StringaTesto"[&]""&"1, -11)
        
    StringaTesto Replace(StringaTesto"[""["1, -11)
    '.............
    '
    .............
            
    VediTesto StringaTesto
        
    Else
            
    VediTesto ""
        
    End If
    End Function
    %> 
    - lavorando in locale con DB access funziona (ed ha sempre funzionato)
    - on-line con DB access funziona
    - on-line con DB MySQL funziona
    - in locale con MySQL NON funziona, mi restituisce questo errore:

    Tipo di errore:
    (0x80020009)
    Eccezione.
    /blablabla/inc_libreria.asp, line 526

    e la riga 526 è quella che controlla se la variabile è <> ""

    l'unica differenza che ho notato tra MySQL on-line e MySQL locale è il driver, sul server ho ODBC 3.51 versione 3.51.11.00 mentre in locale ho la versione 3.51.16.00

    può dipendere da questo?

    naturalmente l'errore me lo da solo se il campo è vuoto...

    fulvio.

  2. #2
    Utente di HTML.it L'avatar di diegoctn
    Registrato dal
    May 2001
    Messaggi
    2,118
    A) perchè hai postato nel forum asp?

    B) Setta il valore "cosenti lunghezza zero" a true

    C) Ti consiglio di fare una ricerca su questo forum digitando la parola eccezione


    Ciao

  3. #3
    Originariamente inviato da diegoctn
    A) perchè hai postato nel forum asp?
    ...perchè la pagina è in asp, dove avrei dovuto postare?
    Originariamente inviato da diegoctn
    B) Setta il valore "cosenti lunghezza zero" a true
    stiamo parlando di MySQL, non di Access...
    Originariamente inviato da diegoctn
    C) Ti consiglio di fare una ricerca su questo forum digitando la parola eccezione
    è tutto il giorno che giro forum

    comunque grazie.

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    If StringaTesto &"[]" = "[]" Then 
        StringaTesto = " " 
    ElseIf StringaTesto &"[]" <> "[]" Then
    Roby

  5. #5
    Originariamente inviato da Roby_72
    codice:
    If StringaTesto &"[]" = "[]" Then 
        StringaTesto = " " 
    ElseIf StringaTesto &"[]" <> "[]" Then
    Roby
    Grazie Roby ma mi dà sempre lo stesso errore

    ho anche provato a ricreare le tabelle in locale mettendo esplicitamente il campo sia come LONGTEXT DEFAULT NULL sia come LONGTEXT DEFAULT '' ma quando il campo è vuoto da errore... quello che non capisco è perchè online funziona...

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ma la funzione non l'hai aperta...

  7. #7
    Originariamente inviato da Roby_72
    Ma la funzione non l'hai aperta...
    no no, la apro correttamente, sono 40 righe ed ho fatto solo un errore di copia incolla... è questa:

    Codice PHP:
    <%
    '-----funzione per riordinare il testo quando viene pubblicato
    Function VediTesto(StringaTesto)
        If StringaTesto & "[]" = "[]" Then
            StringaTesto = " "
        ElseIf StringaTesto <> "" Then
            StringaTesto = Replace(StringaTesto, "[&]", "&", 1, -1, 1)
            StringaTesto = Replace(StringaTesto, "[", "[", 1, -1, 1)
                              '
    .....
                              
    '.......
            VediTesto = StringaTesto
        End If
    End Function

    %> 
    può essere in locale win2000 e online invece win2003? bhò

  8. #8
    dunque, aggiorno l'errore generato:

    ho modificato il campo da LONGTEXT a TEXT e non è cambiato nulla, allora ho fatto un passo indietro, prima recupero il valore da DB e poi lo "pulisco":

    Codice PHP:
    'recupero il campo dal DB 
    campo_memo = RS("campo")    '    
    <--- RIGA CHE GENERA L'ERRORE 
    If campo_memo <> "" Then
        campo_memo = VediTesto(campo_memo) 
    End If 
    adesso l'errore generato è questo:

    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
    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.

    Naturalmente l'errore viene generato SOLO se il campo è vuoto...

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.