PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Présentation
  • Spécificités communes au Connecteur Natif SQL Server par SQLnCli et par DB-Library
  • Champ Table fichier chargé en mémoire
  • Blocage d'un fichier de données (table) dans une transaction
  • Numéro d'enregistrement
  • Récupération des types DATEHEURE
  • Options de l'analyse
  • Rubriques de type Tableau
  • Cryptage par SSL
  • Procédures stockées
  • Valeurs par défaut des rubriques
  • Spécificités sur les fonctions HFSQL
  • Spécificités supplémentaires du Connecteur Natif par DB-Library
  • Gestion des rubriques UNICODE
  • Transactions
  • Procédures stockées
  • Type varchar(max), nvarchar(max)
  • Spécificités supplémentaires du Connecteur Natif par SQLnCli
  • Problèmes de fonctionnement
  • Cas particulier : SQL Azure
  • Gestion des rubriques calculées
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Connecteur Natif SQL Server : Spécificités et remarques
Présentation
Les paragraphes suivants présentent les remarques générales et les spécificités du Connecteur Natif SQL Server :
Spécificités communes au Connecteur Natif SQL Server par SQLnCli et par DB-Library

Champ Table fichier chargé en mémoire

  • L'ajout d'enregistrements dans un champ Table fichier chargé en mémoire peut être fait uniquement par l'option de saisie en cascade dans les champs Table. La fonction TableEnregistre ne peut pas être utilisée.
  • Les nouveaux enregistrements ajoutés dans un champ Table fichier chargé en mémoire ne peuvent pas être modifiés immédiatement. Pour modifier ces nouveaux enregistrements directement dans le champ Table, il est nécessaire après les ajouts d'utiliser la fonction TableAffiche avec la constante taInit.
Les nouveaux enregistrements ajoutés dans un champ Table fichier chargé en mémoire ne peuvent pas être modifiés immédiatement. Pour modifier ces nouveaux enregistrements directement dans le champ Table, il est nécessaire après les ajouts d'utiliser la fonction TableAffiche avec la constante taInit.

Blocage d'un fichier de données (table) dans une transaction

La fonction HBloqueFichier débute une transaction avant de bloquer la table en mode Exclusif. La fonction HDébloqueFichier valide la transaction et débloque la table.

Numéro d'enregistrement

Il n'est pas possible de spécifier un numéro d'enregistrement différent de zéro dans les fonctions HEcrit et HLit. Le numéro d'enregistrement "zéro" correspond à l'enregistrement en cours.
De même, les fonctions HBloqueNumEnr et HDébloqueNumEnr ne peuvent être utilisées que sur l'enregistrement en cours.

Récupération des types DATEHEURE

  • La précision des valeurs lues et écrites est limitée à la précision du WLangage : la milliseconde.
    Cas particulier : Le type datetime : La précision est limitée par SQLServer à 0.00333 seconde.
  • Les nouveaux types SQLServer 2008 date et time sont gérés uniquement avec la couche client SQLnCLI pour SQL Server 2008. Pour les couches client plus anciennes, ces rubriques sont vues comme des rubriques "texte" (Connecteur Natif via DB-Library) ou "texte unicode" (Connecteur Natif via SQLnCLI).

Options de l'analyse

  • Que les options "Sensible à la casse", "Sensible à l'accentuation", "Sensible à la ponctuation" soient cochées ou non dans l'éditeur d'analyses, la recherche sera toujours sensible à la casse, à l'accentuation et à la ponctuation.
  • Les options de l'analyse concernant les index full-text ne sont pas gérées par le Connecteur Natif.
  • Les options de l'analyse concernant l'indexation partielle des mémos texte ne sont pas gérées par le Connecteur Natif.

Rubriques de type Tableau

Les rubriques de type tableau ne sont pas gérées par le Connecteur Natif. Si vous utilisez une rubrique tableau, seule la valeur de l'indice 1 du tableau sera manipulable avec les fonctions HFSQL (en écriture et en lecture).

Cryptage par SSL

Le cryptage par SSL (Secure Socket Layer) n'est pas supporté dans cette version.

Procédures stockées

Limite : La fonction HPrépareRequêteSQL ne peut pas être utilisée pour préparer une procédure stockée qui renvoie :
  • des enregistrements.
  • des colonnes.
Il est nécessaire d'utiliser la fonction HExécuteRequêteSQL.
Versions 21 et supérieures

Valeurs par défaut des rubriques

