Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

218
Visualizações
La base de datos Expo SQLite no se está inicializando en reaccionar nativo

Estoy tratando de crear una base de datos para mi aplicación nativa de reacción usando SQLite de expo y seguí su documentación, pero creo que la base de datos no se está inicializando.

Documentación: expo-sqlite

Aplicación.js:

 console.log("init () above"); init() .then(() => { console.log("DATABASE INITIALIZED"); }) .catch(() => { console.log("FAILED DATABSE INITIALIZATION", err); }); console.log("init () below"); //Nothing logs in console

Consola:

 init () above init () below places: Array []

Creé la promise como init() que devuelve un error si falla y cuando se resuelve registra un mensaje de éxito DATABASE INITIALIZED . Pero no obtengo ningún resultado.

ayudante/bd:

 import * as SQLite from "expo-sqlite"; const db = SQLite.openDatabase("places.db"); export const init = () => { const promiseDB = new Promise((resolve, reject) => { db.transaction((tx) => { tx.executeSql( "CREATE TABLE PLACES IF NOT EXISTS places (id INTEGER PRIMARY KEY NOT NULL, title TEXT NOT NULL, imageUri TEXT NOT NULL, address TEXT NOT NULL, lat REAL NOT NULL, lng REAL NOT NULL)" ); [], () => { resolve(); }, (_, err) => { reject(err); }; }); }); return promiseDB; };

No recibo ningún error y tampoco el mensaje de éxito en la consola. No sé cuál es el problema y qué estoy haciendo mal.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

No escribió su función correctamente, olvidó un corchete y agregó y vació una matriz de argumentos donde no debería haberlo hecho.

También en su consulta escribió CREATE TABLE PLACES IF NOT EXISTS places . Cree que la sintaxis adecuada sería CREATE TABLE IF NOT EXISTS places .

El orden de los argumentos en la transacción es callback, errorCallback, successCallback. https://docs.expo.dev/versions/latest/sdk/sqlite/#database

El orden de los argumentos en executeSql es sqlStatement, arguments, callback, errorCallback. https://docs.expo.dev/versions/latest/sdk/sqlite/#sqltransaction

Esto debería crear su tabla:

 return new Promise((resolve, reject) => { db.transaction( function (tx) { tx.executeSql("CREATE TABLE IF NOT EXISTS places (id INTEGER PRIMARY KEY NOT NULL, title TEXT NOT NULL, imageUri TEXT NOT NULL, address TEXT NOT NULL, lat REAL NOT NULL, lng REAL NOT NULL)"); }, function (error) { reject(error.message); }, function () { resolve(true); console.log('Created database OK'); } ); });

Un ejemplo para cuando necesita agregar argumentos:

 return new Promise((resolve, reject) => { db.transaction( function (tx) { tx.executeSql( 'SELECT * FROM TABLE_NAME WHERE name=?;', [name], function (tx, resultSet) { let data = []; for (let i = 0, c = resultSet.rows.length;i < c;i++) { data.push(resultSet.rows.item(i)); } resolve(data); }, function (tx, error) { reject(error.message); } ); }, function (error) { reject(error.message); } ); });
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda