PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → [WM17] Base sqlite sur Android
[WM17] Base sqlite sur Android
Débuté par Goetzinger, 10 déc. 2012 17:08 - 6 réponses
Posté le 10 décembre 2012 - 17:08
Bonjour,
J'ai une appli qui utilise une bdd Sqlite. L'appli fonctionne sans problème sur le simulateur Windev.

J'ai généré l'appli qui se lance bien sur la tablette Samsung Galaxy. Par contre l'onglet qui déclenche la lecture de la base de données ne donne rien. Pas de message d'erreur mais il ne se passe rien.
Lors de la génération de l'application j'ai pourtant veillé à intégrer le fichier de ma base au niveau de l'écran "Intégration de fichiers". Je précise que, sur le PC, cette base se trouve dans le répertoire du projet.
Quelle manip faut-il faire ?
Je ne trouve pas vraiment de réponse dans ce forum ni dans l'aide WM17.

Merci de votre aide
Posté le 10 décembre 2012 - 18:44
Il faut extraire la ressource pour pouvoir l'utiliser en lecture (seules les ressources en lecture seules comme les images peuvent être lues directement dans le APK dans les extraire).
Voir la fonction fExtraitRessource.
Posté le 24 décembre 2012 - 17:51
Bonjour,

je suis débutant sur windev et j'aimerais savoir ou ecrire ce code dans mon application afin d'extraire la base de donnée.
Je croyais que lorsque l'apk été créée et transporté sur le mobile que tout fonctionnait comme sur le poste de développement.
Est ce qu'il serait possible d'avoir un exemple précis pour débutant?
je vous remercie à l'avance j'en ai vraiment besoin.
Posté le 23 mars 2013 - 21:55
Je suis également dans le même cas, est ce que quelqu'un pourrait nous aider

patrice a écrit dans le message de news <151aba6c1e65abe97fec18ab0c9e720a@news.pcsoft> :
Bonjour,

je suis débutant sur windev et j'aimerais savoir ou ecrire ce code dans mon application afin d'extraire la base de donnée.
Je croyais que lorsque l'apk été créée et transporté sur le mobile que tout fonctionnait comme sur le poste de développement.
Est ce qu'il serait possible d'avoir un exemple précis pour débutant?
je vous remercie à l'avance j'en ai vraiment besoin.
Membre enregistré
2 messages
Posté le 19 juillet 2013 - 21:19
Membre enregistré
123 messages
Popularité : +2 (2 votes)
Posté le 26 juillet 2013 - 18:40
je te conseil de compier ta base dans la SD CARD et ensuite d'y acceder.

pour la copier dans la sd card utilise l'extration des ressources expliqué ci dessus et pour connecter ta base, tu peux faire de cette manière.
(je n'ai pas essayé ce code je ne tape en mode texte dans le forum mais l'idée est là)


cnxSQLite est une Connexion
cnxSQLlite..Provider = hAccèsNatifSQLite
cnxSQLlite..Accès = hOLectureEcriture
SI SysEtatCarteStockage()=sysCarteDisponible ALORS
cnxSQLite..Source = ComplèteRep(SysRepCarteStockage()) + "Base.db"
sinon
FinProgramme("Votre appareil n'a pas de carte de stockage ou bien celle ci est indisponible)
fin

HOuvreConnexion(cnxSQLlite)
HChangeConnexion("*",cnxSQLlite)
HCréationSiInexistant("*") //eventuelement si la base n'a pas été copiée dans la sd card une base vide est crée

--
On n'est limité que par notre imagination!
Posté le 29 juillet 2013 - 22:57
Goetzinger a écrit :
Bonjour,
J'ai une appli qui utilise une bdd Sqlite. L'appli fonctionne sans problème sur le simulateur Windev.

J'ai généré l'appli qui se lance bien sur la tablette Samsung Galaxy. Par contre l'onglet qui déclenche la lecture de la base de données ne donne rien. Pas de message d'erreur mais il ne se passe rien.
Lors de la génération de l'application j'ai pourtant veillé à intégrer le fichier de ma base au niveau de l'écran "Intégration de fichiers". Je précise que, sur le PC, cette base se trouve dans le répertoire du projet.
Quelle manip faut-il faire ?
Je ne trouve pas vraiment de réponse dans ce forum ni dans l'aide WM17.

Merci de votre aide


Salut,

J'ai eu le même souci que toi...en émulateur, j'avais les données mais une fois installé sur la tablette, je n'avais aucune données malgrès avoir intégrer la base de données via fextraitRessource...
J'ai cherché et j'ai trouvé le problème...

Je pense que tu as utilisé comme moi l'aide PCSOFT pour ta connexion SQLITE...et bien il y a une erreur dans le code généré...et oui, regarde la ligne SQL..source = ComplèteRep(fRepEnCours())+"base.db"

Cette ligne est fausse car il ne faut pas utiliser fRepEnCours() mais fRepDonnées()

Change juste cela et tu verras cela marche à merveille....

Au cas où, voici de mon code concernant la connexion SQLITE :
SI EnModeAndroid() ALORS
fExtraitRessource("MaDBsqlite.db", ComplèteRep(fRepDonnées()) + "Base.db")
SQLITE est une Connexion

// Paramètres de la connexion
SQLITE..Provider = hAccèsNatifSQLite
SQLITE..Utilisateur = ""
SQLITE..MotDePasse = ""
//SQLITE..Source = ComplèteRep(fRepEnCours())+"Base.db" <= ligne de code fausse
SQLITE..Source = ComplèteRep(fRepDonnées()) + "Base.db"
SQLITE..BaseDeDonnées = ""
SQLITE..Accès = hOLectureEcriture
// Ouverture de la connexion
HOuvreConnexion(SQLITE)
HChangeConnexion("*",SQLITE)

FIN

J'espère que cela va t'aider...