Hi all,

i have found the error of my ways
http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/comment-page-2/

I misinterpreted the instructions on this page and put the database i
created into the assets folder in my workspace folder for the project
instead of inserting it into the assets folder  in the Eclipse IDE.

Thanks very much for all your help and time.

Rodney

On Tue, Jul 20, 2010 at 3:03 PM, Rodney Lendore <rodney.lend...@gmail.com>wrote:

> Hi Justin,
>
> Again sorry for the confusion I only used TABLE in the subject head the
> real error is:
> no such table: local_network: , while compiling: SELECT _id, network, url
> FROM local_network
> Thanks
>
> Rodney
> On Mon, Jul 19, 2010 at 10:44 PM, Justin Anderson <janderson....@gmail.com
> > wrote:
>
>> And before you were using TABLE?  If that is the case, you defined
>> DB_TABLE but not TABLE.
>>
>> ----------------------------------------------------------------------
>> There are only 10 types of people in the world...
>> Those who know binary and those who don't.
>> ----------------------------------------------------------------------
>>
>>
>> On Mon, Jul 19, 2010 at 3:35 PM, Rodney Lendore <rodney.lend...@gmail.com
>> > wrote:
>>
>>> Hi Justin,
>>>
>>> Thanks for the quick reply yes it is in the fetchall() definition. I
>>> hardcoded it find the table I wanted to query "local_network".
>>>
>>> Sorry for any confusion.
>>>
>>>
>>>
>>>
>>> On Mon, Jul 19, 2010 at 9:29 PM, Justin Anderson <
>>> janderson....@gmail.com> wrote:
>>>
>>>> Where is the code for the select statement?  Is it the fetchAll()
>>>> method?
>>>>
>>>> ----------------------------------------------------------------------
>>>> There are only 10 types of people in the world...
>>>> Those who know binary and those who don't.
>>>> ----------------------------------------------------------------------
>>>>
>>>>
>>>> On Mon, Jul 19, 2010 at 1:37 PM, Rodney Lendore <
>>>> rodney.lend...@gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I have followed the instructions from this site to the letter
>>>>>
>>>>> http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/comment-page-2/
>>>>> but to no avail. Each time I run the code suggested, the Eclipse
>>>>> debugger keep throwing the following error
>>>>> no such table: TABLE: , while compiling: SELECT _id, network, url FROM
>>>>> TABLE.
>>>>>
>>>>> I created the database using SQLite Browser and ran the emulator's
>>>>> shell and can see that the database was there.
>>>>>
>>>>> Here is the code that I am implementing to manage the database:
>>>>> package com.rodney.IET_Events_Widget;
>>>>>
>>>>> import java.io.FileOutputStream;
>>>>> import java.io.IOException;
>>>>> import java.io.InputStream;
>>>>> import java.io.OutputStream;
>>>>>
>>>>> import android.content.Context;
>>>>> import android.database.Cursor;
>>>>> import android.database.SQLException;
>>>>> import android.database.sqlite.SQLiteDatabase;
>>>>> import android.database.sqlite.SQLiteException;
>>>>> import android.database.sqlite.SQLiteOpenHelper;
>>>>>
>>>>> public class DataBaseHelper extends SQLiteOpenHelper {
>>>>>
>>>>>      //The Android's default system path of your application database.
>>>>>     private static String DB_PATH             =
>>>>> "/data/data/com.rodney.IET_Events_Widget/databases/";
>>>>>     private static final String DB_NAME     = "local_network_db";
>>>>>     private static final String DB_TABLE     = "local_network";
>>>>>     public static final String KEY_NETWORK     = "network";
>>>>>     public static final String KEY_URL         = "url";
>>>>>     public static final String KEY_ROWID     = "_id";
>>>>>     private SQLiteDatabase myDataBase;
>>>>>     private final Context myContext;
>>>>>
>>>>>     /**
>>>>>      * Constructor
>>>>>      * Takes and keeps a reference of the passed context in order to
>>>>> access to the application assets and resources.
>>>>>      * @param context
>>>>>      */
>>>>>     public DataBaseHelper(Context context) {
>>>>>
>>>>>         super(context, DB_NAME, null, 1);
>>>>>         this.myContext = context;
>>>>>     }
>>>>>
>>>>>   /**
>>>>>      * Creates a empty database on the system and rewrites it with your
>>>>> own database.
>>>>>      * */
>>>>>     public void createDataBase() throws SQLException{
>>>>>
>>>>>         boolean dbExist = checkDataBase();
>>>>>
>>>>>         if(dbExist){
>>>>>             //do nothing - database already exist
>>>>>         }else{
>>>>>
>>>>>             //By calling this method and empty database will be created
>>>>> into the default system path
>>>>>             //of your application so we are gonna be able to overwrite
>>>>> that database with our database.
>>>>>             this.getReadableDatabase();
>>>>>
>>>>>             try {
>>>>>
>>>>>                 copyDataBase();
>>>>>
>>>>>             } catch (IOException e) {
>>>>>
>>>>>                 throw new Error("Error copying database");
>>>>>
>>>>>             }
>>>>>         }
>>>>>
>>>>>     }
>>>>>
>>>>>     /**
>>>>>      * Check if the database already exist to avoid re-copying the file
>>>>> each time you open the application.
>>>>>      * @return true if it exists, false if it doesn't
>>>>>      */
>>>>>     private boolean checkDataBase(){
>>>>>
>>>>>         SQLiteDatabase checkDB = null;
>>>>>
>>>>>         try{
>>>>>             String myPath = DB_PATH + DB_NAME;
>>>>>             checkDB = SQLiteDatabase.openDatabase(myPath, null,
>>>>> SQLiteDatabase.OPEN_READONLY);
>>>>>
>>>>>         }catch(SQLiteException e){
>>>>>
>>>>>             //database does't exist yet.
>>>>>
>>>>>         }
>>>>>
>>>>>         if(checkDB != null){
>>>>>
>>>>>             checkDB.close();
>>>>>
>>>>>         }
>>>>>
>>>>>         return checkDB != null ? true : false;
>>>>>     }
>>>>>
>>>>>     /**
>>>>>      * Copies your database from your local assets-folder to the just
>>>>> created empty database in the
>>>>>      * system folder, from where it can be accessed and handled.
>>>>>      * This is done by transferring bytestream.
>>>>>      * */
>>>>>     private void copyDataBase() throws IOException{
>>>>>
>>>>>         //Open your local db as the input stream
>>>>>         InputStream myInput = myContext.getAssets().open(DB_NAME);
>>>>>
>>>>>         // Path to the just created empty db
>>>>>         String outFileName = DB_PATH + DB_NAME;
>>>>>
>>>>>         //Open the empty db as the output stream
>>>>>         OutputStream myOutput = new FileOutputStream(outFileName);
>>>>>
>>>>>         //transfer bytes from the inputfile to the outputfile
>>>>>         byte[] buffer = new byte[1024];
>>>>>         int length;
>>>>>         while ((length = myInput.read(buffer))>0){
>>>>>             myOutput.write(buffer, 0, length);
>>>>>         }
>>>>>
>>>>>         //Close the streams
>>>>>         myOutput.flush();
>>>>>         myOutput.close();
>>>>>         myInput.close();
>>>>>
>>>>>     }
>>>>>
>>>>>     public void openDataBase() throws SQLException{
>>>>>
>>>>>         //Open the database
>>>>>         String myPath = DB_PATH + DB_NAME;
>>>>>         myDataBase = SQLiteDatabase.openDatabase(myPath, null,
>>>>> SQLiteDatabase.OPEN_READONLY);
>>>>>
>>>>>     }
>>>>>
>>>>>     @Override
>>>>>     public synchronized void close() {
>>>>>
>>>>>             if(myDataBase != null)
>>>>>                 myDataBase.close();
>>>>>
>>>>>             super.close();
>>>>>
>>>>>     }
>>>>>
>>>>>     @Override
>>>>>     public void onCreate(SQLiteDatabase db) {
>>>>>
>>>>>     }
>>>>>
>>>>>     @Override
>>>>>     public void onUpgrade(SQLiteDatabase db, int oldVersion, int
>>>>> newVersion) {
>>>>>
>>>>>     }
>>>>>
>>>>>       /**
>>>>>      * Return a Cursor over the list of all notes in the database
>>>>>      *
>>>>>      * @return Cursor over all notes
>>>>>      */
>>>>>
>>>>>     public Cursor fetchAll() {
>>>>>         return myDataBase.query("local_network", new String[]
>>>>> {KEY_ROWID, KEY_NETWORK,KEY_URL}, null, null, null, null, null);
>>>>>     }
>>>>>
>>>>>
>>>>> }
>>>>>
>>>>> And here is the code for the implementation in my ListView Activity:
>>>>>
>>>>> public void onCreate(Bundle savedInstanceState) {
>>>>>         super.onCreate(savedInstanceState);
>>>>>         setContentView(R.layout.cfg_activity);
>>>>>         mDbHelper = new DataBaseHelper(this);
>>>>>         mDbHelper.openDataBase();
>>>>>         fillData();
>>>>>         saveButton();
>>>>>         cancelButton();
>>>>>         Intent intent = getIntent();
>>>>>         Bundle extras = intent.getExtras();
>>>>>         if (extras != null) {
>>>>>             mAppWidgetId = extras.getInt(
>>>>>                     AppWidgetManager.EXTRA_APPWIDGET_ID,
>>>>>             AppWidgetManager.INVALID_APPWIDGET_ID);
>>>>>         }
>>>>>     }
>>>>>
>>>>> .........
>>>>> ...........
>>>>> .................
>>>>>
>>>>> private void fillData() {
>>>>>             // Get all of the rows from the database and create the
>>>>> item list
>>>>>             mNetworkCursor = mDbHelper.fetchAll();
>>>>>             startManagingCursor(mNetworkCursor);
>>>>>
>>>>>             // Create an array to specify the fields we want to display
>>>>> in the list (only TITLE)
>>>>>             String[] from = new String[]{DataBaseHelper.KEY_NETWORK};
>>>>>
>>>>>             // and an array of the fields we want to bind those fields
>>>>> to (in this case just text1)
>>>>>             int[] to = new int[]{R.id.text1};
>>>>>
>>>>>             // Now create a simple cursor adapter and set it to display
>>>>>             SimpleCursorAdapter iet_networks =  new
>>>>> SimpleCursorAdapter(this, R.layout.ln_rows, mNetworkCursor, from, to);
>>>>>             setListAdapter(networks);
>>>>>         }
>>>>>
>>>>> Any clues or help will be greatly appreciated, let me know if more
>>>>> detail is required.
>>>>>
>>>>>
>>>>> Many thanks in advance
>>>>>
>>>>> Rodney
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Android Beginners" group.
>>>>>
>>>>> NEW! Try asking and tagging your question on Stack Overflow at
>>>>> http://stackoverflow.com/questions/tagged/android
>>>>>
>>>>> To unsubscribe from this group, send email to
>>>>> android-beginners+unsubscr...@googlegroups.com<android-beginners%2bunsubscr...@googlegroups.com>
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/android-beginners?hl=en
>>>>>
>>>>
>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Android Beginners" group.
>>>>
>>>> NEW! Try asking and tagging your question on Stack Overflow at
>>>> http://stackoverflow.com/questions/tagged/android
>>>>
>>>> To unsubscribe from this group, send email to
>>>> android-beginners+unsubscr...@googlegroups.com<android-beginners%2bunsubscr...@googlegroups.com>
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/android-beginners?hl=en
>>>>
>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "Android Beginners" group.
>>>
>>> NEW! Try asking and tagging your question on Stack Overflow at
>>> http://stackoverflow.com/questions/tagged/android
>>>
>>> To unsubscribe from this group, send email to
>>> android-beginners+unsubscr...@googlegroups.com<android-beginners%2bunsubscr...@googlegroups.com>
>>> For more options, visit this group at
>>> http://groups.google.com/group/android-beginners?hl=en
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google
>> Groups "Android Beginners" group.
>>
>> NEW! Try asking and tagging your question on Stack Overflow at
>> http://stackoverflow.com/questions/tagged/android
>>
>> To unsubscribe from this group, send email to
>> android-beginners+unsubscr...@googlegroups.com<android-beginners%2bunsubscr...@googlegroups.com>
>> For more options, visit this group at
>> http://groups.google.com/group/android-beginners?hl=en
>>
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.

NEW! Try asking and tagging your question on Stack Overflow at
http://stackoverflow.com/questions/tagged/android

To unsubscribe from this group, send email to
android-beginners+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en

Reply via email to