User Tools

Site Tools


sqlite_20example_20program_20_28phonenos_29

SQLite Example Program (PhoneNos)

by Jon Ripley, October 2012

Please note: This program requires SQLite library for BB4W.

This example program shows how to create a simple contact database using SQLite and includes methods to create, update, delete, find and list records.

        INSTALL @lib$+"SQLite"
        PROCsqlite_initialise
 
        ON ERROR PROCsqlite_close:PROCsqlite_finalise:PRINT:REPORT:END
        ON CLOSE PROCsqlite_close:PROCsqlite_finalise:QUIT
 
        file$ = @dir$+"Phonenos.db"
        PROCsqlite_open(file$)
 
        PROCsqlite_exec( \
        \ "CREATE TABLE IF NOT EXISTS phonenos (" + \
        \     "name varchar(100), " + \
        \     "phone varchar(100), " + \
        \     "email varchar(100))")
 
        PRINT "PhoneNos SQLite Example"
        REPEAT
          PRINT '"  1. Create a record"
          PRINT "  2. Update a record"
          PRINT "  3. List all records"
          PRINT "  4. Search for a record"
          PRINT "  5. Delete a record"
          PRINT "  6. Exit"
          INPUT '"Enter 1-6 : "choice
          PRINT
          IF choice = 1 PROCcreate
          IF choice = 2 PROCupdate
          IF choice = 3 PROClist
          IF choice = 4 PROCsearch
          IF choice = 5 PROCdelete
        UNTIL choice = 6
        PROCsqlite_close
        PROCsqlite_finalise
        QUIT
 
        DEF PROCcreate
        LOCAL name$, phone$, email$
        PRINT "Enter details"
        INPUT LINE "    Name          : " name$
        INPUT LINE "    Phone number  : " phone$
        INPUT LINE "    Email address : " email$
        name$ = FNsqlite_encodestring(name$)
        phone$ = FNsqlite_encodestring(phone$)
        email$ = FNsqlite_encodestring(email$)
        PROCsqlite_exec( \
        \ "INSERT INTO phonenos (name, phone, email) " + \
        \ "VALUES ("+name$+","+phone$+","+email$+")")
        ENDPROC
 
        DEF PROCdelete
        LOCAL id$
        INPUT "Enter the RowID of the record to delete : "id$
        id$ = FNsqlite_encodestring(id$)
        PROCsqlite_exec( \
        \ "DELETE FROM Phonenos " + \
        \ "WHERE rowid="+id$+"")
        ENDPROC
 
        DEF PROClist
        LOCAL row, numResults
        PROCsqlite_get_array(\
        \ "SELECT rowid, name, phone, email " + \
        \     "FROM Phonenos ORDER BY name", A%())
        numResults = DIM(A%(),1)
        IF numResults = 0 THEN
          PRINT "No people found"
        ELSE
          FOR row = 1 TO numResults
            PRINT "Person"
            PRINT "    RowID         : " $$A%(row, 0)
            PRINT "    Name          : " $$A%(row, 1)
            PRINT "    Phone number  : " $$A%(row, 2)
            PRINT "    Email address : " $$A%(row, 3)
            PRINT
          NEXT row
        ENDIF
        PROCsqlite_free_array(A%())
        ENDPROC
 
        DEF PROCsearch
        LOCAL name$, row, numResults
        INPUT"Enter the name to look for : "name$
        name$ = FNsqlite_encodestring("%"+name$+"%")
        PROCsqlite_get_array( \
        \ "SELECT rowid, name, phone, email FROM Phonenos " +\
        \ "WHERE name LIKE " + name$, A%())
        numResults = DIM(A%(),1)
        IF numResults = 0 THEN
          PRINT "Not found"
        ELSE
          PRINT "    RowID         : " $$A%(1, 0)
          PRINT "    Name          : " $$A%(1, 1)
          PRINT "    Phone number  : " $$A%(1, 2)
          PRINT "    Email address : " $$A%(1, 3)
        ENDIF
        PROCsqlite_free_array(A%())
        ENDPROC
 
        DEF PROCupdate
        LOCAL id$,  numResults, name$, phone$, email$, change$
        INPUT"Enter the RowID of the record to update "id$
        person$ = FNsqlite_encodestring(id$)
        PROCsqlite_get_array( \
        \ "SELECT rowid, name, phone, email FROM Phonenos "+ \
        \ "WHERE rowid=" + id$, A%())
        numResults = DIM(A%(),1)
        PRINT
        IF numResults = 0 THEN
          PRINT "Not found"
        ELSE
          PRINT "Person"
          PRINT "    RowID         : " $$A%(1, 0)
          PRINT "    Name          : " $$A%(1, 1)
          PRINT "    Phone number  : " $$A%(1, 2)
          PRINT "    Email address : " $$A%(1, 3)
          INPUT "Change? (Y/N)" change$
          IF INSTR("Yy", change$) THEN
            PRINT '"Enter new details"
            INPUT LINE "    Name          : " name$
            INPUT LINE "    Phone number  : " phone$
            INPUT LINE "    Email address : " email$
            name$ = FNsqlite_encodestring(name$)
            phone$ = FNsqlite_encodestring(phone$)
            email$ = FNsqlite_encodestring(email$)
            id$ = FNsqlite_encodestring($$A%(1, 0))
            PROCsqlite_exec( \
            \ "UPDATE Phonenos SET " + \
            \     "name=" + name$ + \
            \     ", phone=" + phone$ + \
            \     ", email="+ email$ + \
            \ " WHERE rowid="+id$+"")
          ENDIF
          PROCsqlite_free_array(A%())
        ENDIF
        ENDPROC
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
sqlite_20example_20program_20_28phonenos_29.txt · Last modified: 2024/01/05 00:21 by 127.0.0.1