Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

217
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda