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

    Nessun errore, ma non scrive nei campi di Access

    Mi dite cosa c'è di sbagliato in questo codice?

    codice:
    <%
    		
    	Session("gioco")= 2
    	Dim Conn, strConn, Sql
    	Set Conn = Server.CreateObject("ADODB.Connection")
    	strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("/mdb-database/maxportal.mdb")
    	Conn.Open(strConn)
    
    	Sql = "INSERT INTO TButenti (Gioco) VALUES ("& Session("gioco") &")"
    	
    	Conn.execute(Sql)
    		
    	Set strConn = Nothing
    	Conn.Close
    	Set Conn = Nothing
    
    %>
    Dovrebbe connettersi al database e nella tabella TButenti dovrebbe impostare il campo "Gioco" a 2.

    Sto cercando di adattare un sito già fatto e non so esattamente se tutto ciò sia corretto.
    Sto imparando l'asp via via che lo leggo (quindi abbiate pietà )
    Sto cercando di aggiungere dei campi al database ma non riesco a immetterceli.
    In questo caso ho creato un nuovo campo "Gioco" su Access tramite "tasto destro-> Insert Column" per adattare il database esistente alle nuove istruzioni.

    Il server IIS 5 di Windows XP e il database Access funzionano perfettamente.

    Non sapendo come debuggura il codice non riesco a trovare l'errore (sono abituato al C )

    Grazie a tutti!

    Pictor

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    <%
    	Session("gioco")= 2
    	Dim Conn, strConn, Sql
    	Set Conn = Server.CreateObject("ADODB.Connection")
    	strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("/mdb-database/maxportal.mdb")
    	Conn.Open(strConn)
    
    	Sql = "INSERT INTO TButenti (Gioco) VALUES ("& Session("gioco") &")"
    	response.write (Sql):response.end 
    	Conn.execute(Sql)
    	Conn.Close
    	Set Conn = Nothing
    %>
    Il codice è corretto... Guarda cosa ti stampa anche se non dovrebbero esserci dubbi.

    Roby

  3. #3
    codice:
    INSERT INTO TButenti (Gioco) VALUES (2)
    Sembra che vada bene...

    Allora il problema dove sta?

    Potrebbe dargli noia il fatto che ho creato a mano il campo "Gioco" in un database già esistente?

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Mi sembra strano....
    Prova a compattare il db... non si sa mai come ragioni Access.
    Il campo "gioco" è numerico vero?

    Roby

  5. #5
    Scusa l'ignoranza ma che significa compattare il database?

    Comunque sì. Il campo è numerico. Inizialmente era testo. Ma prova dopo prova che non funzionava ho provato numerico. Giusto per vedere se funzionava.

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non è una scelta casuale!
    Se il campo è numerico la query DEVE essere così:
    codice:
    Sql = "INSERT INTO TButenti (Gioco) VALUES ("& Session("gioco") &")"
    Se il campo è di tipo testo la query DEVE essere così:
    codice:
    Sql = "INSERT INTO TButenti (Gioco) VALUES ('"& Session("gioco") &"')"
    Roby

  7. #7
    Ok. Adesso il codice della pagina di prova (che usavo per trovare l'errore) funziona.

    Però la pagina in cui devo inserire il codice è più complessa.

    Questa è approssimativamente il codice che eseguo per fare il tutto (registrare un nuovo utente).

    ...
    inizializzazione di tutte le session a "" (eccetto session(gioco) che è messa = 2)
    ...
    Stampa del codice html che mi crea i campi della form dai quali prendo i dati
    ...
    Prende i dati dalla form con:
    codice:
     
    Session("nome")			= Trim(Request.Form("nome"))
    Session("gioco")		= Trim(Request.Form("gioco"))
    ...
    "gioco" è il nome di due input di tipo Radio che assumono value 0 o 1

    e poi la stringa per l'inserimento dei dati nel database
    codice:
     
    Sql = "INSERT INTO TButenti ("
    	Sql = Sql &" [Nome]"
    	Sql = Sql &", [Cognome]"
    	Sql = Sql &", [Email]"
    	Sql = Sql &", [Citta]"
    	Sql = Sql &", [Nick]"
    	Sql = Sql &", [Avatar]"
    	Sql = Sql &", [Gioco]" '||PIC
    	Sql = Sql &", [InfoAggiuntive]"
    	Sql = Sql &" ) VALUES ( "
    	Sql = Sql &" '"& AddApice(Session("nome")) &"'"
    	Sql = Sql &", '"& AddApice(Session("cognome")) &"'"
    	Sql = Sql &", '"& AddApice(Session("email")) &"'"
    	Sql = Sql &", '"& AddApice(Session("citta")) &"'"
    	Sql = Sql &", '"& AddApice(Session("nick")) &"'"
    	Sql = Sql &", '"& AddApice(Session("avatar")) &"'"
    
    	Sql = Sql &", "& Session("gioco")
    
    	Sql = Sql &", '"& AddApice(Session("info")) &"')"
    AddApice è una funzione secondaria che mi aggiunge il doppio apice (è ininfluente)

    ed infine
    codice:
     
            rConn.execute(Sql)
    Purtroppo questo codice mi crea l'utente e tutto il resto con i campi corretti.... ma del campo "gioco" non ne vuole sapere. Ho provato sia a metterlo come Text che come Number...

    Purtroppo non posso optare per altre scelte. Il codice è già fatto ed io lo devo solamente aggiornare

  8. #8
    Starò smattando io ma non funziona di nuovo più la pagina di prova..

    il codice
    codice:
    <%
    	Session("gioco")= 2
    	Dim Conn, strConn, Sql
    	Set Conn = Server.CreateObject("ADODB.Connection")
    	strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath("/mdb-database/maxportal.mdb")
    	Conn.Open(strConn)
    
    	Sql = "INSERT INTO TButenti (Gioco) VALUES ("& Session("gioco") &")"
    	response.write (Sql):response.end 
    	Conn.execute(Sql)
    	Conn.Close
    	Set Conn = Nothing
    %>
    non scrive nel database....

    Ve lo ripropongo...

    Ditemi voi quale può essere l'errore.
    Se il codice è sbagliato dove può essere l'errore? :master:

    Scusate se rompo... ma proprio non posso procedere se non risolvo questo problema....

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Questa riga la devi togliere per scrivere ovviamente...

    response.write (Sql):response.end


    Roby

  10. #10
    LOL!

    Hai ragione!

    Però il programma vero e proprio (ho scritto il codice più su) non funziona ugualmente (anche perchè lì non stampo nessuno response; quindi non so quale possa essere l'errore ).

    Grazie per l'aiuto

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.