====== Database ====== ===== Description ===== Create or open a database using the OpenDatabase method of the [[built_in:app|app]] object: //the database is called "MyData" db = app.OpenDatabase( "MyData" ); To save your database in a specific folder, use an absolute path. See [[built_in:get_database_folder|GetDatabaseFolder]] ===== Methods ===== ^Method ^Description ^ |Database.Close() | | |Database.Delete() | | |Database.ExecuteSql( sql, params, success, error ) | | |Database.GetName() | | |Database.GetType() | | |Database.openError(e) | | |Database.openSuccess() | | ===== Example ===== //(sample taken from the DroidScript sample section)// //Called when application is started.   function OnStart()   {       //Create a layout with objects vertically centered.       lay = app.CreateLayout( "linear", "VCenter,FillXY" );              //Create an 'Add' button.       btnAdd = app.CreateButton( "Add to Database", 0.6, 0.1 );       btnAdd.SetOnTouch( btnAdd_OnTouch );       lay.AddChild( btnAdd );              //Create a 'Remove' button.       btnRemove = app.CreateButton( "Remove from Database", 0.6, 0.1 );       btnRemove.SetOnTouch( btnRemove_OnTouch );       lay.AddChild( btnRemove );              //Create a 'Delete' button.       btnDelete = app.CreateButton( "Delete Database", 0.6, 0.1 );       btnDelete.SetOnTouch( btnDelete_OnTouch );       lay.AddChild( btnDelete );              //Create text box to show results.       txt = app.CreateText( "", 0.9, 0.4, "multiline" );       txt.SetMargins( 0,0.1,0,0 );       txt.SetBackColor( "#ff222222" );       txt.SetTextSize( 18 );       lay.AddChild( txt );              //Add layout to app.           app.AddLayout( lay );              //Create or open a database called "MyData".       db = app.OpenDatabase( "MyData" );              //Create a table (if it does not exist already).       db.ExecuteSql( "CREATE TABLE IF NOT EXISTS test_table " +           "(id integer primary key, data text, data_num integer)" );       //Get all the table rows.           DisplayAllRows();  }   //Called when user touches our 'Add' button.   function btnAdd_OnTouch()   {       //Add some data (with error handler).       db.ExecuteSql( "INSERT INTO test_table (data, data_num)" +            " VALUES (?,?)", ["test", 100], null, OnError );       //Get all the table rows.           DisplayAllRows();   }   //Called when user touches our 'Remove' button.   function btnRemove_OnTouch()   {           //Remove data.       db.ExecuteSql( "DELETE FROM test_table WHERE id > 3" );       //Get all the table rows.           DisplayAllRows();   }   //Called when user touches our 'Delete' button.   function btnDelete_OnTouch()   {          //Delete this database.      db.Delete();      //Get all the table rows.      DisplayAllRows();  }   //function to display all records  function DisplayAllRows()  {      txt.SetText("");              //Get all the table rows.       db.ExecuteSql( "select * from test_table;", [], OnResult );  }  //Callback to show query results in debug.   function OnResult( results )    {       var s = "";       var len = results.rows.length;       for(var i = 0; i < len; i++ )        {           var item = results.rows.item(i)           s += item.id + ", " + item.data + ", " + item.data_num + "\n";        }       txt.SetText( s );   }   //Callback to show errors.   function OnError( msg )    {       app.Alert( "Error: " + msg );       console.log( "Error: " + msg );   }