Les valeurs par défaut des rubriques sont gérées pour les différents Connecteurs Natifs SQL Server (SQL Server via SQLnCli par OLE DB ou ODBC et SQL Server via DB-Library). Ces valeurs par défaut peuvent être :
  • une valeur,
  • une formule SQL. Dans ce cas, l'expression SQL doit être reconnue par le moteur HFSQL et par la base SQL Server.
Nouveauté 21

Valeurs par défaut des rubriques

Les valeurs par défaut des rubriques sont gérées pour les différents Connecteurs Natifs SQL Server (SQL Server via SQLnCli par OLE DB ou ODBC et SQL Server via DB-Library). Ces valeurs par défaut peuvent être :
  • une valeur,
  • une formule SQL. Dans ce cas, l'expression SQL doit être reconnue par le moteur HFSQL et par la base SQL Server.

Valeurs par défaut des rubriques

Les valeurs par défaut des rubriques sont gérées pour les différents Connecteurs Natifs SQL Server (SQL Server via SQLnCli par OLE DB ou ODBC et SQL Server via DB-Library). Ces valeurs par défaut peuvent être :
  • une valeur,
  • une formule SQL. Dans ce cas, l'expression SQL doit être reconnue par le moteur HFSQL et par la base SQL Server.

Spécificités sur les fonctions HFSQL

Les spécificités pour l'utilisation des fonctions HFSQL avec le Connecteur Natif SQL Server sont les suivantes :
SpécificitésFonctions concernées
La constante hDistinct n'est pas prise en compte : tous les enregistrements (y compris les doublons) sont parcourus.HAvance, HRecule
HLitPrécédent, HLitSuivant
HPrécédent, HSuivant
Requête multi-fichiers
Les fonctions HAjoute, HModifie et HSupprime ne sont pas supportées.
HAjoute, HModifie
HSupprime
Après une erreur de doublons sur la fonction HModifie, la fonction HLit (utilisée avec la constante hNumEnrEnCours) ne lit pas l'enregistrement demandé.
Ce problème sera corrigé dans une prochaine version.
HLit
La constante hForceIdAuto n'est prise en compte avec la fonction HModifie. SQL Server n'autorise pas à modifier une colonne de type "IDENTITY".HModifie
Les options de blocage des fonctions de lecture (HLitRecherche, etc.) ne sont pas prises en compte.Fonctions de lecture (HLitPremier, etc.)
La relecture d'un enregistrement qui a été bloqué par la fonction HBloqueNumEnr le débloque.Fonctions de lecture (HLitPremier, etc.)
La fonction HCréation crée des rubriques DATE et TIME si la version du serveur et de la couche client correspondent au moins à SQLServer 2008.HCréation
Spécificités supplémentaires du Connecteur Natif par DB-Library

Gestion des rubriques UNICODE

  • Les mémos Unicode sont tronqués à 4000 caractères lors de la lecture de la valeur sur la base.
  • Le type de la rubrique dans l'analyse doit correspondre au type défini dans la base de données SQL Server :
    • Une rubrique Unicode dans l'analyse doit correspondre à une rubrique Unicode dans la base.
    • Une rubrique ANSI dans l'analyse doit correspondre à une rubrique ANSI dans la base.
    • Si les types ne correspondent pas :
      • Pour les mémos : si le mémo ANSI de l'analyse est associé à une rubrique Unicode dans la base, le Connecteur Natif demande systématiquement au serveur SQL Server de convertir la rubrique en mémo texte ANSI. Cette conversion est réalisée par le serveur SQL Server et ne tient pas compte de la fonction ChangeAlphabet.
      • Requête utilisant une rubrique (non mémo) ANSI dans l'analyse et une rubrique Unicode dans la base : Une erreur SQL Server est affichée : Il est impossible de renvoyer une donnée Unicode à DB_Library.
      • Requête utilisant une rubrique Unicode dans l'analyse et une rubrique ANSI dans la base : La conversion en Unicode est réalisée par le serveur SQL Server et ne tient pas compte de la fonction ChangeAlphabet.
  • L'Unicode n'est pas géré sur les requêtes "sans correction". Tout accès à une rubrique Unicode provoquera une erreur SQL Server "Il est impossible de renvoyer une donnée Unicode à DB_Library". Il est cependant possible d'utiliser dans la requête la fonction CONVERT pour demander au serveur SQL Server d'effectuer une conversion en ANSI. Par exemple :
    CONVERT(TEXT, MaRubUnicode)

    ou
    CONVERT(VARCHAR(4000), MaRubUnicode)
  • Dans les requêtes SQL, Unicode n'est pas géré dans les requêtes contenant des ordres WLangage et / ou des fonctions SQL (LEFT, CONCAT, ...). Par exemple, la requête suivante provoque une erreur :
    SELECT LEFT(MaRubUnicode, 2) FROM MonFic

