SDl 0.9: Help Needed for Database execution

Problems with WiFi, SQLite ,Bluetooth, WiMax, Proxies, etc...

SDl 0.9: Help Needed for Database execution

Postby sm » Fri Sep 12, 2008 2:12 am

Hi,

I tried using the source code posted but encounter the following error:

The method createDatabase(String, int, int, null) is undefined for the type Database


This error occurs at the following lines:

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. this.createDatabase(MY_DATABASE_NAME, 1, MODE_PRIVATE, null);
  2.  
  3.                         /* Open the DB and remember it */
  4.  
  5.                         myDB = this.openDatabase(MY_DATABASE_NAME, null);
Parsed in 0.031 seconds, using GeSHi 1.0.8.4


The method createDatabase(String, int, int, null) is undefined for the type Database



The entire source code is:



Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. package com.android.Database;
  2.  
  3.  
  4.  
  5. import java.io.FileNotFoundException;
  6.  
  7. import java.util.ArrayList;
  8.  
  9.  
  10.  
  11. import android.app.ListActivity;
  12.  
  13. import android.database.Cursor;
  14.  
  15. import android.database.sqlite.SQLiteDatabase;
  16.  
  17. import android.os.Bundle;
  18.  
  19. import android.widget.ArrayAdapter;
  20.  
  21. import android.widget.EditText;
  22.  
  23.  
  24.  
  25. public class Database extends ListActivity {
  26.  
  27.  
  28.  
  29.         private final String MY_DATABASE_NAME = "myCoolDB_2";
  30.  
  31.         private final String MY_DATABASE_TABLE = "Users";
  32.  
  33.  
  34.  
  35.         /** Called when the activity is first created. */
  36.  
  37.         @Override
  38.  
  39.         public void onCreate(Bundle icicle) {
  40.  
  41.                 super.onCreate(icicle);
  42.  
  43.                
  44.  
  45.                 EditText et = new EditText(this);
  46.  
  47.                 et.setSelection(et.getText().length());
  48.  
  49.                 /* Will hold the 'Output' we want to display at the end. */
  50.  
  51.                 ArrayList<String> results = new ArrayList<String>();
  52.  
  53.  
  54.  
  55.                 SQLiteDatabase myDB = null;
  56.  
  57.                 try {
  58.  
  59.                         /* Create the Database (no Errors if it already exists) */
  60.  
  61.                         this.createDatabase(MY_DATABASE_NAME, 1, MODE_PRIVATE, null);
  62.  
  63.                         /* Open the DB and remember it */
  64.  
  65.                         myDB = this.openDatabase(MY_DATABASE_NAME, null);
  66.  
  67.  
  68.  
  69.                         /* Create a Table in the Database. */
  70.  
  71.                         myDB.execSQL("CREATE TABLE IF NOT EXISTS "
  72.  
  73.                                                         + MY_DATABASE_TABLE
  74.  
  75.                                                         + " (LastName VARCHAR, FirstName VARCHAR,"
  76.  
  77.                                                         + " Country VARCHAR, Age INT(3));");
  78.  
  79.  
  80.  
  81.                         /* Add two DataSets to the Table. */
  82.  
  83.                         myDB.execSQL("INSERT INTO "
  84.  
  85.                                                         + MY_DATABASE_TABLE
  86.  
  87.                                                         + " (LastName, FirstName, Country, Age)"
  88.  
  89.                                                         + " VALUES ('Gramlich', 'Nicolas', 'Germany', 20);");
  90.  
  91.                         myDB.execSQL("INSERT INTO "
  92.  
  93.                                                         + MY_DATABASE_TABLE
  94.  
  95.                                                         + " (LastName, FirstName, Country, Age)"
  96.  
  97.                                                         + " VALUES ('Doe', 'John', 'US', 34);");
  98.  
  99.  
  100.  
  101.                         /* Query for some results with Selection and Projection. */
  102.  
  103.                         Cursor c = myDB.query("SELECT FirstName,Age" +
  104.  
  105.                                                                 " FROM " + MY_DATABASE_TABLE
  106.  
  107.                                                                 + " WHERE Age > 10 LIMIT 7;",
  108.  
  109.                                                                 null);
  110.  
  111.                        
  112.  
  113.                         /* Get the indices of the Columns we will need */
  114.  
  115.                         int firstNameColumn = c.getColumnIndex("FirstName");
  116.  
  117.                         int ageColumn = c.getColumnIndex("Age");
  118.  
  119.                        
  120.  
  121.                         /* Check if our result was valid. */
  122.  
  123.                         if (c != null) {
  124.  
  125.                                 /* Check if at least one Result was returned. */
  126.  
  127.                                 if (c.first()) {
  128.  
  129.                                         int i = 0;
  130.  
  131.                                         /* Loop through all Results */
  132.  
  133.                                         do {
  134.  
  135.                                                 i++;
  136.  
  137.                                                 /* Retrieve the values of the Entry
  138.  
  139.                                                  * the Cursor is pointing to. */
  140.  
  141.                                                 String firstName = c.getString(firstNameColumn);
  142.  
  143.                                                 int age = c.getInt(ageColumn);
  144.  
  145.                                                 /* We can also receive the Name
  146.  
  147.                                                  * of a Column by its Index.
  148.  
  149.                                                  * Makes no sense, as we already
  150.  
  151.                                                  * know the Name, but just to shwo we can <img src="http://www.anddev.org/images/smilies/wink.png" alt=";)" title="Wink" /> */
  152.  
  153.                                                 String ageColumName = c.getColumnName(ageColumn);
  154.  
  155.                                                
  156.  
  157.                                                 /* Add current Entry to results. */
  158.  
  159.                                                 results.add("" + i + ": " + firstName
  160.  
  161.                                                                         + " (" + ageColumName + ": " + age + ")");
  162.  
  163.                                         } while (c.next());
  164.  
  165.                                 }
  166.  
  167.                         }
  168.  
  169.  
  170.  
  171.                 } catch (FileNotFoundException e) {
  172.  
  173.                 } finally {
  174.  
  175.                         if (myDB != null)
  176.  
  177.                                 myDB.close();
  178.  
  179.                 }
  180.  
  181.  
  182.  
  183.                 this.setListAdapter(new ArrayAdapter<String>(this,
  184.  
  185.                                 android.R.layout.simple_list_item_1_small, results));
  186.  
  187.         }
  188.  
  189. }
Parsed in 0.043 seconds, using GeSHi 1.0.8.4


Please help!

Thanks
sm
Junior Developer
Junior Developer
 
Posts: 10
Joined: Fri Sep 05, 2008 2:54 am

Top

Postby plusminus » Fri Sep 12, 2008 1:57 pm

Hello sm,

since SDk 0.9 one has to use:
android.database.sqlite
public abstract class

android.database.sqlite.SQLiteOpenHelper
A helper class to manage database creation and version management. You create a subclass implementing onCreate(SQLiteDatabase), onUpgrade(SQLiteDatabase, int, int) and optionally onOpen(SQLiteDatabase), and this class takes care of opening the database if it exists, creating it if it does not, and upgrading it as necessary. Transactions are used to make sure the database is always in a sensible state.


Regards,
plusminus
Image
Image | Android Development Community / Tutorials
User avatar
plusminus
Site Admin
Site Admin
 
Posts: 2688
Joined: Wed Nov 14, 2007 8:37 pm
Location: Schriesheim, Germany

Top

Return to Networking & Database Problems

Who is online

Users browsing this forum: Yahoo [Bot] and 6 guests