SQLite Problème d'affichage Text et MemoWide
Bonjour,
Je travaille avec RADStudio 10.3 sous windows 10.
Néophyte en SQLite, je viens de migrer (enfin c'est en cours...) mes fichiers données de Paradox à SQLite, j'actualise le programme, enfin j'essaye... La BDD contient une soixantaine de tables avec chacune un Primary_Key, j'ai ensuite indexé toutes les tables. La connexion est établie et j'ai déposé un DataSet et un FDTable sur le DataModule. Le FDTable passe à Active et je récupère le DataSet dans le dBGrid. Jusque là tout va bien.
BDD : Soins10.Sqlite3
Table : Affection Create Table Affection ("Affection" Text Not Null, "Num" Text, PRIMARY_KEY("Affection"))
Problème : lorsque je désire afficher une liste avec un dBGrid (celui de la VCL), dans dBGrid le format de la colonne Affection de Text est affiché MemoWide et aucune données ne s'affiche, ce qui est logique puisque les types ne correspondent pas...
J'ai cherché dans le forum sans succès. Quelqu'un a-t-il déjà rencontré ce problème ?
Patrick
SQLite Problème d'affichage Text et MemoWide
Précisions...
Le champ Affection est, à l'origine un champ texte de 75 caractères. A l'importation dans le fichier CSV, tout est normal, y compris les accents.
SQLite Problème d'affichage Text et MemoWide
Citation:
Envoyé par
ALWEBER
Bonjour, j'avais fait un travail sur le sujet il y a quelques années (Paradox vers autre base), je le retrouve et je te l'envoie
Bonjour AlWeber,
Merci à l'avance et bonne journée.
SQLite Problème d'affichage Text et MemoWide
Citation:
Envoyé par
Paul TOTH
en SQL c'est VARCHAR(75) qu'il faut utiliser
à noter que dans SQLite les types de données sont informatifs, on peut stocker n'importe quoi dans n'importe quel champ....par contre FireDAC va récupérer cette information pour formater les données, donc VARCHAR(75) c'est plus indiqué que TEXT.
Bonjour Monsieur,
J'ai bien noté pour le type de données SQLinte. J'ai donc bien indiqué Text pour le champ Affection. A tout hasard, dans DisplayWidth j'ai indiqué 75...
En double cliquant sur le FDTable dans l'inspecteur d'objet j'ai pu accéder au BlobType afin de le changer de WidMemo en WideString et à l'activation de la table, j'obtiens le message d'erreur "FDTable1 type inadéquat pour le champ affection, attendu WideString, actuel WideMemo". Ce qui laisse penser que FireDac ne "lit" pas le bon type. Par ailleurs, j'obtiens le même résultat en essayant diverses valeurs : variant, FixedWideChar, WideString...
Dans la base de données SQLite, après avoir modifié le type de données d'"Affection" de TEXT à BLOB (Cela me paraissait quelque peu incongru toutefois) à l'activation de la table j'ai reçu un message : Violation d'accès à l'adresse 5005F926 dans le module rtl260.bpl... Je comprends de cette erreur que le type TEXT est donc bien adapté et que c'est un problème FIREDAC.