DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / Fonctions SQL
  • Caractéristiques du champ Table par programmation
  • Fermeture d'une requête
  • Utilisation du Fetch Partiel
  • Les différents types de requêtes
  • Gestion de l'Unicode
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Transfère directement le résultat d'une requête dans un champ Table par programmation (un champ Liste ou un champ Combo), avec possibilité de Fetch Partiel (récupération du résultat par blocs de lignes). Dans un parcours du type "SQLAvance/SQLLitCol", le transfert des informations dans le champ Table se fera à partir de l'enregistrement en cours.
Remarque : Cette fonction doit être utilisée lors d'un parcours du résultat de la requête de type SQLAvance/ SQLLitCol. Si cette fonction est utilisée dans un parcours de type SQLPremier/SQLCol, une erreur fatale est générée. 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.
Exemple
// Transfert dans un champ Table : récupération sans fetch
ResSQL = SQLExec("SELECT NOMCLI,PRENOMCLI FROM FACT", "REQ1")
SI ResSQL ALORS
SQLTable("REQ1", TABLE_TabReq, "Nom du client" + TAB + "Prénom", "30 20")
// Calcule le nombre d'enregistrements résultat
NbEnr est un entier = TableOccurrence(TABLE_TabReq)
SINON
// Erreur SQL
FIN
SQLFerme("REQ1")
HFSQL ClassicHFSQL Client/ServeurConnecteurs Natifs (Accès Natifs)
// Transfert dans un champ Table : récupération uniquement des 25 premiers
ResSQL = SQLExec("SELECT NOMCLI,PRENOMCLI,VILLE FROM FACT", "REQ1")
SI ResSQL ALORS
// Avoir uniquement les 25 premières lignes
SQLTable("REQ1", TABLE_TabReq, 25)
SINON
// Erreur SQL
FIN
SQLFerme("REQ1")
HFSQL ClassicHFSQL Client/ServeurConnecteurs Natifs (Accès Natifs)
// Transfert dans un champ Table : récupération par Fetch
ResSQL = SQLExec("SELECT NOMCLI,PRENOMCLI,VILLE FROM FACT", "REQ1")
SI ResSQL ALORS
// Récupération par groupe de 28 lignes
TANTQUE SQLTable(28,"REQ1", TABLE_MATABLE, "ColTitre", "90")
// Traitement  
SINON
// Erreur SQL
FIN
SQLFerme("REQ1")
Syntaxe

Transfert dans un champ Table par programmation sans Fetch Partiel Masquer les détails

SQLTable(<Nom de la requête> , <Champ Table> , <Nombre de lignes maximum> [, <Titre des colonnes>] , <Largeur des colonnes>)
<Nom de la requête> : Chaîne de caractères
Nom de la requête créée et exécutée avec la fonction SQLExec, ou exécutée avec la fonction SQLExecWDR.
<Champ Table> : Nom de champ
Nom du champ Table par programmation dans lequel le résultat de la requête doit être affiché.
<Nombre de lignes maximum> : Entier
Nombre de lignes maximum affichées dans le champ Table. Si ce paramètre est précisé, le champ Table contiendra au maximum <Nombre de lignes maximum> lignes affichées, même si le résultat de la requête contient un nombre supérieur de lignes.
<Titre des colonnes> : Chaîne de caractères optionnelle
Liste de tous les titres des colonnes du champ Table par programmation. Les différents titres sont séparés par TAB. Pour préciser uniquement la largeur des colonnes, ce paramètre peut correspondre à une chaîne vide ("").
<Largeur des colonnes> : Chaîne de caractères
Liste de toutes les largeurs des colonnes, séparées par un caractère espace. Pour préciser uniquement le titre des colonnes, ce paramètre peut correspondre à une chaîne vide ("").
Remarques

Caractéristiques du champ Table par programmation

Le nombre de colonnes du champ Table par programmation doit être suffisant pour accueillir toutes les colonnes du résultat de la requête.

Fermeture d'une requête

Une requête est fermée automatiquement :
  • après l'exécution de la fonction SQLTable si le Fetch partiel n'est pas utilisé.
  • dès que le résultat de la requête est récupéré en totalité si le Fetch partiel est utilisé.
HFSQL ClassicHFSQL Client/ServeurConnecteurs Natifs (Accès Natifs)

Utilisation du Fetch Partiel

La récupération en cours s'arrête dès que la fonction SQLFerme est appelée ou dès que la fenêtre contenant le champ Table est fermée.
Il est possible d'utiliser le Fetch Partiel sur plusieurs requêtes en même temps.
HFSQL ClassicHFSQL Client/ServeurConnecteurs Natifs (Accès Natifs)

Les différents types de requêtes

La fonction SQLTable permet d'associer à un champ Table par programmation les requêtes créées avec la fonction SQLExec.
Pour associer à un champ Table par programmation les requêtes créées sous l'éditeur de requêtes (ou crées avec la fonction HExécuteRequêteSQL), utilisez la fonction FichierVersTableMémoire.

Gestion de l'Unicode

La gestion de l'Unicode peut être définie au niveau de la configuration de projet (onglet "Unicode" de la fenêtre de description de la configuration) :
  • Si l'option "Utiliser des chaînes ANSI en exécution" est sélectionnée : les données sont converties en utilisant l'alphabet courant.
    Rappel : La fonction ChangeAlphabet permet de modifier l'alphabet courant.
  • Si l'option "Utiliser des chaînes UNICODE en exécution" est sélectionnée, les données sont insérées sans transformation.
Composante : wd300obj.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Tabulation dans les colonnes
Attention aux caractères de tabulation dans vos requêtes SQL, ils mettent le bazar lors du remplissage de votre champ table.

Ex: SELECT 'a' + CHAR(9) + 'b'

Quand cette requête est exécutée dans votre SGBDR, le résultat est contenu dans une seule colonne, dans windev / webdev / windev mobile, si vos faites appel à SQLTable, le wlangage va considérer CHAR(9) comme séparateur de colonnes, du coup, le résultat sera répartie sur 2 colonnes, et non 1 seule
ROMULUS001
14 juin 2017

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale