- Fonction HDéclareExterne : Utilisation avec les Connecteurs Natifs et/ou le provider OLE DB
HDéclareExterne (Fonction) En anglais : HDeclareExternal
Non disponible avec ce type de connexion
Remarques - Toutes les fonctions HFSQL peuvent être utilisées sur le fichier de données importé, à l'exception de la gestion de l'intégrité.
- Le nombre d'importations de descriptions est illimité.
- Cette fonction peut être utilisée avec des fichiers de données au format XML.
- La seconde syntaxe de cette fonction ne peut pas être utilisée lors d'un accès à une base de données via Accès distant.
- Pour utiliser la fonction HDéclareExterne dans une procédure stockée :
- il faut donner le chemin relatif du fichier de données par rapport au répertoire de la base contenant la procédure stockée. Le chemin devra indiquer le nom et l'extension du fichier de données.
- il ne faut pas utiliser de connexion : c'est la base en cours sur laquelle se trouve la procédure stockée qui sera utilisée.
- Par défaut, si le projet en cours :
- est associé à une analyse, le mode de blocage effectué sur les fichiers de données est multi-utilisateurs (les fichiers ne sont pas bloqués à leur ouverture, les autres applications peuvent accéder aux fichiers).
- n'est pas associé à une analyse, le mode de blocage effectué sur les fichiers de données est mono-utilisateurs : les fichiers sont totalement bloqués en lecture et en écriture dès leur ouverture. Ce mode empêche tout autre application d'accéder aux fichiers déjà ouverts par l'application en cours.
Documentation également disponible pour…
|
|
|
| |
| Exemple de la syntaxe OLEDB + connexion |
|
| gcnxNORTH est une Connexion
gcnxNORTH..MotDePasse="monmotdepasse" gcnxNORTH..Utilisateur = "sa" gcnxNORTH..Provider=hOledbSQLServer gcnxNORTH..BaseDeDonnées = "Northwind" gcnxNORTH..Serveur = "WIN-DDGVOCMN9FC" // NOM DU SERVEUR
HOuvreConnexion(gcnxNORTH)
sdClients est une Source de Données
HDéclareExterne("Customers",sdClients,gcnxNORTH)
HLitPremier(sdClients)
Trace(sdClients.CompanyName) |
|
|
|
| |
| |
| |
|
| Exemple en lien avec la syntaxe ? |
|
| Exemple : // Déclaration d'un fichier FournisseurWD à partir du chemin complet // du fichier HFSQL Classic (extension .FIC comprise) HDéclareExterne("C:\GestCom\Fournisseur.fic", "FournisseurWD") SI ErreurDétectée = Vrai ALORS // Erreur de déclaration du fichier, on affiche l'erreur Erreur(HErreurInfo()) FIN
Selon la syntaxe : // Déclaration d'un fichier FournisseurWD à partir du chemin complet // du fichier HFSQL Classic (extension .FIC comprise) si HDéclareExterne("C:\GestCom\Fournisseur.fic", "FournisseurWD") = Faux ALORS // Erreur de déclaration du fichier, on affiche l'erreur Erreur(HErreurInfo()) FIN |
|
|
|
| |
| |
| |
|
| Restrictions sur Android (suite) |
|
| Vous devrez d'abord passer par une requête SQL avec une source de données (pour la requête, et non le fichier). A ce moment-là seulement, vous pourrez faire un HLitPremier/HTrouve/HLitSuivant/etc. sur la source de données correspondant à la requête.
Par exemple : sdMaRequete est une Source de données HExécuteRequêteSQL(sdMaRequete , hRequêteDéfaut, "SELECT * FROM Groupe WHERE IDGroupe = " nIDGroupeALire) HLitPremier(sdMaRequete) Info("Nom du groupe : " + sdMaRequete.Libelle)
Sans cela, c'est plantage garanti de l'app sur Android (mais pas sur le simulateur, comme dit au début !) |
|
|
|
| |
| |
| |
|
| Restrictions sur Android : Utilisez la bonne syntaxe pour éviter le plantage ! |
|
| Attention ! Un certain nombre de restrictions sont à prendre en compte sur Android, et qui n'apparaissent pas sur le simuateur interne de Windev Möbile !
Ayant cherché un certain temps pourquoi mon app plantait sur le téléphone et pas sur le simulateur (il me disait que la rubrique du fichier déclaré avec HDeclareExterne n'existait pas), je vous livre la solution ci-dessous :
Vous ne pouvez pas utiliser de source de données pour faire un HDeclareExterne. La déclaration doit être nommée comme le fichier physique. Par exemple, si le fichier s'appelle Groupe.FIC, son nom doit être "Groupe" entre guillemets (pas une source de données nommée Groupe, ça ne fonctionnera pas non plus) : HDéclareExterne("Groupe.FIC", "Groupe", cnxBaseDeDonnées)
Par conséquent, oubliez les HLitRecherchePremier et autres fonctions natives nécessitant une source de données pour le HDeclareExterne. (Suite dans un 2nd commentaire, pas assez de caractères sur un seul com') |
|
|
|
| |
| |
| |
| |
| |
| |
| | |
|