Lors de l’utilisation d’application sous android, il est parfois nécessaire de transférer les données d’une base HyperFileSQL vers une base SQLite. Voici un exemple simple de code permettant de transformer un fichier HyperFileSQL en SQLite. Bien sûr il est possible de compléter le code afin d’effectuer le traitement pour tous les fichiers décrits dans une analyse :
sUnFichierSQLLite est une chaîne = « CLIENT »
// connexion SQLite :
cnxConnexionSQLite est une Connexion
cnxConnexionSQLite..Provider=hAccèsNatifSQLite
cnxConnexionSQLite..Source=fRepDonnées()+[« \ »]+« MaBase.db »
// Ouverture de la connexion SQLite
HOuvreConnexion(cnxConnexionSQLite)
// Change la connexion de tous les fichiers décrit dans l’analyse
HChangeConnexion(« * »,cnxConnexionSQLite)
// Nom du fichier externe (Fichier HF)
sFichierHFExterne est une Source de Données
// Déclare le fichier externe HFSQL.
HDéclareExterne(fRepDonnées()+« \ »]+sUnFichierSQLLite+« .FIC »,sFichierHFExterne)
// Création du fichier SQLite.
HCréation(sUnFichierSQLLite)
ChronoDébut() // calcul le temp d’exécution
// Mise en place d’une transaction SQLLite avant la copie
// (accélère le temps d’importation voir aide).
SQLTransaction(sqlDébut,cnxConnexionSQLite)
// Parcours du fichier externe et copie dans la BDD SQLite.
POUR TOUT sFichierHFExterne
// copie de chaque enregistrement
HCopieEnreg(sUnFichierSQLLite,sFichierHFExterne,hCopieIdAuto)
// ajout de l’enreg
HAjoute(sUnFichierSQLLite,hFixeIdAuto)FIN
// Fin de la transaction SQLite.
SQLTransaction(sqlFin,cnxConnexionSQLite)
ChronoFin() // fin du traitement
Info(DuréeVersChaîne(ChronoValeur(),« MM:SS »))
Un exemple Complet est disponible dans la LST n°87 : WD GénérationSQLite