Clipper On Line • Ver Tópico - Sqlite com Android

Sqlite com Android

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Sqlite com Android

Mensagempor AutomoSistema » 24 Abr 2017 16:40

Boa tarde, estou aventurando no mundo Android e estou desenvolvendo um aplicativo para consulta até ai tudo bem, agora preciso localizar o arquivo.db no smartphone para carregar dados no pc e não localizo, se alguém puder me ajudar fico agradecido!!!!
AutomoSistema
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 87
Data de registro: 27 Nov 2015 21:09
Cidade/Estado: Jardim-MS
Curtiu: 0 vez
Mens.Curtidas: 4 vezes

Sqlite com Android

Mensagempor Claudio Soto » 25 Abr 2017 11:12

Cuando se crea una db con SQLite en Android el archivo se guarda en los datos privados de la aplicación o en el espacio de archivos compartidos, etc. Todo depende como se defina al crear la tabla.
Por ejemplo el siguiente código en Java:

SQLiteDatabase db = openOrCreateDatabase ("MiArchivo.db", MODE_PRIVATE, null);

crea la db en el espacio privado de la aplicacion:
data/data/AppName/...

PD: en la mayoría de los libros dedicados a la Progranación en Android se describe el espacio de dominio de los archivos.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 555
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 166 vezes

Sqlite com Android

Mensagempor AutomoSistema » 01 Mai 2017 19:17

Boa noite Claudio, o app esta me dando o seguinte retorno java.io.FileNotFoundException:/data/com.automosistema.paxserver/databases/paxserver.db:open failed: ENOENT (No such file or diretory), tem como me ajuda, Muito Obrigado.
AutomoSistema
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 87
Data de registro: 27 Nov 2015 21:09
Cidade/Estado: Jardim-MS
Curtiu: 0 vez
Mens.Curtidas: 4 vezes

Sqlite com Android

Mensagempor Claudio Soto » 01 Mai 2017 19:36

Podrías postear el trecho del código donde se crea/abre la base de datos y los permisos de escritura que especificase en el archivo AndroidManifest.xml
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 555
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 166 vezes

Sqlite com Android

Mensagempor AutomoSistema » 01 Mai 2017 21:00

public class BandoDados extends SQLiteOpenHelper {

public BandoDados(Context context) {

super(context , "paxserver.db" , null , 1);

}

@Override
public void onCreate(SQLiteDatabase db) {

db.execSQL( ScriptTabela.getCreateSocio() );

db.execSQL( ScriptTabela.getCreateDependente() );

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}
}
AutomoSistema
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 87
Data de registro: 27 Nov 2015 21:09
Cidade/Estado: Jardim-MS
Curtiu: 0 vez
Mens.Curtidas: 4 vezes

Sqlite com Android

Mensagempor AutomoSistema » 01 Mai 2017 21:00

Desculpe qualquer coisa, estou começando agora com android
AutomoSistema
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 87
Data de registro: 27 Nov 2015 21:09
Cidade/Estado: Jardim-MS
Curtiu: 0 vez
Mens.Curtidas: 4 vezes

Sqlite com Android

Mensagempor AutomoSistema » 01 Mai 2017 21:02

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.automosistema.paxserver">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".PesquisaSocio_Activity" />
<activity android:name=".FichaActivity"></activity><!-- ATTENTION: This was auto-generated to add Google Play services to your project for
App Indexing. See https://g.co/AppIndexing/AndroidStudio for more information. -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>

</manifest>
AutomoSistema
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 87
Data de registro: 27 Nov 2015 21:09
Cidade/Estado: Jardim-MS
Curtiu: 0 vez
Mens.Curtidas: 4 vezes

Sqlite com Android

Mensagempor Claudio Soto » 01 Mai 2017 22:15

La clase SQLiteOpenHelper me parece que es muy engorrosa para empezar porque hay que sobrescribir métodos y realizar algunos pasos indirectos para manejar la tabla, yo prefiero usar directamente SQLiteDatabase que es más sencilla, aquí va un ejemplo:

// colocar por ejemplo dentro de onCreate()
try
            {
                SQLiteDatabase db = null;
                Cursor cursor = null;
                String datos;

                // crea y/o abre la base de datos             
                db = this.openOrCreateDatabase(Environment.getExternalStorageDirectory() + "/MiBaseDatos.db",MODE_WORLD_WRITEABLE,null);
               
                // crea una tabla si no existe
                db.execSQL("create table if not exists "
                           + " operas (id integer primary key, titulo text,"
                           + " compositor text, year integer);");

                // borra todos los datos previos
                db.execSQL("delete from operas;");

                // inserta datos en la tabla
                db.execSQL("insert into operas (titulo,compositor,year) "
                           + " values('Don Govanni', 'W.A. Mozart', 1787);");

                db.execSQL("insert into operas (titulo,compositor,year) "
                           + " values ('Giulio Cesare', 'G. F. Haendel', 1724);");

                db.execSQL("insert into operas (titulo,compositor,year) "
                           + " values('Orlando Furioso', 'A. Vivaldi', 1727);");

                // selecciona todos los datos en un Cursor
                cursor = db.rawQuery("select * from operas ", null);

                datos  = " tamaño " + db.getPageSize();
                datos += "\n nro columnas " + cursor.getColumnCount();
                datos += "\n nro filas " + cursor.getCount();

                int numeroDeColumnas = cursor.getColumnCount();
                int numeroDeFilas = cursor.getCount();
                String[] nombreColumna = new String[ numeroDeColumnas ];

                datos += "\n----------------------------\n";
                for (int i=0; i < numeroDeColumnas; i++)
                {
                    nombreColumna[i] = cursor.getColumnName(i);
                    datos = datos + nombreColumna[i] + " | ";
                }
                datos += "\n----------------------------";

                cursor.moveToFirst();
                for (int i=0;i < numeroDeFilas;i++)
                {     
                    datos += "\n ";
                    for (int j=0; j < numeroDeColumnas; j++)
                    {
                        String CellValue = cursor.getString(j);
                        datos = datos + CellValue + " | ";
                    }
                    cursor.moveToNext();
                }
               
                MyAlertToast(datos);

            }
            catch (Exception e)
            {
                MyAlertToast(e.toString());
            }
        }     


public void MyAlertToast(String msg)
    {
        Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
    }


Esto requiere el permiso de escritura como el de tu AndroidManifest.xlm
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
    </uses-permission>


PD: la base de datos será creada en: /storage/emulated/0/MiBaseDatos.db
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 555
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 166 vezes

Sqlite com Android

Mensagempor AutomoSistema » 05 Mai 2017 20:56

Boa noite amigo, Graças a Deus deu certo conforme a sua orientação, muito obrigado !!!!!!!
AutomoSistema
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 87
Data de registro: 27 Nov 2015 21:09
Cidade/Estado: Jardim-MS
Curtiu: 0 vez
Mens.Curtidas: 4 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 3 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro