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

    Problema con script "luke gestione record"

    ciao a tutti,
    ho prelevato dalla sezione script->database lo script "Luke gestione record" e l'ho presonalizzato aggiungendo la visualizzazione di altri record del DB.
    Ma adesso mi accade ke se ad esempio un campo del Db è vuoto puoi nella visualizzazione dela pagina "index.asp" mi appare l'errore:

    Microsoft JScript runtime error '800a000d'
    Type mismatch

    questo è lo script della pagina index.asp:

    <%@LANGUAGE = JScript%>

    <%
    var Rs = Cn.Execute("SELECT * FROM anagrafe ORDER BY id DESC");
    %>
    <html>
    <head>
    <title>Leggi i dati</title>
    <style type="text/css">
    td { font: Normal 12px Verdana; }
    a { color: #0000FF; }
    a:hover { color: #FF0000; }
    </style>
    </head>
    <body>

    <table align="center" width="400" cellpadding="1" cellspacing="0" border="1">
    <tr>
    <td colspan="4">Leggi i dati </td>
    </tr>
    <%
    if (Rs.EOF) Response.Write("<td colspan=\"4\">Nessun dato</td>");
    else while (!Rs.EOF)
    {
    %>
    <tr>
    <td width="50" align="center">">Mod.</td>
    <td width="50" align="center">">Canc.</td>
    <td width="150"><%=Server.HTMLEncode(Rs("titolo"))%></td>
    <td width="150"><%=Server.HTMLEncode(Rs("data"))%></td>
    <td width="150"><%=Server.HTMLEncode(Rs("sottotitolo1" ))%></td>
    <td width="150"><%=Server.HTMLEncode(Rs("sottotitolo2" ))%></td>
    <td width="150"><%=Server.HTMLEncode(Rs("testo"))%></td>
    <td width="150"><%=Server.HTMLEncode(Rs("autore"))%></td>
    <td width="150"><%=Server.HTMLEncode(Rs("varie"))%></td>
    <td width="150"><%=Server.HTMLEncode(Rs("note"))%></td>
    </tr>
    <%
    Rs.Movenext();
    }
    %>
    <tr>
    <td colspan="3">Inserisci</td>
    <td align="right">by lukeonweb.net</td>
    </tr>
    </table>

    </body>
    </html>
    <%Cn.Close()%>


    Qual'è il problema? Ho provato a dare ai records del .mdb "si" "consenti lunghezza zero", ma non ha funzionato.
    Bye

  2. #2
    Perchè quella cosa che hai fatto ti serve quando inserisci nuovi record e se il tuo valore è null non ti da errore la query, ma in questo caso devi gestire

    If (isNull(NOME_Record)) Then
    Nome_Record = " "
    End If

    Perchè Jscript e VBscript in ASP non sanno gestire i valori null per l' oggetto RecordSet


  3. #3
    grazie raffaeu, ma dove metto il codice? lo sostituisco a:

    if (Rs.EOF) Response.Write("<td colspan=\"4\">Nessun dato</td>");
    else while (!Rs.EOF)
    {

    e lo ripeto per ogni record?
    azzo.. quanto sono ignorante in materia!!
    bye

  4. #4
    Esempio:

    codice:
    While Not Rs.EOF
         Response.Write Rs.Fields("CAMPO")
         If isNull(Rs.Field("CAMPO")) Then
              Rs.Field("CAMPO") = ""
         End If
    Rs.MoveNext
    Wend
    Si si per ogni record che puo' avere valori null

  5. #5
    ..ho provato a fare così, ma non va. Ma quanto non ci capisco niente!!

    <%
    While Not Rs.EOF
    %>
    <tr>
    <td width="50" align="center">">Mod.</td>
    <td width="50" align="center">">Canc.</td>
    <td width="150">
    <%
    Response.Write Rs.Fields("titolo")
    If isNull(Rs.Field("titolo")) Then
    Rs.Field("titolo") = ""
    %></td>
    <td width="150">
    <%
    Response.Write Rs.Fields("data")
    If isNull(Rs.Field("data")) Then
    Rs.Field("data") = ""
    %></td>
    </tr>
    <tr>
    <td colspan="10">Inserisci</td>
    </tr>
    <%
    End If
    Rs.MoveNext
    Wend
    %>

  6. #6
    Riprovo

    if not isnull(objrs ("Nome")) then response.write (objrs ("Nome"))


    Cosi' scrive solo se ci sono valori al massimo fai un Else ...

  7. #7
    ho provato.. ma non va. Sicuramente il tuo consiglio è giusto ma io sono molto di coccio e sbaglio qualcosa. Mi arrendo.
    Ti ringrazio tanto Raffaeu.

  8. #8
    Nooooo!! Mai arrendersi il codice è corretto magari è qualcos' altro, comunque mai arrendersi, se vuoi continuare possiamo fare altre prove

  9. #9
    ciao raffaeu, in realtà non mi sono arreso.. la notte è stata lunga e ho trovato una soluzione e adesso funziona anke se il campo è nullo:

    %
    if (Rs.EOF) Response.Write("<td colspan=\"4\">Nessun dato</td>");
    else while (!Rs.EOF)
    {
    %>
    <tr>
    <td width="60" align="center>">Modifica</td>
    <td width="60" align="center>">Cancella</td>
    <td><%=Rs("titolo")%></td>
    <td><%=Rs("data")%></td>
    <td><%=Rs("sottotitolo1")%></td>
    <td><%=Rs("sottotitolo2")%></td>
    <td><%=Rs("testo")%></td>
    <td><%=Rs("autore")%></td>
    <td><%=Rs("note")%></td>
    <td><%=Rs("varie")%></td>
    </tr>
    <%
    Rs.Movenext();
    }
    %>
    <tr>

    Ma ora invece ho un problema nel file modifica.asp, non riesco a modificare un record tramite l'upload. L'errore ke mi appare è:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
    [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
    /cgi-bin/press/modifica.asp, line 96

    la riga 96 è:

    Cn.Execute("UPDATE press SET titolo = '" + r_titolo + "', data = '" + r_data + "', sottotitolo1 = '" + r_sottotitolo1 + "', sottotitolo2 = '" + r_sottotitolo2 + "', testo = '" + r_testo + "', autore = '" + r_autore + "', note = '" + r_note + "', varie = '" + r_varie + "' WHERE id = " + id);

    Vedi qualche errore ? Io ormai ci ho perso la vista!! :master:
    GRAZIE per il sostegno morale e tecnico!!

  10. #10
    Fai cosi'

    strSQL = "UPDATE ..."
    Response.Write strSQL
    Cn.Execute strSQL, bRecord

    bRecord ti risponde il numero dei record che la query ha modificato

    con il response write facciamo il debug della query e vediamo dove stà l' errore.

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.