Transactions

Dans une transaction, l'exécution d'une requête de modification (INSERT, UPDATE ou DELETE) ou de toute requête avec la constante hRequêteSansCorrection ferme le parcours de la requête précédente (si la requête précédente a été exécutée avec la constante hRequêteSansCorrection).
Cette limitation est due à la couche client : un seul DBPROCESS est concerné par la transaction, ce qui permet un seul contexte d'exécution de requête.
Solutions :
  1. Utiliser le Connecteur Natif via SQLnCli.
  2. Solution avec le Connecteur Natif via DB-Library : Ne pas utiliser la constante hRequêteSansCorrection lors de l'exécution de la première requête (SELECT). Le Connecteur Natif exécutera alors la requête dans un contexte "externe à la transaction". La requête de modification pourra ensuite être exécutée dans le contexte de la transaction sans nécessiter la fermeture du parcours.

Procédures stockées

Le Connecteur Natif SQL Server via DB-Library ne gère pas les procédures stockées renvoyant un "resultset" (résultat d'un SELECT).
Pour exécuter une procédure stockée, cette procédure stockée doit déjà avoir été créée sur le serveur. Il est alors possible de l'exécuter en précisant son nom. Il n'est pas possible de créer une nouvelle procédure stockée avec la fonction HPrépareRequêteSQL.

Type varchar(max), nvarchar(max)

Le Connecteur Natif SQL Server via DB-Library ne gère pas les types varchar(max) et nvarchar(max). L'utilisation d'une table ayant des données de ces types nécessite donc une connexion avec le Connecteur Natif SQL Server via SQLnCli.
Spécificités supplémentaires du Connecteur Natif par SQLnCli

Problèmes de fonctionnement

Lors de l'utilisation de le Connecteur Natif SQL Server via SQLnCli, certaines fonctionnalités telles que le Drag and Drop, les ActiveX ou .NET peuvent ne pas fonctionner.
Pour retrouver un fonctionnement correct, il est conseillé d'ajouter les lignes de code suivantes dans le code d'initialisation du projet :
ChargeDLL("ole32")
API("ole32", "CoInitializeEx", 0, 2)
Versions 16 et supérieures

Cas particulier : SQL Azure

SQL Azure nécessite la présence d'un "clustered index" dans les fichiers.
  • Si vous créez les fichiers de données avec la fonction HCréation, le Connecteur Natif crée automatiquement le "clustered index" si la description du fichier de données contient un identifiant automatique.
  • Si vous créez les fichiers de données avec des requêtes SQL (ou pour ajouter un "clustered index" à un fichier de données existant), consultez la documentation de SQL Azure pour connaître la syntaxe à utiliser.
Nouveauté 16

Cas particulier : SQL Azure

SQL Azure nécessite la présence d'un "clustered index" dans les fichiers.
  • Si vous créez les fichiers de données avec la fonction HCréation, le Connecteur Natif crée automatiquement le "clustered index" si la description du fichier de données contient un identifiant automatique.
  • Si vous créez les fichiers de données avec des requêtes SQL (ou pour ajouter un "clustered index" à un fichier de données existant), consultez la documentation de SQL Azure pour connaître la syntaxe à utiliser.

Cas particulier : SQL Azure

SQL Azure nécessite la présence d'un "clustered index" dans les fichiers.
  • Si vous créez les fichiers de données avec la fonction HCréation, le Connecteur Natif crée automatiquement le "clustered index" si la description du fichier de données contient un identifiant automatique.
  • Si vous créez les fichiers de données avec des requêtes SQL (ou pour ajouter un "clustered index" à un fichier de données existant), consultez la documentation de SQL Azure pour connaître la syntaxe à utiliser.
Versions 21 et supérieures

Gestion des rubriques calculées

Des rubriques calculées peuvent être utilisées dans les fichiers de données.
La gestion des rubriques calculées est disponible uniquement avec SQL Server 2005 minimum via un Connecteur Natif SQL Server via SQLnCli par OLE DB ou ODBC.
Nouveauté 21

Gestion des rubriques calculées

Des rubriques calculées peuvent être utilisées dans les fichiers de données.
La gestion des rubriques calculées est disponible uniquement avec SQL Server 2005 minimum via un Connecteur Natif SQL Server via SQLnCli par OLE DB ou ODBC.

Gestion des rubriques calculées

Des rubriques calculées peuvent être utilisées dans les fichiers de données.
La gestion des rubriques calculées est disponible uniquement avec SQL Server 2005 minimum via un Connecteur Natif SQL Server via SQLnCli par OLE DB ou ODBC.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire