PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Fonctions SQLCol et SQLLitCol : différents types de parcours
  • Ligne en cours de la requête
  • Requête sans résultat
  • Utilisation de tabulations dans les rubriques
  • Récupération de rubriques de type Float sur Oracle (via ODBC)
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget iOSApple WatchCatalystUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Récupère le contenu de la colonne spécifiée dans le résultat de la requête, pour la ligne en cours.
Attention : Cette fonction doit être utilisée lors d'un parcours du résultat de la requête de type SQLPremier/SQLCol. Pour plus de détails sur les différents types de parcours du résultat d'une requête SQL, consultez Types de parcours SQL.
Versions 19 et supérieures
Widget Android Cette fonction est désormais disponible en mode Widget Android (accès aux bases tierces via un Webservice).
Android Cette fonction est désormais disponible pour les applications Android (accès aux bases tierces via un Webservice).
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad (accès aux bases tierces via un Webservice).
Nouveauté 19
Widget Android Cette fonction est désormais disponible en mode Widget Android (accès aux bases tierces via un Webservice).
Android Cette fonction est désormais disponible pour les applications Android (accès aux bases tierces via un Webservice).
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad (accès aux bases tierces via un Webservice).
Widget Android Cette fonction est désormais disponible en mode Widget Android (accès aux bases tierces via un Webservice).
Android Cette fonction est désormais disponible pour les applications Android (accès aux bases tierces via un Webservice).
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad (accès aux bases tierces via un Webservice).
Versions 21 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Nouveauté 21
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Exemple
ResExec = SQLExec("SELECT NOMCLI FROM FACT", "REQ1")
SI ResExec = Vrai ALORS
        SQLPremier("REQ1")
        // Transfert du nom dans LISTE_NOM
        TANTQUE PAS SQL.EnDehors
                ListeAjoute(LISTE_NOM, SQLCol("REQ1", 1))
                SQLSuivant("REQ1")
        FIN
SINON
        // TraiteErreur
FIN
SQLFerme("REQ1")
Syntaxe
<Résultat> = SQLCol(<Nom de la requête> , <Numéro de la colonne>)
<Résultat> : Chaîne de caractères
Valeur de la colonne.
<Nom de la requête> : Chaîne de caractères (avec ou sans guillemets)
Nom de la requête :
  • créée et exécutée avec la fonction SQLExec (avec guillemets),
  • exécutée avec la fonction SQLExecWDR (avec ou sans guillemets).
<Numéro de la colonne> : Entier
Numéro de la colonne à récupérer. Cette colonne correspond à une colonne de la requête (et non pas à une colonne de la table). L'ordre des numéros de colonne à récupérer n'a aucune importance.
Remarques

Fonctions SQLCol et SQLLitCol : différents types de parcours

Les fonctions SQLCol et SQLLitCol sont équivalentes lors d'un accès OLE DB ou HFSQL. Il faut cependant respecter le type de parcours associé à chacune de ces fonctions :
  • Fonction SQLCol : parcours de type "SQLPremier/SQLCol"
  • Fonction SQLLitCol : parcours de type "SQLAvance/SQLLitCol"
Pour plus de détails sur ces deux types de parcours, consultez Types de parcours SQL.
Remarque : A partir de la version 19, HFSQL est le nouveau nom de HyperFileSQL.

Ligne en cours de la requête

Pour se positionner sur une ligne de la requête, utilisez une des fonctions suivantes : SQLPremier, SQLSuivant, SQLPrécédent, SQLDernier ou SQLPositionne.

Requête sans résultat

La fonction SQLCol ne doit pas être appelée si la requête n'a pas renvoyé de résultat : il faut tester la variable SQL.EnDehors après s'être positionné dans le résultat de la requête et avant d'appeler la fonction SQLCol.
Par exemple :
// Récupération de la valeur de la 1ère colonne du 1er enregistrement
Valeur est une chaîne
TexteRequête est une chaîne
TexteRequête = "SELECT NOMCLI, ADR1, ADR2, VILLE, CP FROM FACT"
SQLExec(TexteRequête, "REQ1")
Valeur = SQLCol("REQ1", 1)

Utilisation de tabulations dans les rubriques

Les fonctions SQL permettent d'insérer des tabulations dans les rubriques des fichiers. La gestion des tabulations dépend du mode d'accès utilisé.
1er cas : Exécution d'une requête en ODBC :
  • Lors de l'exécution d'une requête en ODBC, les tabulations ne sont pas récupérées par la fonction SQLCol. Pour récupérer les valeurs des rubriques (avec les caractères TAB), il est conseillé d'utiliser un parcours du type SQLAvance/SQLLitCol.
  • Lors de l'exécution d'une requête ODBC, les espaces situés à la fin de la valeur des rubriques sont retirés. Pour garder tous les espaces, il est conseillé d'utiliser un parcours du type SQLAvance/SQLLitCol.
Exemple : SQLAssocie et les tabulations dans les rubriques
Les rubriques des enregistrements à récupérer sont les suivantes :
Rubrique 1Rubrique 2
Enregistrement 1JohnSmith
Enregistrement 2John + tab + MacDoughnut
Pour le premier enregistrement :
  • SQLCol(Req1, 1) : récupère John
  • SQLCol(Req1, 2) : récupère Smith
Pour le second enregistrement :
  • SQLCol(REQ,1 ) : récupère John
  • SQLCol(REQ, 2) : récupère Mac, mais Mac ne correspond pas à la valeur de la seconde rubrique
  • SQLCol(REQ, 3) : récupère Doughnut, valeur de la seconde rubrique
2ème cas : Exécution d'une requête par OLEDB, HFSQL ou Accès Natif
Les tabulations présentes dans les rubriques résultat sont automatiquement récupérées par la fonction SQLCol.
WINDEVWEBDEV - Code ServeurEtats et RequêtesPHPAjaxODBC

Récupération de rubriques de type Float sur Oracle (via ODBC)

Par défaut, le séparateur décimal utilisé pour les rubriques de type Float sur Oracle est le point. Or le driver ODBC renvoie la valeur avec en utilisant la virgule comme séparateur décimal. Lors de l'affectation de la valeur dans un champ de type numérique, les décimales sont perdues.
Pour éviter ce problème, il suffit de configurer le séparateur décimal pour la connexion en cours :
// Connexion à la base de données Oracle
SQLConnecte("MaBaseOracle", "User", "Passe", "", "ODBC")
// Requête pour changer le séparateur décimal
SQLExec("ALTER SESSION SET NLS_NUMERIC_CHARACTERS ='. '", "ReqTemp")
Composante : wd250hf.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire