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

    Incompatibilità fra tipi?

    Salve! Stavolta ho un problema piuttosto complesso (o a me sembra cosi ). Ho un errore di questo tipo:
    Incompatibilità tra tipi.
    che mi viene data quando carico una pagina in cui c'è un form per inserire dei dati nel db. Il problema si presenta sulle due linee in cui ci sono dei campi d'inserimento testo che si riferiscono a campi numerici nella tabella del db. Se metto commentati questi campi del form, allora funziona tutto. Cosa può essere?
    Grazie mille

  2. #2
    Senza codice è un po' difficile azzardare ipotesi...
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  3. #3
    Ok, ecco alcune parti salienti

    ADOConn= Server.CreateObject("ADODB.Connection");
    ADOConn.Open("Kulmine");

    RecSet = Server.CreateObject("ADODB.Recordset");

    RecSet.ActiveConnection = ADOConn;
    RecSet.Source = "SELECT * FROM Principale";
    RecSet.CursorType = 0;
    RecSet.CursorLocation = 2;
    var Recordset1_numRows = 0;
    %>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Amministrazione</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="stile.css" rel="stylesheet" type="text/css">
    </head>

    <body>

    <%

    // Imposto la ricezione dei dati nel db
    modello = String(Request.Form("modello"));
    marca = String(Request.Form("marca"));
    categoria = String(Request.Form("categoria"));
    tech = String(Request.Form("tech"));
    prezzo = String(Request.Form("prezzo"));
    fotop = String(Request.Form("fotop"));
    fotog = String(Request.Form("fotog"));
    tipo = String(Request.Form("tipo"));

    // L'annuncio viene registrato
    RecSet.Open ("Principale", ADOConn, 1, 3);
    RecSet.AddNew();
    //RecSet("prezzo")=prezzo; //questa è la linea che da errore
    RecSet("fotog")=fotog;
    RecSet("fotop")=fotop;
    //RecSet("tipo")=tipo; //questa è la linea che da errore
    RecSet("categoria")=categoria;
    RecSet("marca")=marca;
    RecSet("modello")=modello;
    RecSet("tech")=tech;

    // Registro e chiudo la connessione
    RecSet.Update();
    RecSet.Close();
    %>



    Benvenuto nel pannello di amministrazione di Kulmine.it. Sei pregato di pulirti le scarpe
    prima di entrare e di lasciare tutto in ordine quando te ne vai. Grazie.</p>

    <form name="registra_img" method="post" action="admin.asp">

    Prezzo:

    <input type="text" name="prezzo" />



    Immagine grande:

    <input type="file" name="fotog" />



    Anteprima immagine:

    <input type="file" name="fotop" />



    Tipo:

    <input type="radio" name="tipo" value="1" />Bo1
    <input type="radio" name="tipo" value="2" />Bo2



    Categoria:

    <select name="categoria">
    <option value="mountan bike">Mountan Bike</option>
    <option value="corsa">Corsa</option>
    <option value="varie">Varie</option>
    <option value="recumbert">Recumbert</option>
    </select>



    Marca:

    <select name="marca">
    <option value="mountan bike">Mountan Bike</option>
    <option value="corsa">Corsa</option>
    <option value="varie">Varie</option>
    <option value="recumbert">Recumbert</option>
    </select>



    Modello:

    <select name="modello">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    </select>



    Tech:

    <select name="tech">
    <option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
    <option value="D">D</option>
    </select>



    <input type="submit" value="Invia" />

    </form>
    </body>
    </html>

    <%
    ADOConn.Close();
    %>


    Grazie e saluti

  4. #4
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    Devi controllare che i dati inseriti siano del tipo giusto per poter essere memorizzati nei campi. Devi utilizzare, ad esempio, la funzione IsNumeric()...

  5. #5
    Infatti il mio dubbio era quello perchè sono campi nuerici nel db. Dove devo metterla la funzione IsNumeric()? Al posto di String(Request.Form ecc)?

  6. #6
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    La faccenda è articolata: devi controllare i dati che dovrebbero essere numerici. Se lo sono, è tutto ok e puoi valorizzare correttamente i campi del tuo record. Se non lo sono, che vuoi che succeda? Lasci indietro i campi? Riproponi la pagina vuota? Riproponi la pagina con tutti i dati evidenziando quelli sbagliati?

  7. #7
    Ma l'errore non me lo da quando inserisco dei dati sbagliati, bensì quando carico la pagina del pannello per inserirli! E' questo che non mi torna... Per ora do per scontato che l'amministratore (io ) metta dati numerici al posto giusto

  8. #8
    Utente di HTML.it L'avatar di longline
    Registrato dal
    Sep 2001
    Messaggi
    5,363
    A prescindere da ciò che vuoi che faccia la tua pagina, le linee che tu hai evidenziato memorizzano dati provenienti da un FORM in un record

  9. #9
    Io farei così:

    codice:
    if IsNumeric(prezzo) then
       RecSet("prezzo") = cInt(prezzo); 
    else
       RecSet("prezzo") = 0,00; 
    end if
    
    if IsNumeric(tipo) then
       RecSet("tipo") = cInt(tipo); 
    else
       RecSet("tipo") = 0,00; 
    end if
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  10. #10
    if ( IsNumeric(prezzo)) then
    RecSet("prezzo") = cInt(prezzo);
    else
    RecSet("prezzo") = 0,00;
    end if

    Mi da un errore di sintassi
    edito: un errore di sintassi sulla riga dell'else

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.