Forum Archive

Ui textfield and SQLite DB

sara55

Hi,
I would like to get input from ui.textfields and. Insert the data into SQLite DB.
I have used a button action to read the fields and insert to the DB.Is there a better way of doing it without the button?

import ui
import sqlite3

def button_action(sender):
    #con = sqlite3.connect(":memory:")
    conn = sqlite3.connect('jubk.db')
    #con.isolation_level = None
    c = conn.cursor()
#   c.execute('''CREATE TABLE emploee_db3 
#       (id_num text, first text, last text)''')
    first = first_name_f.text
    last = last_name_f.text
    id_num = id_num_f.text
    print('first name ', first, 'last name ', last, 'id ', id_num)

    c.execute("INSERT INTO emploee_db3 VALUES (:id_num, :first, :last)", {'id_num': id_num, 'first': first, 'last': last})
    for row in c.execute('SELECT * FROM emploee_db3'):
                print(row)
    conn.commit()   

v = ui.load_view()
v.present('sheet')

first_name_f = v['first_f']
last_name_f = v['last_f']
id_num_f = v['idnum']
brumm

"TextField.action: A function or method that gets called when text field has finished editing."
So you could check if all textfields have a valid value, insert them to your db and clear the textfield.text

def textfield_action(self, textfield):
    # This is called after pressing RETURN
    if ...
        c.execute...
        self.tf_first.text = ''
        ...

Btw. this is an example of a own view class.

sara55

Thanks, I will try

sara55

It works, thank you very much