Guia do desenvolvedor

Local Navigation

Atualizar dados

Você atualiza dados em uma tabela executando uma instrução UPDATE.

O exemplo de código a seguir cria uma instrução preparada que atualiza dados. A instrução é executada usando o método execute.

import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.database.*;
import net.rim.device.api.io.*;
public class UpdateData extends UiApplication
{
    public static void main(String[] args)
    {
        UpdateData theApp = new UpdateData();
        theApp.enterEventDispatcher();
    }
    public UpdateData()
    {
        pushScreen(new UpdateDataScreen());
    }   
}
class UpdateDataScreen extends MainScreen
{
    Database d;
    public UpdateDataScreen()
    {
       LabelField title = new LabelField("SQLite Update Data Sample",
                                          LabelField.ELLIPSIS | 
                                          LabelField.USE_ALL_WIDTH);
       setTitle(title);
       add(new RichTextField("Trying to update data in MyTestDatabase.db."));
       try
       {
        URI myURI = URI.create("file:///SDCard/Databases/SQLite_Guide/" +
                               "MyTestDatabase.db"); 
        d = DatabaseFactory.open(myURI);
        Statement st = d.createStatement("UPDATE People SET Age=38 " +
                                         "WHERE Name='John'");
        st.prepare();
        st.execute();
        st.close();
        d.close();
        }
        catch ( Exception e ) 
        {         
            System.out.println( e.getMessage() );
            e.printStackTrace();
        }
    }
}

O trecho de código a seguir usa um método de operação em massa que reduz o número de chamadas sobre a ponte de tempo de execução. O método Statement.executeUpdate é usado para unir os parâmetros, executar a instrução e redefinir as uniões.

Statement st = d.createStatement("UPDATE Account set Balance = ? WHERE AcctNo > ?");
try
{
     st.prepare();
     Object[] bindParams = {new Integer (2000), new Integer (100)};
     st.executeUpdate(bindParams);
}
finally 
{
     st.close();
}

Exemplo de código: Exclusão de dados de tabela

A amostra de código a seguir ilustra a instrução DELETE.

import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.database.*;
import net.rim.device.api.io.*;
public class DeleteData extends UiApplication
{
    public static void main(String[] args)
    {
        DeleteData theApp = new DeleteData();
        theApp.enterEventDispatcher();
    }
    public DeleteData()
    {
        pushScreen(new DeleteDataScreen());
    }   
}
class DeleteDataScreen extends MainScreen
{
    Database d;
    public DeleteDataScreen()
    {
        LabelField title = new LabelField("SQLite Delete Database Data",
                                           LabelField.ELLIPSIS |
                                           LabelField.USE_ALL_WIDTH);
        setTitle(title);
        add(new RichTextField("Attempting to delete data from " + 
                              "MyTestDatabase.db on the SDCard."));
        try
        {
            URI myURI = URI.create("file:///SDCard/Databases/SQLite_Guide/" +
                                   "MyTestDatabase.db"); 
            d = DatabaseFactory.open(myURI);
            Statement st = d.createStatement("DELETE FROM People");
            st.prepare();
            st.execute();
            st.close();
            d.close();
        }
        catch ( Exception e ) 
        {         
            System.out.println( e.getMessage() );
            e.printStackTrace();
        }
    }
}

Exemplo de código: Listagem de tabelas de banco de dados

import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.database.*;
import net.rim.device.api.io.*;
public class ListTables extends UiApplication
{
    public static void main(String[] args)
    {
        ListTables theApp = new ListTables();
        theApp.enterEventDispatcher();
    }
    public ListTables()
    {
        pushScreen(new ListTablesScreen());
    }   
}
class ListTablesScreen extends MainScreen
{
    Database d;
    public ListTablesScreen()
    {
        LabelField title = new LabelField("SQLite List Database Tables", 
                                           LabelField.ELLIPSIS | 
                                           LabelField.USE_ALL_WIDTH);
        setTitle(title);
        add(new RichTextField("Attempting to list tables in " +
                              "MyTestDatabase.db on the SDCard."));
        try
        {
            URI myURI = URI.create("file:///SDCard/Databases/SQLite_Guide/" +
                                   "MyTestDatabase.db"); 
            d = DatabaseFactory.open(myURI);
            Statement st = d.createStatement("SELECT name FROM " +
                                             " sqlite_master " +
                                             "WHERE type='table'" +
                                             "ORDER BY name");
            st.prepare();
            Cursor c = st.getCursor();
            Row r;
            int i = 0;
            while(c.next()) 
            {
                r = c.getRow();
                i++;
                add(new RichTextField(i + ". Table: " + r.getString(0)));
            }
            if (i==0)
            {
                add(new RichTextField("There are no tables " +
                                      " in the MyTestDatabase database."));
            }
            st.close();
            d.close();
        }
        catch ( Exception e ) 
        {         
            System.out.println( e.getMessage() );
            e.printStackTrace();
        }
    }
}

Excluir um banco de dados SQLite

Quando seu aplicativo é removido de um smartphone BlackBerry, os bancos de dados permanentes associados ao seu aplicativo não são excluídos automaticamente. Você deve exclui-los usando o método DatabaseFactory.delete().

Exemplo de código: Excluindo um banco de dados SQLite

import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.database.*;
import net.rim.device.api.io.*;
public class DeleteDatabase extends UiApplication
{
    public static void main(String[] args)
    {
        DeleteDatabase theApp = new DeleteDatabase();
        theApp.enterEventDispatcher();
    }
    public DeleteDatabase()
    {
        pushScreen(new DeleteDatabaseScreen());
    }   
}
class DeleteDatabaseScreen extends MainScreen
{
    Database d;
    public DeleteDatabaseScreen()
    {
        LabelField title = new LabelField("SQLite Delete Database Sample",
                                           LabelField.ELLIPSIS | 
                                           LabelField.USE_ALL_WIDTH);
        setTitle(title);
        add(new RichTextField("Deleting a database called " +
                              "MyTestDatabase.db on the SDCard."));
        try
        {
            URI myURI = URI.create("file:///SDCard/Databases/SQLite_Guide/" +
                                   "MyTestDatabase.db"); 
            DatabaseFactory.delete(myURI);       
        }
        catch ( Exception e ) 
        {         
            System.out.println( e.getMessage() );
            e.printStackTrace();
        }
    }
}

Estas informações foram úteis? Gostaríamos de receber seus comentários.