DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Connecteurs Natifs/Accès Natifs / Connecteur Natif Sybase
  • Présentation
  • Remarques générales
  • Version nécessaire
  • Rubriques Unicode
  • Code de page
  • Le blocage d'un fichier se fait dans une transaction
  • Spécifier le timeout d'exécution des requêtes
  • Requêtes de type INSERT et Identifiant automatique
  • Numéro d'enregistrement
  • Spécificités générales
  • Options de l'analyse
  • Rubriques de type Tableau
  • Contexte HFSQL indépendant
  • Enregistrements identiques
  • Blocage des enregistrements
  • Spécificités concernant les fonctions HFSQL
  • Remarques spécifiques à la base de données Sybase
  • Colonne agrégat
  • Colonne de type IDENTITY
  • Sensibilité à la casse des noms de table et de colonne
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
Connecteur Natif Sybase : Spécificités et remarques
Connecteurs Natifs (Accès Natifs)Disponible uniquement avec ce type de connexion
Présentation
Les paragraphes suivants présentent les remarques générales et les spécificités de Connecteur Natif Sybase.
Remarques générales

Version nécessaire

Attention : Cette version du Connecteur Natif Sybase ne fonctionne qu'avec WINDEV et/ou WEBDEV 2024.

Rubriques Unicode

Les rubriques Unicode ne sont pas gérées par le Connecteur Natif Sybase. Il est conseillé d'utiliser des rubriques texte au format Ansi et de réaliser si nécessaire la conversion avec la fonction UnicodeVersAnsi.
La fonction HCréation affichera un message d'erreur lors de la création de fichiers contenant des rubriques au format Unicode.

Code de page

Par défaut le code de page (charset) utilisé par le Connecteur Natif Sybase est cp850. Si le serveur utilise un autre code de page, vous pouvez paramétrer le charset utilisé par le Connecteur Natif.
Le code de page (charset) utilisé par le client Sybase :
  • soit dans WDSYBINS.INI (présent dans le répertoire "C:\Windows") :
    Spécifier le charset à utiliser dans l'entrée 'CHARSET' de la section correspondant au nom du serveur. Par exemple :
    [MARS]
    CHARSET=iso_1
  • soit dans les informations étendues de connexion : CHARSET=iso_1

Le blocage d'un fichier se fait 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.

Spécifier le timeout d'exécution des requêtes

Pour spécifier le timeout d'exécution des requêtes :
  • en mode SQL (fonction SQLExec), il est nécessaire de saisir dans le fichier "WDSYBINS.INI" situé dans le répertoire de Windows la ligne suivante dans l'entrée "[OPTIONS]" :
    TIMEOUT = <Timeout en secondes>
    Par défaut, ce timeout est égal à 60 secondes.
    Pour définir une attente infinie, saisissez la ligne suivante :
    NOWAIT = Y
  • avec les fonctions HFSQL (fonctions HAjoute, HExécuteRequête, ...), il suffit d'indiquer ce timeout dans la fenêtre de description de la connexion utilisée.
Il est également possible de spécifier le timeout d'exécution des requêtes grâce aux options "WD Connect Timeout et "WD Command Timeout" des fonctions HDécritConnexion et HOuvreConnexion.

Requêtes de type INSERT et Identifiant automatique

Les requêtes de type INSERT (créées par programmation ou grâce à l'éditeur de requêtes) ne gèrent pas les identifiants automatiques. Pour utiliser un identifiant automatique, utilisez la fonction HAjoute sur 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.
Spécificités générales

Options de l'analyse

  • 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.
  • 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.

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).

Contexte HFSQL indépendant

La gestion des contextes HFSQL indépendants (case à cocher disponible dans la description des fenêtres et des états) n'est pas disponible dans cette version.

Enregistrements identiques

Le Connecteur Natif Sybase n'est pas capable de différencier deux enregistrements identiques (dont les valeurs de toutes les rubriques sont égales, sans tenir compte des rubriques de type mémo).
En cas de modification ou de suppression d'enregistrement, tous les enregistrements identiques seront modifiés ou supprimés.

Blocage des enregistrements

Les options de blocage (HBlocageEcriture et HBlocageLectureEcriture) sont ignorées sur les fonctions de lecture (HLitXXX, HLitRechercheXXX). Cependant, ces options de blocage peuvent être utilisées avec les fonctions HAjoute et HModifie.
Si un enregistrement est ajouté ou modifié avec une option de blocage, cet enregistrement est bloqué :
  • pour tous les autres utilisateurs
  • pour l'auteur de l'ajout ou de la modification, si les fonctions HLitPremier et HLitRecherchePremier sont utilisées sur cet enregistrement. Si la fonction HLit est utilisée sur ce même enregistrement, l'enregistrement ne sera pas bloqué pour l'auteur de la modification ou de l'ajout.
Remarque : Pour débloquer l'enregistrement (pour tous les utilisateurs), utilisez la fonction HDébloqueNumEnr(hnumEnrEnCours).
Spécificités concernant les fonctions HFSQL
Les spécificités concernant l'utilisation des fonctions HFSQL avec le Connecteur Natif Sybase sont les suivantes :
LimitationsFonctions concernées
La constante hAffecteParcours n'est pas prise en compte. A la fin de l'opération, le parcours continue à partir de l'enregistrement en cours avant l'ajout ou la modification.HAjoute, HModifie
La constante hDistinct n'est pas prise en compte : tous les enregistrements (y compris les doublons) sont parcourus.HAvance, HRecule,
HLitPrécédent, HLitSuivant, HSuivant
Requête multi-fichiers. Les fonctions HAjoute, HModifie et HSupprime ne sont pas supportées.HAjoute
HModifie
HSupprime
Les fonctions HRecherche, HPremier, HSuivant permettent de se positionner sur un enregistrement sans le lire.
Ces fonctions lisent également l'enregistrement.
HRecherche
HPremier
HSuivant
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 pas prise en compte avec la fonction HModifie. Sybase n'autorise pas à modifier une colonne de type "IDENTITY".HModifie
Remarques spécifiques à la base de données Sybase

Colonne agrégat

Une colonne agrégat (SUM, MIN, etc) ne peut pas être utilisée dans une clause WHERE (dans l'éditeur de requêtes, dans les fonctions HFiltre, HLitRecherche, HExécuteRequêteSQL et SQLExec).
Solution de contournement : Pour utiliser une colonne agrégat, il suffit de remplacer la clause WHERE par la clause HAVING GROUP BY.

Colonne de type IDENTITY

En mode SQL (fonctions SQLExec ou HExécuteRequêteSQL), pour insérer une valeur dans une colonne de type IDENTITY, il suffit de :
  • faire précéder la requête de la syntaxe suivante : SET IDENTITY_INSERT <NomTable> ON
  • faire suivre la requête de la syntaxe suivante : SET IDENTITY_INSERT <NomTable> OFF
Par exemple, pour insérer la valeur "12" dans la colonne "IDClient" de la table "Client", utilisez la syntaxe suivante :
SQLExec("SET IDENTITY_INSERT Client ON INSERT INTO Client(IDClient)" + ...
" VALUES (12) SET IDENTITY_INSERT Client OFF", "Req1")

Sensibilité à la casse des noms de table et de colonne

Il est nécessaire de respecter la casse des noms de table et de colonne :
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 18/07/2023

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