DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Connecteurs Natifs/Accès Natifs / Connecteur Natif MariaDB
  • Présentation
  • Remarques générales
  • Versions nécessaires
  • Utilisation d'ordres WLangage dans les requêtes SQL
  • Limitations de MariaDB 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 MariaDB
  • Indexation partielle des mémos et indexation full-text
  • Spécificités pour les fonctions HFSQL et les fonctions SQL
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 MariaDB : 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 du Connecteur Natif MariaDB.
Remarques générales

Versions nécessaires

Attention : Cette version du Connecteur Natif MariaDB fonctionne uniquement avec :
  • WINDEV ou WEBDEV 2024.
  • Couche cliente de MariaDB (fichier libmariadb.DLL)
    • Couche Cliente 32 bits pour utiliser le Connecteur Natif MariaDB 32 bits (version 3.x.x à 10.x.x testée).
    • Couche Cliente 64 bits pour utiliser le Connecteur Natif MariaDB 64 bits (version 10.x.x testée).
  • La DLL LibMariaDB.DLL doit être présente :
    • Sur le poste de développement :
      • dans le répertoire "\Programs\Framework\Win32x86" du répertoire d'installation de WINDEV ou WEBDEV (32 bits).
      • dans le répertoire "\Programs\Framework\Win64x86" du répertoire d'installation de WINDEV ou WEBDEV (64 bits).
    • Sur le poste de déploiement, dans le répertoire de l'exécutable ou dans le répertoire de Windows. En cas de déploiement sur un serveur Web, la DLL doit être présente dans le répertoire du Connecteur Natif ou dans le répertoire de Windows.

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 MariaDB version 3.23x

La base de données MariaDB 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 (fonctions 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.

Création de table avec la fonction HCréation

La fonction HCréation crée des tables de type "InnoDB" pour permettre la gestion des blocages et des transactions. Consultez Connecteur Natif MariaDB : Particularités pour plus d'informations.

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.
Pour plus de détails sur les connexions Unicode ou ANSI, consultez Programmation d'une base de données MariaDB avec les fonctions HFSQL.

Connexion avec certificats SSL

Pour l'établissement d'une connexion avec certificat SSL, il est nécessaire de :
  1. Installer une version du serveur MariaDB gérant les connexions SSL. Pour plus de détails, consultez la documentation MariaDB.
  2. Créer les certificats nécessaires.
  3. Etablir une connexion en utilisant les mots-clés suivants dans les informations avancées de la connexion :
    Mot-cléUtilisation
    SSL KeyChemin du fichier de clé.
    SSL CertChemin du fichier de certificat.
    SSL CAChemin du fichier de l'autorité de certification.
    SSL CAPathChemin du répertoire contenant les certificats des autorités de certification SLL reconnues, au format PEM.
    SSL CipherListe des chiffrements autorisés.
Exemple de connexion SSL sur la base CRM du serveur serveurmariadb.domaine.fr :
MaConnexion est une Connexion
 
// Description de la connexion
MaConnexion.Utilisateur = "root"
MaConnexion.MotDePasse = "secret"
MaConnexion.Serveur = "serveurmariadb.domaine.fr"
MaConnexion.BaseDeDonnées = "CRM"
MaConnexion.Provider = hAccèsNatifMariaDB
MaConnexion.Accès = hOLectureEcriture
 
// Description des informations étendues pour une connexion SSL
MaConnexion.InfosEtendues = [
SSL KEY = E:\MySSLCertificates\mariadb.key;
SSL CERT = E:\MySSLCertificates\mariadb_cert.pem;
SSL CA = E:\MySSLCertificates\ca-cert.pem;
SSL CAPATH = E:\MySSLCertificates\CA\
]
 
// Ouverture de la connexion
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 à MariaDB.
Pour plus de détails, consultez la page d'aide Informations optionnelles de connexion.
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.
Consultez Connecteur Natif MariaDB : Particularités pour plus d'informations.

Enregistrements identiques

Le Connecteur Natif MariaDB 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 MariaDB permettant de gérer les ordres BEGIN, COMMIT et ROLLBACK.
Consultez Connecteur Natif MariaDB : Particularités pour plus d'informations.

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 et 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 MariaDB sont automatiquement traitées et importées sous WINDEV et 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 MariaDB

Pour permettre la gestion des rubriques Unicode, les connexions du Connecteur Natif MariaDB 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 MariaDB 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 pour les fonctions HFSQL et les fonctions SQL
Les spécificités pour l'utilisation des fonctions HFSQL et des fonctions SQL avec le Connecteur Natif MariaDB sont les suivantes :
SpécificitésFonctions concernées
Requête multi-fichier :
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 MariaDB, 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 à MariaDB (testé sur les versions 3.23.52-max-nt et 3.23.47-max-nt du serveur MariaDB). 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 MariaDB.
Consultez Connecteur Natif MariaDB : Particularités pour plus d'informations.
HCréation
Version minimum requise
  • Version 20
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 04/07/2023

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