PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Caractéristiques du champ Table mémoire
  • Fermeture d'une requête
  • Utilisation du Fetch Partiel
  • Les différents types de requêtes
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
SQLTable (Fonction)
En anglais : SQLTable
Transfère directement le résultat d'une requête dans un champ Table mémoire (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.
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
// 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")
HFSQLHFSQL 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")
HFSQLHFSQL 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 mémoire 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 (avec ou sans guillemets)
Nom de la requête créée et exécutée avec la fonction SQLExec (avec guillemets), ou exécutée avec la fonction SQLExecWDR (avec ou sans guillemets).
<Champ Table> : Nom de champ
Nom du champ Table mémoire 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 mémoire. 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 mémoire

Le nombre de colonnes du champ Table mémoire 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é.
HFSQLHFSQL 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.
HFSQLHFSQL Client/ServeurConnecteurs Natifs (Accès Natifs)

Les différents types de requêtes

La fonction SQLTable permet d'associer à une table mémoire les requêtes créées avec la fonction SQLExec.
Pour associer à une table mémoire les requêtes créées sous l'éditeur de requêtes ou avec la fonction HExécuteRequêteSQL, utilisez la fonction FichierVersTableMémoire.
Composante : wd250obj.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