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
sqlite_20example_20program_20_28phonenos_29.txt · Last modified: 2024/01/05 00:21 by 127.0.0.1