IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windev Mobile Discussion :

Compatibilité SQLite android


Sujet :

Windev Mobile

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 52
    Points : 37
    Points
    37
    Par défaut Compatibilité SQLite android
    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 ?

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Bon j'ai lu sur un autre poste d'un autre forum qu'il y a un souci actuellement avec les bases de données > 1Mo ...

    Voici la solution de contournement en attendant que PCSOFT corrige le bug.

    ==============
    En fonction du périphérique des cas d'échec de compression / décompression de fichiers ont pu être identifiés, et sont en cours de résolution.

    Un palliatif immédiat, peut être de placer le .db dans l'application, en empêchant sa compression. Pour parvenir à ce résultat, il faut modifier l'extension du fichier contenant les données. En effet, tous les fichiers de plus de 1 Mo à placer dans l'application apk sont compressés, sauf ceux ayant l'extension :
    ".jpg", ".jpeg", ".png", ".gif", ".wav", ".mp2", ".mp3", ".ogg", ".aac", ".mpg", ".mpeg", ".mid", ".midi", ".smf", ".jet", ".rtttl", ".imy", ".xmf", ".mp4", ".m4a", ".m4v", ".3gp", ".3gpp", ".3g2", ".3gpp2", ".amr", ".awb", ".wma", ".wmv"

    je vous conseille donc de renouveler le test en effectuant les opérations suivantes :
    - renommer sur le PC le .db en .mp3 par exemple avant de créer l'application android
    - créer l'application en ajoutant le fichier .mp3 des données,
    - après l'appel de fExtraitChemin, renommer le .mp3 extrait en .db à l'aide de la fonction fRenomme.
    ===============

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Donc j'ai changé l'extension du fichier_de_données de .db en .mp3 (du coup mon fichier de base de données se nomme maintenant Projet_Android_Lecture_Code_Barre_Test.mp3.db), j'ai ensuite lancé la procédure d'installation en laissant le répertoire d'intégration des fichier en mode automatique.
    J'installe sur le terminal archos 4.3 it sous android, à l'éxecution j'ai l'erreur suivante:
    ....................
    -Appel WL: Fonction <fExtraitRessource>
    -Niveau: erreur non fatale
    -Message d'erreur
    -Message d'erreur système: La ressource n'a pas été trouvée dans les ressources de l'application.
    (Rappel : la ressource doit avoir été intégrée dans le repertoire 'raw' de l'application)
    -Que s'est il passé? Impossible d'extraire la ressource 'Projet_Android_Lecture_Code_Barre_Test.jpg'
    ......................

    J'ai donc voulu relancer la procédure d'installation en changeant le répertoire d'intégration des fichier en raw. Sauf que quand je sélectionne 'raw', la procédure de génération de l'application android m'affiche le message d'erreur suivant:

    .........................................
    Echec de la création de l'application Android <C:\Mes Projets Mobile\Projet_Android_Lecture_Code_Barre_Test\Exe\Projet_Android_Lecture_Code_Barre_Test.apk>.


    Ligne de commande : .\platform-tools\aapt.exe package -m -J "C:\Mes Projets Mobile\Projet_Android_Lecture_Code_Barre_Test\Android\Generation\gen" -M "C:\Mes Projets Mobile\Projet_Android_Lecture_Code_Barre_Test\Android\Generation\AndroidManifest.xml" -S "C:\Mes Projets Mobile\Projet_Android_Lecture_Code_Barre_Test\Android\Generation\res" -I "platforms\android-12\android.jar"


    Erreur retournée :
    res\raw\projet_android_lecture_code_barre_test.xdd:0: error: Resource entry projet_android_lecture_code_barre_test is already defined.
    res\raw\projet_android_lecture_code_barre_test.jpg.db:0: Originally defined here.
    ..................................................

    Du coup je suis bien bloqué...

    Vous avez une idée?

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Personne ne m'aide , mais je m'auto-encourage tout seul et j'écris mes difficultés au fur et à mesure pour que les futures développeurs qui auront les mêmes difficultés puissent suivre mon récit afin de les résoudre . (celà dit ce n'est pas encore gagné au moment où j'écris ces lignes... )

    Rebondissements de la situation :
    J'ai installé la nouvelle version qui vient de sortir de WD Mobile : "06F160057j".

    Maintenant Les messages d'erreurs que j'avais concernant la non compatibilité des fonctions HyperfileSQL et la base de donnée interne SQLite ont disparus. Mais j'ai toujours un grand mal à exécuter les requête SQL :


    ......................................................
    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
    44
    45
    46
    47
    48
    49
    50
    51
    SI InAndroidMode()=True ALORS
     
    // Execution on the Android device or on an emulator
     
    SI fExtractResource("Projet_Android_Lecture_Code_Barre_Test.db", CompleteDir(SysRepCarteStockage()) +"sdcard/"+"Projet_Android_Lecture_Code_Barre_Test.db") = Faux ALORS
    Error(ErrorInfo(errFullDetails))
    FIN
     
    // New_connection est une connexion = Fichier_Pour_Import_Export..Connexion
    New_connection est une 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 = ComplèteRep(SysRepCarteStockage()) +"sdcard/"+ "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 ( "",0,'toto')"
     
    // SI PAS HExécuteRequêteSQL(sdREQ_InsertionDonnées,hRequêteDéfaut,sTexte_de_la_requete) ALORS
    SI PAS HExécuteRequêteSQL(sdREQ_InsertionDonnées,sTexte_de_la_requete) ALORS
    Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo())
    RETOUR
    FIN
    FIN
    ...................................................

    Mais la requête me renvoie l'erreur :

    "Vous avez appelé la fonction HExécuteRequête. Echec de l'exécution de la requête sdReq_InsertionDonnées."
    Or je ne fais jamais appel à la fonction HExécuteRequête mais plutôt à la fonction HExécuteRequêteSQL !!

    Si quelqu'un a eu cette bouteille lancée en pleine mer, qu'est ce que je fais mal?

  5. #5
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Par défaut
    Salut, Refait l'essai comme ça:
    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
    44
    45
    46
    47
    48
    49
    50
    SI InAndroidMode()=True ALORS
    
    // Execution on the Android device or on an emulator
    
    SI fExtractResource("Projet_Android_Lecture_Code_Barre_Test.db", CompleteDir(SysRepCarteStockage()) +"sdcard/"+"Projet_Android_Lecture_Code_Barre_Test.db") = Faux ALORS
    Error(ErrorInfo(errFullDetails))
    FIN
    
    // New_connection est une connexion = Fichier_Pour_Import_Export..Connexion
    New_connection est une 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 = ComplèteRep(SysRepCarteStockage()) +"sdcard/"+ "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 PAS HChangeConnection("*",New_connection) = False ALORS
    Error("Incapable de changer la connexion", HErrorInfo(hErrFullDetails))
    EndProgram(True)
    SINON
    Info("Changement de connexion OK")
    FIN
    
    
    sdREQ_InsertionDonnées est une Source de Données
    
    SI PAS
    HExécuteRequêteSQL(sdREQ_InsertionDonnées,"New_connection",hRequêteDéfaut,"INSERT INTO Fichier_Pour_Import_Export ( DATE, Code_Barre, champ_texte ) VALUES ( "",0,'toto')"
     ALORS
    Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo())
    RETOUR
    FIN
    FIN
    Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Merci Said, mais quand j'ai fais ce que tu m'as demandé, alors là ! c'est du vrai n'importe quoi !!

    Je reçois le message d'erreur :
    "Clause FROM invalide. Vérifier sa syntaxe."
    Or je n'ai pas de clause From (normal ma requête est un insert)

  7. #7
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Par défaut
    Normalement, cela doit fonctionner :
    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
    44
    45
    46
    47
    SI InAndroidMode()=True ALORS
    
    // Execution on the Android device or on an emulator
    
    SI fExtractResource("Projet_Android_Lecture_Code_Barre_Test.db", CompleteDir(SysRepCarteStockage()) +"sdcard/"+"Projet_Android_Lecture_Code_Barre_Test.db") = Faux ALORS
    Error(ErrorInfo(errFullDetails))
    FIN
    
    // New_connection est une connexion = Fichier_Pour_Import_Export..Connexion
    New_connection est une 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 = ComplèteRep(SysRepCarteStockage()) +"sdcard/"+ "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 PAS HChangeConnection("*",New_connection) = False ALORS
    Error("Incapable de changer la connexion", HErrorInfo(hErrFullDetails))
    EndProgram(True)
    SINON
    Info("Changement de connexion OK")
    FIN
    Sablier()
    sdREQ_InsertionDonnées est une Source de Données
    SI PAS HExécuteRequêteSQL(sdREQ_InsertionDonnées,"New_connection",hRequêteDéfaut,"INSERT INTO Fichier_Pour_Import_Export ( DATE, Code_Barre, champ_texte ) VALUES ( "",0,'toto')"
     ALORS
    Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo())
    RETOUR
    FIN
    FIN
    Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 52
    Points : 37
    Points
    37
    Par défaut ca avance mais ce n'est toujours pas résolu
    Merci de ton aide Said, effectivement on sent et on voit l'expérience derrière.

    Bon j'imagine que le sablier, tu l'ajoutes exprès juste avant la déclaration de la requête afin de laisser le temps à la requête de s'exécuter tranquillement et donc d'accéder à la base de donnée. Effectivement maintenant la requête accède bien à la base de données.
    Le problème maintenant est qu'elle ne trouve pas mon fichier de données Fichier_Pour_Import_Export.
    En effet elle me retourne :
    "No such table: Fichier_Pour_Import_Export"
    .

    Il faut que je précise ici également qu'au niveau de mon éditeur d'analyse de WD Mobile il n'est pas possible de l'ouvrir via WDmap pour visualiser son contenu, en effet, une tentative d'accès au fichier de données Fichier_Pour_Import_Export via WDmap me retourne l'erreur suivante:
    Le champ TableFichiers n'a pas pu s'initialiser car il a rencontré l'erreur HyperfileSQL suivante :
    Erreur de l'accès natif SQLite
    Numéro de l'erreur = 30
    Impossible d'ouvrir ou de lire le fichier Fichier_Pour_Import_Export..
    Le fichier Fichier_Pour_Import_Export n'existe pas.
    Je pense que les deux choses sont liées.

    Une idée de l'origine de cette erreur?

  9. #9
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Par défaut
    Salut, cela implique que ton fichier "Fichier_Import_Export" n'existe pas ou n'est pas déclaré.

    Sinon comme ceci (retirer les exceptions) :
    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
    SI InAndroidMode()=True ALORS
     
    // Execution on the Android device or on an emulator
     
    SI fExtractResource("Projet_Android_Lecture_Code_Barre_Test.db", CompleteDir(SysRepCarteStockage()) +"sdcard/"+"Projet_Android_Lecture_Code_Barre_Test.db") = Faux ALORS
    Error(ErrorInfo(errFullDetails))
    FIN
     
    // New_connection est une connexion = Fichier_Pour_Import_Export..Connexion
    New_connection est une 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 = ComplèteRep(SysRepCarteStockage()) +"sdcard/"+ "Projet_Android_Lecture_Code_Barre_Test.db"
     
    New_connection..Database = ""
     
    New_connection..Access = hOReadWrite
     
    //SI HOuvreConnexion(New_connection)ALORS
    Info("ouverture connexion ok")
    FIN
     
    SI HChangeConnection("*",New_connection) ALORS
    Info("Changement de connexion OK")
    FIN
    Sablier()
    sdREQ_InsertionDonnées est une Source de Données
    HExécuteRequêteSQL(sdREQ_InsertionDonnées,"New_connection",hRequêteDéfaut,"INSERT INTO Fichier_Pour_Import_Export ( DATE, Code_Barre, champ_texte ) VALUES ( "",0,'toto')"
     
    FIN
    FIN
    *************************************************
    Il vaut mieux savoir un peu de tout que tout sur très peu.
    Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Bon ça a l'air assez différent de Windev et Webdev car même une instruction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //Créer les fichiers de données s'ils n'existent pas encore
    HCréationSiInexistant("*")
    dans le code d'initialisation du projet n'arrange pas les choses.

    Comment faire pour générer/ déclarer / Rendre concrètement et physiquement existante une base de données SQLite décrite sous l'éditeur d'analyse?

  11. #11
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Merci Said mais Importer les tables et structures de fichiers ne corrige pas le problème.

    Ma question est simple. comment on fait pour accéder à une base de donnée SQLite en accès natif créée sous l'éditeur d'analyse WD Mobile via WDMap.

  13. #13
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Par défaut
    Bonjour, j'aimerai bien que ce problème soit résolu. Alors, ça donne quoi avec ce code :
    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
    SI InAndroidMode()=True ALORS
     
    // Execution on the Android device or on an emulator
     
    SI fExtractResource("Projet_Android_Lecture_Code_Barre_Test.db", CompleteDir(SysRepCarteStockage()) +"sdcard/"+"Projet_Android_Lecture_Code_Barre_Test.db") = Faux ALORS
    Error(ErrorInfo(errFullDetails))
    FIN
    New_connection est une 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 = ComplèteRep(SysRepCarteStockage()) +"sdcard/"+ "Projet_Android_Lecture_Code_Barre_Test.db"
     
    New_connection..Database = ""
     
    New_connection..Access = hOReadWrite
     
    SI HOuvreConnexion(New_connection)ALORS
    Info("ouverture connexion ok")
    sinon
    info("Pas ouverte")
    FinProgramme
    //Vérification du fichier
    SI HDéclareExterne("Fichier_Pour_Import_Export", New_connection)=Faux ALORS
    Erreur
    RETOUR
    FIN
    Sablier()
    sdREQ_InsertionDonnées est une Source de Données
    HExécuteRequêteSQL(sdREQ_InsertionDonnées,"New_connection", hRequêteSansCorrection,"INSERT INTO Fichier_Pour_Import_Export ( DATE, Code_Barre, champ_texte ) VALUES ( "",0,'toto')"
     
    FIN
    FIN
    Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Moi aussi, j'ai vraiment envie que ça marche Said, surtout que j'ai une application à livrer dans deux semaine et que le matériel est déjà acheté. C'est super stressant.
    L'exécution de ce code ne marche pas car HDéclareExterne n'est pas une fonction android.
    Je suis certain que si on résout le problème de la génération des fichiers de données, les autres problèmes se résoudrons automatiquement.

  15. #15
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Par défaut
    Ton fichier Fichier_Import_Export existe bien dans l'analyse ? Si oui, est-ce un .FIC ? As-tu bien vérifié la casse "Fichier_Import_Export" ?
    Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Oui mon fichier Fichier_Import_Export existe bien dans l'analyse. C'est un fichier bleu typé SQLite, non rouge brique typé HFSQL. Non je n'ai pas de fichiers FIC ni NDX j'ai juste un fichier DB nommé Projet_Android_Lecture_Code_Barre_Test.DB
    Ou est ce qu'il faut vérifier la casse "Fichier_Import_Export" ?

  17. #17
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Par défaut
    Bonjour, alors dans ce cas, il faut vérifier que l'analyse est synchronisée avec le projet.
    Dans l’éditeur d’analyse
    "Structure de fichiers .. Synchroniser l'analyse avec les bases de données externes". Normalement, la connexion doit s'établir si elle est bien configurée. Si ok, le code suivanrt ddevrait marcher :
    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
    44
    45
    46
    47
    48
    SI InAndroidMode()=True ALORS
     
    // Execution on the Android device or on an emulator
     
    SI fExtractResource("Projet_Android_Lecture_Code_Barre_Test.db", CompleteDir(SysRepCarteStockage()) +"sdcard/"+"Projet_Android_Lecture_Code_Barre_Test.db") = Faux ALORS
    Error(ErrorInfo(errFullDetails))
    FIN
     
    // New_connection est une connexion = Fichier_Pour_Import_Export..Connexion
    New_connection est une 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 = ComplèteRep(SysRepCarteStockage()) +"sdcard/"+ "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 PAS HChangeConnection("*",New_connection) = False ALORS
    Error("Incapable de changer la connexion", HErrorInfo(hErrFullDetails))
    EndProgram(True)
    SINON
    Info("Changement de connexion OK")
    FIN
    HCréationSiInexistant("*")
    Sablier()
    sdREQ_InsertionDonnées est une Source de Données
    SI PAS HExécuteRequêteSQL(sdREQ_InsertionDonnées,"New_connection",hRequêteSansCorrection,"INSERT INTO Fichier_Pour_Import_Export ( DATE, Code_Barre, champ_texte ) VALUES ( "",0,'toto')"
     ALORS
    Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo())
    RETOUR
    FIN
    FIN
    Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Bonjour, les erreurs ci dessus persistent toujours,

    l'analyse est bien synchronisée avec le projet:

    Dans l’éditeur d’analyse
    "Structure de fichiers .. Synchroniser l'analyse avec les bases de données externes". est fait. Une connexion est bien établie en effet :
    Au clic droit sur l'éditeur de l'analyse> Dans le menu contextuel > Connexions..> Dans l'onglet "propriétés" de ma connexion :

    Nom: MaConnexion
    Libellé: Connexion à 'C:\Mes Projets Mobile\Projet_Android_Lecture_Code_Barre_Test\Exe\Projet_Android_Lecture_Code_Barre_Test.db'
    Connexion Par: Accès natif SQLite pour Android
    Nom du fichier: Projet_Android_Lecture_Code_Barre_Test.db
    Répertoire du fichier: C:\Mes Projets Mobile\Projet_Android_Lecture_Code_Barre_Test\Exe

    Au clic sur le bouton tester: "La connexion à la base réussi."

    Dans l'onglet "Utilisée Par" de ma connexion, j'ai bien : Fichier_Pour_Import_Export.

    Donc je pense que la connexion est bonne, elle n'est pas le problème.

    Pour éviter de tourner autour du problème je te propose la petite manipulation suivante:

    Créé un nouveau projet android, associe lui une base de données SQLite, crée un fichier bidon et essaie ensuite de l'ouvrir avec WDMap. Dis moi ensuite ce qui se passe.

  19. #19
    Membre éprouvé Avatar de miripesage
    Homme Profil pro
    gerant
    Inscrit en
    Novembre 2009
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : gerant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 725
    Points : 1 156
    Points
    1 156
    Par défaut
    Salut, je viens de vérifier qu'il faut la version 3 SQLITE pour l'accès natif, si oui, essaye le code suivant :
    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
    44
    45
    46
    47
     SI InAndroidMode()=True ALORS
     
    // Execution on the Android device or on an emulator
     
    SI fExtractResource("Projet_Android_Lecture_Code_Barre_Test.db", CompleteDir(SysRepCarteStockage()) +"sdcard/"+"Projet_Android_Lecture_Code_Barre_Test.db") = Faux ALORS
    Error(ErrorInfo(errFullDetails))
    FIN
     
    // New_connection est une connexion = Fichier_Pour_Import_Export..Connexion
    New_connection est une 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 = ComplèteRep(SysRepCarteStockage()) +"sdcard/"+ "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 PAS HChangeConnection("*",New_connection) = False ALORS
    Error("Incapable de changer la connexion", HErrorInfo(hErrFullDetails))
    EndProgram(True)
    SINON
    Info("Changement de connexion OK")
    FIN
    HCréationSiInexistant("*")
    Sablier()
    SI PAS HExécuteRequêteSQL(sdREQ_InsertionDonnées,"",hRequêteSansCorrection,"INSERT INTO Fichier_Pour_Import_Export ( DATE, Code_Barre, champ_texte ) VALUES ( "",0,'toto')"
     ALORS
    Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo())
    RETOUR
    FIN
    FIN
    Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 52
    Points : 37
    Points
    37
    Par défaut
    Bon, j'ai réussi à contourner le problème de non existence du fichier au niveau de l'éditeur d'analyse, mais pas encore sur la tablette android:
    Comment :
    J'ai effectué une importation de la structure de mes fichiers :

    Les étapes de l'importation

    Cette importation est effectuée sous l'éditeur d'analyses par l'option "Structure de fichiers .. Importer des descriptions de fichiers / tables". L'assistant se lance. Une connexion à la base de données SQLite est automatiquement créée et associée aux fichiers importés dans l'analyse.
    Dans les différents écrans de l'assistant, choisissez les options suivantes :
    • Source de données : « Base externe »ou « Autre »
    • L'application utilisera les données dans le format actuel.
    • Sélectionnez Nouvelle connexion, le type "Accès Natif SQLite pour Android", le nom du fichier SQLite et le répertoire du fichier. Ce fichier peut par exemple est un fichier d'extension db, db2, db3, sdb, sqlite, dans mon cas c'est "Projet_Android_Lecture_Code_Barre_Test.db" ainsi que le répertoire ou est le fichier.
    • Lorsque la connexion est établie, il suffit de sélectionner les tables à importer dans l'analyse. A ce moment là, j'ai coché la case relative aux tables cachées, j'ai sélectionné mon fichier Fichier_Pour_Import_Export et également la table sqlite_sequence.
    • J'ai validé l'assistant.

    Là j'ai mes fichiers qui sont accessibles par WDMap.

    Ceci d'une part, d'autre part,

    Quand j’exécute le code le message d'erreur change:

    Erreur d'initialisation de la requête
    Code erreur: 70018

    Erreur du framework WDJava

    Impossible d'ouvrir ou de lire le fichier <sdREQ_InsertionDonnées>.

    L'erreur suivante a été envoyée par la base de données
    <Projet_Android_Lecture_Code_Barre_Test.db>
    Numéro d'erreur=<70018>
    Message d'erreur:
    no such table: Fichier_Pour_Import_Export : INSERT INTO Fichier_Pour_Import_Export (date, CodeBarre, CHAMP_TEXTE) values (20110630,'683319091','toto')

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Cursor dans sqlite + android
    Par ensinienne dans le forum Android
    Réponses: 8
    Dernier message: 19/03/2012, 13h22
  2. Erreur SQLite Android
    Par mokhtar1105 dans le forum Android
    Réponses: 4
    Dernier message: 29/02/2012, 18h57
  3. SQL -> Sqlite android
    Par taz007_dj dans le forum Android
    Réponses: 0
    Dernier message: 10/10/2011, 22h07
  4. sqlite android ( affichage des données stockés)
    Par nagca dans le forum Android
    Réponses: 5
    Dernier message: 26/04/2011, 13h21
  5. Aide SQLite Android
    Par Zaark dans le forum Android
    Réponses: 0
    Dernier message: 13/01/2011, 16h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo