Visualizzazione dei risultati da 1 a 8 su 8

Discussione: problemi campo memo

  1. #1

    problemi campo memo

    Salve,
    ho questo problema:
    cosa c'è di sbagliato in questo codice?:
    '************************************
    <%
    Session("Biografia")=request.Form("biografia")
    biografia=Session("Biografia")

    Session("Id")=request.Form("Id")
    Id=Session("Id")
    set cn = server.CreateObject("ADODB.Connection")
    set rs = server.CreateObject("ADODB.Recordset")
    cn.open "Driver={Microsoft Access Driver (*.mdb)}; dbq=" & Server.MapPath("mdb-database/Eventi.mdb")

    cn.Execute "update biografia set Bio='"&Biografia&"' where id = "& id

    Response.Redirect "Ok.asp"


    rs.Close
    set rs = nothing

    cn.Close
    set cn = nothing


    %>


    '************************************


    Mi esce come errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi (operatore mancante)

    Che sbaglio? Il campo biografia è MEmo
    the funk webbass

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    1) Non capisco l'utilizzo delle sessioni per il tipo di update che devi fare
    2) L'apertura del recordset è inutile
    3) L'errore è probabilmente dovuto alla mancanza di replace degli apici: se nel campo biografia che cerchi di inserire ci sono degli apici singoli la stringa di query si interrompe senza fare la replace
    4) La chiusura della connessione deve precedere i redirect: diversamente infatti la connessione rimarrebbe appesa

    Ecco come modificherei il codice:
    codice:
    <% 
    biografia = request.Form("biografia") 
    Id = request.Form("Id") 
    set cn = server.CreateObject("ADODB.Connection") 
    cn.open "Driver={Microsoft Access Driver (*.mdb)}; dbq=" & Server.MapPath("mdb-database/Eventi.mdb") 
    biografia = replace(biografia, "'", "''")
    cn.Execute "update biografia set Bio='"& biografia &"' where id = "& id 
    
    cn.Close 
    set cn = nothing 
    Response.Redirect "Ok.asp" 
    %>

    Roby

  3. #3
    Ho provato a sostituire il codice mio con il tuo ma non funziona dà sempre lo stesso errore
    the funk webbass

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ok allora scrivi così e dimmi cosa ti stampa a video:
    codice:
    <% 
    biografia = request.Form("biografia") 
    Id = request.Form("Id") 
    set cn = server.CreateObject("ADODB.Connection") 
    cn.open "Driver={Microsoft Access Driver (*.mdb)}; dbq=" & Server.MapPath("mdb-database/Eventi.mdb") 
    biografia = replace(biografia, "'", "''")
    
    strSQL="update biografia set Bio='"& biografia &"' where id = "& id 
    response.write strSQL:response.end
    
    cn.Execute strSQL
    
    cn.Close 
    set cn = nothing 
    Response.Redirect "Ok.asp" 
    %>

  5. #5
    Mi stampa:
    update biografia set Bio='Tutto il contenuto del campo MEMO'where id = 1
    the funk webbass

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Prima del "where" c'è uno spazio vero???
    Se c'è allora:
    1) La tabella non si chiama "biografia"
    2) Il campo "bio" o "id" non esistono
    3) Non mi viene in mente altro

    Roby

  7. #7
    Risolto
    con il problema degli apici e lo spazio non c'era prima del Where.
    In pratica nel testo con replace non venivano cancellati sei ""

    Grazie Mille come sempre efficienti..io un pò meno mi sto avvicinando ad asp da poco
    the funk webbass

  8. #8

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.