SQLITE en XOJO CLOUD - No existe archivo en la ubicacin especificada.

Amigos del foro, disculparan el universo de preguntas y dudas.

En el despliegue de mi APP tengo este error al intentar conectarme a una DB Sqlite:

Unhandled DatabaseException
Message: Database file doesn’t exist in the specified location.

Hice un par de aplicaciones con XOJO WEB y he subido stas a XOJO CLOUD, las dos con una base de datos SQLITE, pero ninguna funciona.

Les adjunto el cdigo de mi evento Open dentro en el objeto Session, como observacin importante, les comento que he agregado la copia de archivo como paso adicional de la base de datos a XOJO CLOUD. He inclusive ya verifique que ste existe la Base de Dato en el sitio por SFTP. Seguramente estoy haciendo algo mal, pero no se que es. Tambin he creado una propiedad DBA del tipo SQLITEDATABASE.

IF dba=NIL THEN
dba=new SQLiteDatabase
end
Dim F as FolderItem

#if DebugBuild then
f=SpecialFolder.Desktop.Child(“Racsa_Db.DB”)
#else
f=app.ExecutableFile.Parent.Child(“Racsa_DB.DB”)
#endif

dba.DatabaseFile=f

if dba.Connect=true then
MessageBox(“DB Racsa Conectada !”)
else
MessageBox(“No se ha logrado la conexin…”)
end if

The most secure place, on your server, that you can put the database file is in Shared Documents so I would move it there and then use code like this to open it:

var f as FolderItem = SpecialFolder.SharedDocuments.child(“mydatabasename.db”)

Hola @Juan Vicente Saúl Martínez Mañón

En una lectura rápida (quizá demasiado) de tu código de ejemplo, me da la sensación de que no llegas a crear la base de datos… Una cosa es que apuntes un archivo a una ubicación y luego lo asocies con el archivo del objeto de base de datos; pero creo que tal y como está planteado, ni existe el archivo propiamente dicho ni, por tanto, dicho archivo contiene una base de datos a la que se pueda conectar.

Para dar los primeros pasos sobre bases de datos con SQLite, te recomiendo que eches un vistazo a este curso gratuito: https://www.aprendexojo.com/shop/fundamentos-en-sqlitedatabase-y-iossqlitedatabase/

Y si lo que quieres es copiar una base de datos SQLite ya existente a Xojo Cloud y trabajar sobre ella, probablemente encuentres útil este artículo: https://www.aprendexojo.com/2020/03/prepara-bases-de-datos-sqlite-para-despliegue-en-desktop-web-y-ios/

Javier

Que tal Javier. La base de datos existe…de hecho funciona bien en modo de depuracin. Sin embargo no me he podido conectar estando mi aplicacin On Line. Voy a intentar lo que dice Jason Parlsey. Le doy una leda a los enlaces que me sugieres para ver si soluciono mi problema.

@Javier Menendez; Amigo, no he podido usar el XOJOCLOUD ya incluso quite mi renovación. Mi idea era hacer unos demos para algunos clientes y que vieran las apps funcionando en tiempo real. Sin embargo, es hora que no he podido hacer funcionar ni la conexión MySql ni las Bases de Datos SqLite.

Ayer me dedique a ver la documentación que me mandaste y según yo, debería funcionar.

Recordé que tienes un tutorial de despliegue sobre una Encuesta Web y ayer la transcribí y la subí al sitio: http://159.89.131.49/webSqlite-Dev/ que es mi sitio en XojoCloud y no funcionó.

Estoy pensando que quizá me estoy brincando algo en la configuración de XojoCloud, pero no se que puede ser.

IF dba=NIL THEN
   dba=new SQLiteDatabase
end

Dim F as FolderItem

#if DebugBuild then
  f=SpecialFolder.Desktop.Child("Racsa_Db.DB")
#else
  f=app.ExecutableFile.Parent.Child("Racsa_DB.DB")
#endif

dba.DatabaseFile=f

// the file may or may not exist here
if dba.DatabaseFile.exists then
  if dba.Connect=true then
    MessageBox("DB Racsa Conectada !")
  else
    MessageBox("No se ha logrado la conexin...")
  end if
else
   if dba.CreateDatabaseFile=true then
    MessageBox("DB Racsa Conectada !")
    // you will need to insert code here for SQLITE to create all the tables you need !!!!!!!
  else
    MessageBox("No se ha logrado la conexin...")
  end if
end if

para probar este cdigo que crea la base de datos, debe MOVER su copia del archivo de la base de datos desde el escritorio, o cambiarle el nombre, y luego ejecutar el cdigo

Hola Juan,

Te he enviado un mensaje por privado para ver si puedo echarle un vistazo en detalle y ver donde puedes estar teniendo el problema.

Agradezco a @Jason Parsley, @Norman Palardy y sobre todo al Maestro @Javier Menendez.

Solucionado el problema gracias a recomendaciones de Javier, NO tomé en cuenta que el manejo de los nombres de archivos dentro del proyecto, son sensibles a Minúsculas/Mayúsculas.

De la misma manera y por recomendación de Javier, se cambió el destino del archivo de base de datos a Contents Folder y al Subdirectorio Documents.

Gracias !!!