Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

219
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!