Bonjour,

J'ai créé un projet android avec un seul fichier de données : Fichier_Pour_Import_Export.

Mon objectif dans un premier temps est simplement de stocker une donnée récupérée par l'application dans le fichier de donnée embarqué dans la tablette Android (en effet j'ai inclut le fichier de données .db dans le .apk à la génération de l'application android).

Donc j'installe l'application qui lit un code barre, je tente d'insérer la valeur du code barre récupéré et là Message d'erreur :


"Vous avez appelé la fonction HExécuteRequête. Le fichier sdReq_InsertionDonnées est associé à une connexion de type HyperFileSQL. Seules les connexions de type SQLite sont autorisées sous android. Vous pouvez modifier la connexion associée au fichier dans l'analyse du projet ou utiliser la fonction HChangeConnexion."
Or, dans l'analyse de mon projet, mon fichier de donnée est bien bleu et typé SQLite, j'ai également une connexion SQLite native. De plus j'ai mis à l'initialisation du projet un petit HChangeConnexion("*",MaConnexion_android), et finalement pour en avoir le coeur net, je redéfinis une nouvelle connexion dans le code d'insertion des données:
..............................
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 
SI InAndroidMode()=True ALORS
 
// Execution on the Android device or on an emulator
SI fExtractResource("Projet_Android_Lecture_Code_Barre_Test.db", CompleteDir(fDataDir()) + "Projet_Android_Lecture_Code_Barre_Test.db") = Faux ALORS
Error(ErrorInfo(errFullDetails))
FIN
 
New_connection est une Connexion =Fichier_Pour_Import_Export..Connexion
 
// Parametres de la connexion
 
New_connection..Source = ComplèteRep(SysRepCarteStockage())+"sdcard/"+"Projet_Android_Lecture_Code_Barre_Test.db"
New_connection..Provider = hAccèsNatifSQLite
New_connection..User = ""
New_connection..Password = ""
New_connection..Server = CompleteDir(fDataDir()) + "Projet_Android_Lecture_Code_Barre_Test.db"
New_connection..Database = ""
New_connection..Access = hOReadWrite
SI HOuvreConnexion(New_connection)= Faux ALORS
Error("Impossible d'ouvrir la connexion", HErrorInfo(hErrFullDetails))
EndProgram(True)
SINON
Info("ouverture connexion ok")
FIN
SI HChangeConnection("*",New_connection) = False ALORS
Error("Incapable de changer la connexion", HErrorInfo(hErrFullDetails))
EndProgram(True)
SINON
Info("Changement de connexion OK")
FIN
 
sTexte_de_la_requete est une chaîne
sdREQ_InsertionDonnées est une Source de Données
 
sTexte_de_la_requete="INSERT INTO Fichier_Pour_Import_Export ( DATE, Code_Barre, champ_texte ) VALUES ( "+DateSys()+",'"+cb..ValeurBrute+"','toto')"
 
SI PAS HExécuteRequêteSQL(sdREQ_InsertionDonnées,hRequêteDéfaut,sTexte_de_la_requete) ALORS
Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo())
RETOUR
FIN
 
FIN
..............................

Mais rien n'y fait.
Avez vous une explication? Ais je commis une erreur ?