<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - SQLite</title>
		<link>https://www.developpez.net/forums/</link>
		<description><![CDATA[Forum d'entraide SQLite]]></description>
		<language>fr</language>
		<lastBuildDate>Tue, 14 Apr 2026 16:14:19 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.png</url>
			<title>Forum du club des développeurs et IT Pro - SQLite</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title>Base SQLite exportée de GRamps</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2181731&amp;goto=newpost</link>
			<pubDate>Mon, 26 Jan 2026 12:04:03 GMT</pubDate>
			<description>Bonjour, 
Ceci est en quelque...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
Ceci est en quelque sorte une bouteille à la mer après avoir chercher moulte et moulte solutions...<br />
J'utilise aujourd'hui Gramps, logiciel de généalogie. Malheureusement ce logiciel s'est éloigné de la norme Gedcom ce qui fait que l'export Gedcom de Gramps  ne reflète plus les données généalogiques contenues dans un arbre Gramps. Pour un certain nombre de données issues de Gramps (sources notes etc..) il  est impossible d'exporter tout ce qu'on veut sauvegarder.<br />
L'export csv de Gramps est ainsi très limité. Une exportation sqlite3 existe mais si on accède à des tables le contenu reste très lié au code python d'origine de Gramps: usage de Handles voire de listes de Handles. Si on n'a pas  Gramps on ne peut actuellement récupérer l'arbre exporté dans un outil Sqlite. Aller trouver certaines données comme des dates  si on ne sait pas traduire les handle qui servent de clé.<br />
Le handle ou poignée contient le résultat complexe d'une fonction  spécifique  du code code python Gramps: les données parmi les plus essentielles en généalogie (n° de clé comme dates...) se retrouvent sous forme d'une longue liste de signes cabalistiques incompréhensibles. je pense avoir compris que les développeurs de Gramps n'ont pas envie  de faire voire ne savent pas faire une base Sqlite dont les champs soient bien visibles et clairs. Il y a même des listes de Handle.<br />
Le code python est accessible. Je peux lire ayant été informaticien mais je reste limité dans ma compréhension de ces handle dont l'usage en programmation m'était inconnu.<br />
Aujourd'hui je voudrais seulement pouvoir récupérer une base de données Sqlite dont les champs soient clairs et  directement visibles; Sinon la base n'est pas réutilisable en l'état.<br />
Est-il possible  de la transformer  d'une façon ou l'autre pour  avoir au moins des données claires et réutilisables.<br />
La base sqlite actuellement exportée  par Gramps est trop proche du code python comme rien n'a été &quot;traduit&quot; du code.<br />
Je ne veux que récupérer mes données dans des feuilles Calc  au travers de fichiers csv pour voir réutiliser toutes les données et notamment vérifier la saisie  faite dans Gramps.<br />
Actuellement je suis contraint de saisir deux fois: une fois dans mes feuilles Calc une fois dans Gramps. C'est très long à faire puisqu'il n'y a pas d'exportation au top...dans Gramps du type:ce que je vois dans le logiciel est exporté avec les liens possibles.<br />
Programmer un outil Python qui puisse faire la chose serait pour moi long d'autant que je suis loin de ma^triser toutes les subtilités de Python même si je peux comprendre un code...<br />
Si je ne trouve pas un autre solution simple et à ma portée je serai contraint d'abandonner Gramps ou de continuer la double saisie ce qui aboutirait à simuler une extension Libreoffice utilisant une base sqlite et générant la base sqlite  importable dans Gramps...Pas simple non plus...<br />
Je suis sans doute éloigné en plus de la pragramamton depuis trop longtemps en plus car la géénalogie c'est aussi chronophage.<br />
Je doute que la solution même si elle peut exister s'impose d'elle même. J'ai testé déjà la solution Oxy-gen ou Visuged mais là aussi il y a du &quot;pas bien marche&quot; à résoudre. Je devrai être capable de résoudre la piste Oxy-gen qui permet en principe de récupérer en grande partie le contenu d'un fichier gedcom mais il faudrait de toute façon ajouter  les données en grande partie &quot;oubliées &quot; dans l'exportation Gedcom de Gramps.<br />
Si quelqu'un peut apporter des lumières...Si je peux au moins lire le contenu d'un handle à la main et pouvoir en tirer les données qui me manquent. Je teste les solutions possibles toujours avec le même jeu d'essai tiré d'une des exportations de  Gramps. MA connaissance de Gramps n'est pas assez poussée pour pouvoir  tirer du logiciel les rapports texte qui peuvent exister et je doute que toutes les données saisies y soient en plus...<br />
Un coup d epouce ne serait pas de trop.<br />
Dois-je vraiment considere l'exportation sqlite de  Gramps comme une autre façon de sauvegarder sa base sans avoir accés réellement au contenu  sans utiliser Gramps.<br />
La base SQlite d'heredis (sauvegarde Heredis) semble plus claire mais il y a 7 à 8 fois plus de tables à parcourir...<br />
Dans un cas comme dans l'autre la base n'est pas une base généalogique universelle mais celle du logiciel incluant ses spécificités liées au code utilisé. je ne veux pas pirater un code seulement récupérer mes données sous forme texte au lieu d'être contraint à la double saisie... Heredis  a l'avantage de permettre une saisie rapide mais comme ca sort de la norme gedcom son gedcom n'est pas intégrable dans les autres logiciels tel quel(trop de modifs à faire). je suis passer à Gramps en grande partie pour ça et je me retrouve un peu dans la même situation: pas d'exportation complete possible en fichiers texte (csv).<br />
Pour faire simple quand on peut faire compliquer... En tant que développeur, j'ai eu à transférer des bases de données en fichier texte (csv) très souvent dans beaucoup de domaines: il y avait même des formats professionnels (EDI...). La généalogie semble aujourd'hui réfractaire. je trouve ça bien étrange mais on est déjà à l'époque de l'IA, ceci expliquant sans doute cela.<br />
Je veux juste savoir si je pourrai ou non facilement récupérer toutes mes données facilement sous la forme de fichiers texte structuré. SI cela n'est pas possible, je serai contraint de continuer à  ressaisir ce qui est toujours  trop long. En plus je suis contraint à terme de  me faire là nouveau linuxien, ce qui limite les logiciels de généalogie. <br />
Ils me semblent pleins de contraintes au lieu d'aider les utilisateurs.<br />
Merci de votre collaboration,<br />
GFM</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f154/bases-donnees/autres-sgbd/sqlite/">SQLite</category>
			<dc:creator>gmigout178</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2181731/bases-donnees/autres-sgbd/sqlite/base-sqlite-exportee-gramps/</guid>
		</item>
		<item>
			<title>SQLCipher + FireDac</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2178333&amp;goto=newpost</link>
			<pubDate>Wed, 30 Jul 2025 10:15:13 GMT</pubDate>
			<description>Bonjour, 
 
Avec Delphi 12,...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Avec Delphi 12, on développe une application qui utilise des bases SQLite. On souhaite crypter ces bases et on évalue les différentes possibilités.<br />
J'ai évalué les composants UniDac qui proposent de crypter/décrypter facilement les bases et maintenant je veux évaluer SQLCipher.<br />
<br />
La compilation de SQLCipher étant un peu plus complexe :mur: que la compilation de SQLite, j'ai opté pour le téléchargement d'une DLL SqlCipher 32 bits.<br />
<br />
Dans mon projet Delphi, j'ai les composants TFDConnection et TFDPhysSQLiteDriverLink de FireDac que je paramètre pour l'ouverture de ma base _FileName:<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br /></div></td><td valign="top"><pre style="margin: 0">  <span style="color: #0000ff;">with</span> FDConnection do
  <span style="color: #0000ff;">begin</span>
      // Chemin DLL SQLite sp&eacute;cifique
      var CustomSQLiteDllPath := <span style="color: #FF0000;">'C:<span style="color: #800000;">\d</span>ev<span style="color: #800000;">\P</span>rojet UniDac<span style="color: #800000;">\s</span>qlite3_cipher_86.dll'</span>;
      FDPhysSQLiteDriverLink1.EngineLinkage := slDynamic;
      FDPhysSQLiteDriverLink1.VendorLib:= CustomSQLiteDllPath ;
&nbsp;
      <span style="color: #0000ff;">with</span> Params do
      <span style="color: #0000ff;">begin</span>
        Clear ;
        <span style="color: #0000ff;">Add</span><span class="br0">&#40;</span><span style="color: #FF0000;">'DriverID=Sqlite'</span><span class="br0">&#41;</span> ;
        <span style="color: #0000ff;">Add</span><span class="br0">&#40;</span><span style="color: #FF0000;">'Database='</span>+_FileName<span class="br0">&#41;</span>;
        <span style="color: #0000ff;">Add</span><span class="br0">&#40;</span><span style="color: #FF0000;">'EnableBCD=False'</span><span class="br0">&#41;</span> ;
        <span style="color: #0000ff;">Add</span><span class="br0">&#40;</span><span style="color: #FF0000;">'StringFormat=Unicode'</span><span class="br0">&#41;</span> ;
        <span style="color: #0000ff;">Add</span><span class="br0">&#40;</span><span style="color: #FF0000;">'LockingMode=Normal'</span><span class="br0">&#41;</span>;
        <span style="color: #0000ff;">Add</span><span class="br0">&#40;</span><span style="color: #FF0000;">'Synchronous=Normal'</span><span class="br0">&#41;</span>;
        <span style="color: #0000ff;">Add</span><span class="br0">&#40;</span><span style="color: #FF0000;">'BlobSize=-1'</span><span class="br0">&#41;</span>;
        <span style="color: #0000ff;">Add</span><span class="br0">&#40;</span><span style="color: #FF0000;">'CommitRetain=False'</span><span class="br0">&#41;</span>;
        <span style="color: #0000ff;">Add</span><span class="br0">&#40;</span><span style="color: #FF0000;">'WaitOnLocks=True'</span><span class="br0">&#41;</span>;
        <span style="color: #0000ff;">Add</span><span class="br0">&#40;</span><span style="color: #FF0000;">'Trim Char=False'</span><span class="br0">&#41;</span>;
      <span style="color: #0000ff;">end</span>;
<span style="color: #0000ff;">end</span>;</pre></td></tr></table></code><hr />
</div>Lors de l'exécution j'ai une erreur qui indique un problème de présence de la DLL et/ou un problème d'architecture (x64/x86):<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br /></div></td><td valign="top"><pre style="margin: 0">classe d<span style="color: #FF0000;">'exception EFDException avec le message '</span><span style="color: black;">[FireDAC]</span><span style="color: black;">[Phys]</span><span style="color: black;">[SQLite]</span>-<span style="color: #cc66cc;">314</span>. Impossible de charger la biblioth&egrave;que du fournisseur <span style="color: black;">[C:\dev\Projet UniDac\sqlite3_cipher_86.dll]</span>. Le module sp&eacute;cifi&eacute; est introuvable
Conseil : v&eacute;rifiez qu<span style="color: #FF0000;">'il est dans le PATH ou dans les r&eacute;pertoires EXE de l'</span>application et qu<span style="color: #FF0000;">'il a un nombre de bits de x86.'</span>.</pre></td></tr></table></code><hr />
</div>--&gt; Je pensais que l'application ne trouvait pas la DLL. Pour test, j'ai supprimé la DLL de mon répertoire et à l'exécution j'ai le message classique qui indique que la DLL n'est pas présente:<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">Le projet Project1.exe a d&eacute;clench&eacute; la classe d<span style="color: #FF0000;">'exception EFOpenError avec le message '</span>Impossible d<span style="color: #FF0000;">'ouvrir le fichier &quot;C:<span style="color: #800000;">\d</span>ev<span style="color: #800000;">\P</span>rojet UniDac<span style="color: #800000;">\s</span>qlite3_cipher_86.dll&quot;. Le fichier sp&eacute;cifi&eacute; est introuvable'</span>.</code><hr />
</div>La DLL téléchargée est 32bits.<br />
<br />
Je ne comprends pas cette erreur... Dois-je paramétrer autrement TFDConnection pour que cela fonctionne ? <br />
<br />
Merci pour vos conseils.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f154/bases-donnees/autres-sgbd/sqlite/">SQLite</category>
			<dc:creator>lefju cabro</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2178333/bases-donnees/autres-sgbd/sqlite/sqlcipher-p-firedac/</guid>
		</item>
		<item>
			<title>SQLite - Ajouter une valeur dans une cellule sans remplacer la valeur déjà présente</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2178208&amp;goto=newpost</link>
			<pubDate>Wed, 23 Jul 2025 09:11:23 GMT</pubDate>
			<description>Bonjour, 
Je trouve la...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
Je trouve la requête SQL UPDATE permettant de modifier le contenu d'une cellule, mais je ne parviens pas à trouver la requête permettant de compléter le contenu d'une cellule sans écraser ce dernier.<br />
Par exemple, la cellule contient déjà une année (2025) et je souhaite compléter cette cellule avec le mois (janvier) pour obtenir (2025 janvier).<br />
Je vous remercie si vous pouvez me guider dans la rédaction de cette forme de requête.<br />
<br />
AJOUT :<br />
<br />
Je fais une recherche sur internet, et je trouve la réponse suivante reprenant mon propre exemple proposé sur ce forum quelques heures plus tôt !!!!!!<br />
Je mets ici la réponse donnée, si d'autres personnes venaient à se poser la même question.<br />
Je n'ai pas encore testé. <br />
<div class="bbcode_container">
	<div class="bbcode_description">Citation:</div>
	<div class="bbcode_quote printable">
		<hr />
		
			Compléter le contenu d'une cellule sans l'écraser dans SQLite<br />
<br />
Pour ajouter une valeur à une cellule existante sans la remplacer, vous pouvez utiliser la fonction de concaténation dans une requête UPDATE. En SQLite, la syntaxe pour concaténer deux chaînes est simplement l'opérateur ||.<br />
<br />
Exemple pratique :<br />
Supposons que vous avez une table ma_table avec une colonne ma_colonne, et que cette colonne contient déjà une année, par exemple 2025. Vous souhaitez ajouter le mois &quot;janvier&quot; pour obtenir 2025 janvier.<br />
<br />
La requête SQL sera la suivante :<br />
<br />
UPDATE ma_table<br />
SET ma_colonne = ma_colonne || ' ' || 'janvier'<br />
WHERE condition; -- à préciser selon votre contexte<br />
<br />
Explication :<br />
<br />
    ma_colonne || ' ' || 'janvier' : concatène la valeur existante dans ma_colonne avec un espace et la nouvelle valeur 'janvier'.<br />
    Cela permet de compléter la contenu sans écraser la valeur déjà présente.<br />
<br />
Note importante :<br />
<br />
    Si la cellule est vide ou NULL, il peut être utile d'utiliser la fonction COALESCE pour éviter d'obtenir NULL dans la concaténation :<br />
<br />
UPDATE ma_table<br />
SET ma_colonne = COALESCE(ma_colonne, '') || ' ' || 'janvier'<br />
WHERE condition;<br />
<br />
Cela garantit que si la cellule est vide ou NULL, la concaténation fonctionne correctement.<br />
<br />
Résumé :<br />
Pour compléter le contenu d'une cellule dans SQLite sans la remplacer, utilisez l'opérateur de concaténation || dans une requête UPDATE.
			
		<hr />
	</div>
</div>AJOUT 2 :<br />
<br />
Cette requête fonctionne :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><span style="color: #0000ff;">UPDATE</span> calendrier <span style="color: #0000ff;">SET</span> Annee =  COALESCE<span class="br0">&#40;</span>Annee, <span style="color: #FF0000;">''</span><span class="br0">&#41;</span> || <span style="color: #FF0000;">' '</span> || COALESCE<span class="br0">&#40;</span>Mois, <span style="color: #FF0000;">''</span><span class="br0">&#41;</span> <span style="color: #0000ff;">WHERE</span> ID = <span style="color: #cc66cc;">10</span></code><hr />
</div></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f154/bases-donnees/autres-sgbd/sqlite/">SQLite</category>
			<dc:creator>GuyMH</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2178208/bases-donnees/autres-sgbd/sqlite/sqlite-ajouter-cellule-remplacer-deja-presente/</guid>
		</item>
		<item>
			<title>Master/Detail avec SQLite en Firedac</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2178162&amp;goto=newpost</link>
			<pubDate>Sun, 20 Jul 2025 14:01:32 GMT</pubDate>
			<description>Bonjour, 
 
Je gualère depuis...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je gualère depuis un bon moment sur l'update d'une table détail en SQL sur une base SQLite.<br />
Lorsque je clique sur le bouton de sauvegarde pour la mise à jour d'une ligne de la table &quot;Service-Contrat&quot;, j'ai une erreur sans message qui stope la procédure.<br />
Je n'ai aucune idée d'où vient mon erreur.<br />
Je m'en remets donc aux spécialistes de Delphi.<br />
Merci par avance de me débloquer. <br />
François<br />
<br />
<a href="https://www.developpez.net/forums/attachments/p668882d1753019829/bases-donnees/autres-sgbd/sqlite/master-detail-sqlite-firedac/master-detail.zip/"  title="Nom : Master-Detail.zip
Affichages : 66
Taille : 2,00 Mo">Master-Detail.zip</a></div>


	<div style="padding:10px">

	

	

	

	
		<fieldset class="fieldset">
			<legend>Fichiers attachés</legend>
			<ul>
			<li>
	<img class="inlineimg" src="https://forum.developpez.be/images/attach/zip.gif" alt="Type de fichier : zip" />
	<a href="https://www.developpez.net/forums/attachments/p668882d1753019829/bases-donnees/autres-sgbd/sqlite/master-detail-sqlite-firedac/master-detail.zip/">Master-Detail.zip</a> 
(2,00 Mo)
</li>
			</ul>
		</fieldset>
	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f154/bases-donnees/autres-sgbd/sqlite/">SQLite</category>
			<dc:creator>linuxien08</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2178162/bases-donnees/autres-sgbd/sqlite/master-detail-sqlite-firedac/</guid>
		</item>
	</channel>
</rss>
