|
|
|
|
- Présentation
- Remarques générales
- Versions nécessaires
- Utilisation d'ordres WLangage dans les requêtes SQL
- Limitations de MySQL version 3.23x
- Gestion de fichiers de taille importante
- Requêtes de type INSERT et Identifiant automatique
- Création de table avec la fonction HCréation
- Support de Unicode
- Connexion avec certificats SSL
- Spécificités générales
- Blocage des enregistrements
- Enregistrements identiques
- Transactions
- Rubriques de type SET ou ENUM
- Rubriques de type xBlob
- Rubriques de type Tableau
- Utilisation de requêtes INSERT/UPDATE pour insérer du texte dans une rubrique de type LONGBLOB (mémo binaire) sur MySQL
- Indexation partielle des mémos et indexation full-text
- Spécificités concernant les fonctions HFSQL et les fonctions SQL
Connecteur Natif MySQL : Spécificités et remarques
Disponible uniquement avec ce type de connexion
Les paragraphes suivants présentent les remarques générales et les spécificités du Connecteur Natif MySQL. Versions nécessaires Attention : Cette version du Connecteur Natif MySQL fonctionne uniquement avec : - WINDEV ou WEBDEV 2024.
- Couche cliente de MySQL (fichier LibMySQL.DLL) :
- Couche Cliente 32 bits pour utiliser le Connecteur Natif MySQL 32 bits (version 3.x à 5.x testée).
- Couche Cliente 64 bits pour utiliser le Connecteur Natif MySQL 64 bits (version 5.x testée).
Utilisation d'ordres WLangage dans les requêtes SQL Dans les requêtes SQL, il n'est pas possible d'utiliser des ordres WLangage. Limitations de MySQL version 3.23x La base de données MySQL version 3.23x ne supporte pas : - le Fetch Partiel. L'utilisation du Fetch Partiel avec les fonctions SQL du WLangage a le même effet que si le Fetch Partiel n'était pas utilisé.
- les Unions.
Gestion de fichiers de taille importante Lors de la manipulation de fichiers de taille importante, tous les enregistrements sont chargés en mémoire. Pour réduire l'occupation mémoire, il est conseillé de : - utiliser un filtre (fonction HFiltre) avant d'initialiser un parcours (fonction HLitPremier / HLitDernier, ...)
- utiliser des requêtes dont les conditions de sélection soient suffisamment discriminantes
- éviter les recherches.
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. Support de Unicode Lorsque Unicode est supporté sur la connexion (mode par défaut), le type des rubriques texte des requêtes exécutées avec la constante hRequêteSansCorrection est Unicode. Si une chaîne Unicode est affectée dans une chaîne Ansi, WINDEV et WEBDEV font automatiquement la conversion en utilisant l'alphabet défini avec la fonction ChangeAlphabet. Si la connexion est ANSI (option "WD Unicode Support = 0" dans les informations étendues spécifiées avec les fonctions HDécritConnexion ou HOuvreConnexion), le type des rubriques texte des requêtes exécutées avec la constante hRequêteSansCorrection est ANSI. Connexion avec certificats SSL Pour l'établissement d'une connexion avec certificat SSL, il est nécessaire de : - Installer une version du serveur MySQL gérant les connexions SSL. Pour plus de détails, consultez la documentation MySQL.
- Créer les certificats nécessaires.
- Etablir une connexion en utilisant les mots-clés suivants dans les informations avancées de la connexion :
| | Mot-clé | Utilisation |
---|
SSL Key | Chemin du fichier de clé. | SSL Cert | Chemin du fichier de certificat. | SSL CA | Chemin du fichier de l'autorité de certification. | SSL CAPath | Chemin du répertoire contenant les certificats des autorités de certification SLL reconnues, au format PEM. | SSL Cipher | Liste des chiffrements autorisés. |
Exemple de connexion SSL sur la base CRM du serveur serveurmysql.domaine.fr :
MaConnexion est une Connexion
MaConnexion.Utilisateur = "root"
MaConnexion.MotDePasse = "secret"
MaConnexion.Serveur = "serveurmysql.domaine.fr"
MaConnexion.BaseDeDonnées = "CRM"
MaConnexion.Provider = hAccèsNatifMySQL
MaConnexion.Accès = hOLectureEcriture
MaConnexion.InfosEtendues = [
SSL KEY = E:\MySSLCertificates\mysql.key;
SSL CERT = E:\MySSLCertificates\mysql_cert.pem;
SSL CA = E:\MySSLCertificates\ca-cert.pem;
SSL CAPATH = E:\MySSLCertificates\CA\
]
HOuvreConnexion(MaConnexion)
Remarque : Ces paramètres correspondent aux paramètres de même nom de la fonction mysql_ssl_set de l'API C d'accès à MySQL. Spécificités générales Blocage des enregistrements Les options de blocage (constantes hBlocageEcriture et hBlocageLectureEcriture) utilisables avec les fonctions HFSQL ne sont pas gérées dans cette version. Enregistrements identiques Le Connecteur Natif MySQL 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. Transactions Pour gérer les transactions, il est nécessaire d'utiliser un type de la table MySQL permettant de gérer les ordres BEGIN, COMMIT et ROLLBACK. Rubriques de type SET ou ENUM Les rubriques de type SET ou ENUM sont automatiquement traitées et importées sous forme de mémo texte sous WINDEV/WEBDEV. En effet les rubriques de type SET ou ENUM n'ont pas d'équivalence en HFSQL. Elles contiennent des valeurs numériques (indices) qui correspondent à des valeurs "texte". Ce sont ces valeurs "texte" qui sont importées. Rubriques de type xBlob Les rubriques de type xBlob sous MySQL sont automatiquement traitées et importées sous WINDEV/WEBDEV : - les rubriques BLOB sont importées sous forme de rubriques de type mémo binaire.
- les rubriques LONGTEXT sont importées sous forme de rubriques de type mémo texte.
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). Utilisation de requêtes INSERT/UPDATE pour insérer du texte dans une rubrique de type LONGBLOB (mémo binaire) sur MySQL Pour permettre la gestion des rubriques Unicode, les connexions du Connecteur Natif MySQL sont ouvertes en UTF8 : toutes les requêtes et les données sont échangées en UTF8 avec le serveur. Le serveur convertit la requête et les valeurs dans l'alphabet (charset) correspondant à chaque colonne, sauf dans le cas d'une rubrique LONGBLOB (mémo binaire) : dans ce cas, la valeur est insérée telle qu'elle. Pour une rubrique LONGBLOB : - si la connexion est ANSI, la valeur texte insérée est ANSI.
- si la connexion est UTF8, la valeur texte insérée est UTF8, ce qui peut poser un problème de compatibilité avec l'existant.
Pour ne pas avoir ce problème de conversion en UTF8, il est possible : Indexation partielle des mémos et indexation full-text L'indexation partielle des mémos ainsi que l'indexation full-text ne sont pas prises en compte : - lors de l'importation des tables MySQL dans l'analyse.
- lors de l'utilisation de la fonction HCréation.
Si ces fonctionnalités sont définies dans l'analyse, elles seront prises en compte uniquement lors de l'exécution de requêtes SQL (avec la constante hRequêteSansCorrection) utilisant les fonctions SQL "CREATE TABLE" et "MATCH AGAINST". Spécificités concernant les fonctions HFSQL et les fonctions SQL Les spécificités concernant l'utilisation des fonctions HFSQL et des fonctions SQL avec le Connecteur Natif MySQL sont les suivantes : | | Limitations | Fonctions concernées |
---|
Requête multi-fichier (jointure) : - Les fonctions HAjoute, HModifie et HSupprime ne sont pas supportées.
- Champ Table basé sur une requête multi-fichier (jointure) : Les fonctions HAjoute, HModifie et HSupprime ne sont pas supportées.
| HAjoute HModifie HSupprime | Les recherches réalisées sur certaines requêtes complexes avec la fonction HLitRecherche* peuvent échouer dans cette version. Ce problème sera corrigé dans une prochaine version. | HLitRecherche, HLitRecherchePremier, HLitRechercheDernier | Lors de l'utilisation du Connecteur Natif MySQL, il est nécessaire de préciser la "DataBase" utilisée. Si vous utilisez la fonction HConnecte, la "dataBase" doit être spécifiée dans les informations complémentaires de la manière suivante : "initial catalog = NomDataBase" | HConnecte | En création de tables avec la fonction HCréation, les noms des tables ne doivent pas contenir d'accent (Exemple : "FichierAccentué"). Ceci est un problème interne à MySQL (testé sur les versions 3.23.52-max-nt et 3.23.47-max-nt du serveur MySQL). L'exécution de l'ordre SQL "DROP TABLE", effectuée par HCréation pour supprimer la table si elle existe déjà , peut provoquer un arrêt inopiné du serveur MySQL. Consultez Connecteur Natif MySQL : Particularités pour plus d'informations. | HCréation |
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|