CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: complicazio con ben 2 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 11 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Pagina 1 di 2 12 ultimoultimo
Ultima pagina
Visualizzazione dei risultati da 1 a 10 su 13
Discussione:

codice log-in

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiano


    Registrato dal
    Oct 2010
    Messaggi
    107

    Ringraziamenti
    22
    Ringraziato 1 volta in 1 Post
    Predefinito

    codice log-in

    Salve ragazzi!
    Vorrei fare un semplice login alla mia applicazione. C'è solo il nome utente senza password.
    Non riesco a capire se sia meglio gestire la cosa su file, oppure con database!?
    Allora su file, ogni volta che si registra un nuovo utente, devo verificare che il nome non esista già. e poi inserire ogni nome, magari in una riga diversa, per facilitarmi la lettura su file.

    Mentre col database come funzionerebbe? cioè come dovrei verificare se un nome esiste già?
    Non credo che lo faccio in modo automatico, il metodo insert().

  2.  
  3. #2
    Senior Droid L'avatar di Cymon


    Registrato dal
    Jul 2010
    Messaggi
    419

    Ringraziamenti
    7
    Ringraziato 43 volte in 42 Posts
    Predefinito

    Quote Originariamente inviato da allmystery Visualizza il messaggio
    Salve ragazzi!
    Vorrei fare un semplice login alla mia applicazione. C'è solo il nome utente senza password.
    Non riesco a capire se sia meglio gestire la cosa su file, oppure con database!?
    Allora su file, ogni volta che si registra un nuovo utente, devo verificare che il nome non esista già. e poi inserire ogni nome, magari in una riga diversa, per facilitarmi la lettura su file.

    Mentre col database come funzionerebbe? cioè come dovrei verificare se un nome esiste già?
    Non credo che lo faccio in modo automatico, il metodo insert().
    Dipende dal tipo di applicazione e quello che vuoi farci... secondo me scrivere su file, su android, è sempre piuttosto scomodo rispetto a fare una cosa su DB, quindi secondo me ti dovresti comunque orientare su DB (tanto parliamo sempre di SQLIte, che sono sempre oggetti leggeri e semplici).
    In ogni caso devi controllare SEMPRE TU che le cose vadano a buon fine, stai scherzando? Ti vuoi fidare DELLE MACCHINE?
    La mia katana: Slackware 13.1
    La mia wakizashi: Acer A1 Liquid con Android 2.1 Eclair
    Il mio sito: Follow the rabbit (con la sua App )

  4. #3
    Androidiano


    Registrato dal
    Oct 2010
    Messaggi
    107

    Ringraziamenti
    22
    Ringraziato 1 volta in 1 Post
    Predefinito

    ma no! che non mi fido! volevo dire, che non credo che già all'interno della logica di insert del database di android, ci sia il controllo di 2 righi con uguale contenuto! dovrei sempre farlo io! ma nn saprei come farlo con database! cioè dovrei sempre caricare tutto il contenuto(che saranno poche righe) del database e fare il confronto con la stringa nuova da inserire...
    se è uguale allora non inserisco, altrimenti ok!
    E' più o meno questo che dovrei fare? o c'è qualche metodo che già lo fà!?

  5. #4
    Senior Droid L'avatar di Cymon


    Registrato dal
    Jul 2010
    Messaggi
    419

    Ringraziamenti
    7
    Ringraziato 43 volte in 42 Posts
    Predefinito

    Quote Originariamente inviato da allmystery Visualizza il messaggio
    ma no! che non mi fido! volevo dire, che non credo che già all'interno della logica di insert del database di android, ci sia il controllo di 2 righi con uguale contenuto! dovrei sempre farlo io! ma nn saprei come farlo con database! cioè dovrei sempre caricare tutto il contenuto(che saranno poche righe) del database e fare il confronto con la stringa nuova da inserire...
    se è uguale allora non inserisco, altrimenti ok!
    E' più o meno questo che dovrei fare? o c'è qualche metodo che già lo fà!?
    Se metti sul campo nome uno unique constraint nel momento in cui cercherai di fare la insert riceverai errore dal database. A quel punto si tratta di gestire l'errore per riportare all'utente il motivo corretto della fallita creazione (ancor più se il campo nome è chiave primaria... ma di solito è sconsigliato procedere così).
    Se non vuoi muoverti in questo modo puoi semplicemente, prima dell'insert, fare una query col nome che si desidera inserire e vedere se ritorna righe. In caso contrario fai l'insert (ovviamente il constraint unique è consigliato comunque...).
    La mia katana: Slackware 13.1
    La mia wakizashi: Acer A1 Liquid con Android 2.1 Eclair
    Il mio sito: Follow the rabbit (con la sua App )

  6. Il seguente Utente ha ringraziato Cymon per il post:

    allmystery (18-01-11)

  7. #5
    Androidiano


    Registrato dal
    Oct 2010
    Messaggi
    107

    Ringraziamenti
    22
    Ringraziato 1 volta in 1 Post
    Predefinito

    Fantastico! allora procedo! grazie mille!

  8. #6
    Androidiano


    Registrato dal
    Oct 2010
    Messaggi
    107

    Ringraziamenti
    22
    Ringraziato 1 volta in 1 Post
    Predefinito

    ormai son 2 giorni che ci sbatto questa testa che mi ritrovo.

    Allora il mio obbiettivo è capire come si creano le tabelle. Dato che si tratta di sqlite ho studiato sqlite!!!! tra cui anche su SQLite Query Language: CREATE TABLE senza nessun risultato significativo, dato che io per capire devo guardare il codice!!!!!!!
    il mio obbiettivo adesso è fare semplicemente un database con una colonna string che non accetta valori nulli e duplicati, quindi dovrebbe essere semplicemente una primary key. Ho fatto varie prove anche con UNIQUE. come si può vedere dai vari commenti che comunque ho lasciato nel codice.
    Comunque son arrivato a


    io clicco su "accedi" e inserisco il nome utente nel database (lo sò è un login stupido, ma lo vorrei fare)
    se io inserisco lo stesso nome per più volte non mi dà eccezione. anzi mi ristampa tutto il contenuto del database più il nuovo nome inserito.

    Grazie a chi saprà illuminarmi!!! ps: sul sito android developer sezione database non c'è gran che!

  9. #7
    Androidiano


    Registrato dal
    Oct 2010
    Messaggi
    107

    Ringraziamenti
    22
    Ringraziato 1 volta in 1 Post
    Predefinito

    almeno mi potreste fare delgi esempi sulla sintassi da utilizzare? non c'ho trovato gran che in giro.
    Ad esempio:
    si deve far sempre così: nome_campo + " regola,"
    cioè qualche esempio (tratto da quelli precedenti):

  10. #8
    Senior Droid L'avatar di Cymon


    Registrato dal
    Jul 2010
    Messaggi
    419

    Ringraziamenti
    7
    Ringraziato 43 volte in 42 Posts
    Predefinito

    Ma hai provato a fare una insert direttamente via sqlite?
    La mia katana: Slackware 13.1
    La mia wakizashi: Acer A1 Liquid con Android 2.1 Eclair
    Il mio sito: Follow the rabbit (con la sua App )

  11. #9
    Androidiano


    Registrato dal
    Oct 2010
    Messaggi
    107

    Ringraziamenti
    22
    Ringraziato 1 volta in 1 Post
    Predefinito

    cioè così:

    allora inizialmente a me interessa solo il primo put. name è una striga che prendo da edittext. questo put da solo funziona. Quando ho messo anche il secondo put, il primo non me lo fà più. mi fà solo il secondo.
    Poi ho notato che con android 1.5 funziona... cioè più ce altro non ho errori.
    Con android 2.2 non parte proprio, ma non ho errori nel logcat!!!!!!!

    la create table è:

  12. #10
    Androidiano


    Registrato dal
    Oct 2010
    Messaggi
    107

    Ringraziamenti
    22
    Ringraziato 1 volta in 1 Post
    Predefinito

    ok, ho rifatto la tabella, c'erano problemi vari di variabili.
    ok, adesso và! Tornando al problema principale, ovvero quello di ottenere un login con solo nome utente.
    Ho deciso di gestire l'eccezzione generato dall'inserimento di un nome già esistente in tabella. sinceramente mi aspettavo un force close, invece l'eccezione appare nel logcat senza forzare la chiusura del programma.
    l'eccezione è di tipo SQLiteConstraintException. ora lo devo gestire per far apparire il messaggio di login errato. e ho fatto così:

    ma l'errore non viene stampato a video.... la causa potrebbe essere che ciò è in un blocco catch?
    Grazie in anticipo a chi saprà aiutarmi!

Pagina 1 di 2 12 ultimoultimo
Ultima pagina

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy