Conexão com Banco de Dados - watter/titanium GitHub Wiki
execução de conexão com o BD
Provável erro: Não há conexão aberta com o Banco de dados
Erro na execução
[ERROR][TiExceptionHandler( 585)] (main) [172,45411] ----- Titanium Javascript Runtime Error -----
[ERROR][TiExceptionHandler( 585)] (main) [0,45411] - In ui/handheld/winDatabase.js:21,21
[ERROR][TiExceptionHandler( 585)] (main) [0,45411] - Message: Uncaught TypeError: Object function (){
[ERROR][TiExceptionHandler( 585)]
[ERROR][TiExceptionHandler( 585)] // Criamos um objeto que será nossa própria API do banco de dados
[ERROR][TiExceptionHandler( 585)] var api= {};
[ERROR][TiExceptionHandler( 585)]
[ERROR][TiExceptionHandler( 585)]
[ERROR][TiExceptionHandler( 585)] // Criamos uma conexão com o BD que, se não existir, será criado com o nome passado por parâmetro
[ERROR][TiExceptionHandler( 585)] var db = Ti.Database.open('pessoas');
[ERROR][TiExceptionHandler( 585)]
[ERROR][TiExceptionHandler( 585)] db.execute('CREATE TABLE IF NOT EXISTS usuarios(' +
[ERROR][TiExceptionHandler( 585)] 'id INTEGER PRIMARY KEY, ' +
[ERROR][TiExceptionHandler( 585)] 'nome TEXT, ' +
[ERROR][TiExceptionHandler( 585)] 'email TEXT)');
[ERROR][TiExceptionHandler( 585)]
[ERROR][TiExceptionHandler( 585)] // Fechamos a conexão após o uso para evitar pools de conexão
[ERROR][TiExceptionHandler( 585)] db.close();
[ERROR][TiExceptionHandler( 585)]
[ERROR][TiExceptionHandler( 585)] api.adicionarPessoa = function( /*objeto */ pessoa ){
[ERROR][TiExceptionHandler( 585)] // usamos a mesma função <execute> para fazer um INSERT comum
[ERROR][TiExceptionHandler( 585)] db.execute('INSERT INTO usuarios (nome, email) VALUES (?,?)', pessoa.nome, pessoa.email);
[ERROR][TiExceptionHandler( 585)]
[ERROR][TiExceptionHandler( 585)] // E retornamos o ID da linha inserida no banco para eventuais referências
[ERROR][TiExceptionHandler( 585)] // Esta é uma propriedade constante do objeto do banco de dados e é atualizada
[ERROR][TiExceptionHandler( 585)] // com o valor da última linha inserida a cada operação
[ERROR][TiExceptionHandler( 585)] return db.lastInsertRowId;
[ERROR][TiExceptionHandler( 585)] }
[ERROR][TiExceptionHandler( 585)]
[ERROR][TiExceptionHandler( 585)]
[ERROR][TiExceptionHandler( 585)] //
[ERROR][TiExceptionHandler( 585)] api.listarPessoas = function (){
[ERROR][TiExceptionHandler( 585)]
[ERROR][TiExceptionHandler( 585)] var pessoas = [];
[ERROR][TiExceptionHandler( 585)]
[ERROR][TiExceptionHandler( 585)] var resultado = db.execute('SELECT * FROM usuarios');
[ERROR][TiExceptionHandler( 585)]
[ERROR][TiExceptionHandler( 585)] while(resultado.isValidRow()){
[ERROR][TiExceptionHandler( 585)] pessoas.push({
[ERROR][TiExceptionHandler( 585)] id: resultado.fieldByName('id'),
[ERROR][TiExceptionHandler( 585)] nome: resultado.fieldByName('nome'),
[ERROR][TiExceptionHandler( 585)] email: resultado.fieldByName('email')
[ERROR][TiExceptionHandler( 585)] });
[ERROR][TiExceptionHandler( 585)]
[ERROR][TiExceptionHandler( 585)] resultado.next;
[ERROR][TiExceptionHandler( 585)] }
[ERROR][TiExceptionHandler( 585)]
[ERROR][TiExceptionHandler( 585)] resultado.close;
[ERROR][TiExceptionHandler( 585)]
[ERROR][TiExceptionHandler( 585)] return pessoas;
[ERROR][TiExceptionHandler( 585)] };
[ERROR][TiExceptionHandler( 585)]
[ERROR][TiExceptionHandler( 585)] return api;
[ERROR][TiExceptionHandler( 585)] } has no method 'adicionarPessoa'
[ERROR][TiExceptionHandler( 585)] (main) [1,45412] - Source: ultimoInsert = db.adicionarPessoa({
[ERROR][V8Exception( 585)] Exception occurred at ui/handheld/winDatabase.js:21: Uncaught TypeError: Object function (){
[ERROR][V8Exception( 585)]
[ERROR][V8Exception( 585)] // Criamos um objeto que será nossa própria API do banco de dados
[ERROR][V8Exception( 585)] var api= {};
[ERROR][V8Exception( 585)]
[ERROR][V8Exception( 585)]
[ERROR][V8Exception( 585)] // Criamos uma conexão com o BD que, se não existir, será criado com o nome passado por parâmetro
[ERROR][V8Exception( 585)] var db = Ti.Database.open('pessoas');
[ERROR][V8Exception( 585)]
[ERROR][V8Exception( 585)] db.execute('CREATE TABLE IF NOT EXISTS usuarios(' +
[ERROR][V8Exception( 585)] 'id INTEGER PRIMARY KEY, ' +
[ERROR][V8Exception( 585)] 'nome TEXT, ' +
[ERROR][V8Exception( 585)] 'email TEXT)');
[ERROR][V8Exception( 585)]
[ERROR][V8Exception( 585)] // Fechamos a conexão após o uso para evitar pools de conexão
[ERROR][V8Exception( 585)] db.close();
[ERROR][V8Exception( 585)]
[ERROR][V8Exception( 585)] api.adicionarPessoa = function( /*objeto */ pessoa ){
[ERROR][V8Exception( 585)] // usamos a mesma função <execute> para fazer um INSERT comum
[ERROR][V8Exception( 585)] db.execute('INSERT INTO usuarios (nome, email) VALUES (?,?)', pessoa.nome, pessoa.email);
[ERROR][V8Exception( 585)]
[ERROR][V8Exception( 585)] // E retornamos o ID da linha inserida no banco para eventuais referências
[ERROR][V8Exception( 585)] // Esta é uma propriedade constante do objeto do banco de dados e é atualizada
[ERROR][V8Exception( 585)] // com o valor da última linha inserida a cada operação
[ERROR][V8Exception( 585)] return db.lastInsertRowId;
[ERROR][V8Exception( 585)] }
[ERROR][V8Exception( 585)]
[ERROR][V8Exception( 585)]
[ERROR][V8Exception( 585)] //
[ERROR][V8Exception( 585)] api.list
[WARN][InputManagerService( 77)] Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@41375518
[WARN][ThrottleService( 77)] unable to find stats for iface rmnet0