<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.visual-prolog.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gildas+Menier</id>
	<title>wiki.visual-prolog.com - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.visual-prolog.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gildas+Menier"/>
	<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Special:Contributions/Gildas_Menier"/>
	<updated>2026-04-18T09:29:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=3rd:QDBM&amp;diff=866</id>
		<title>3rd:QDBM</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=3rd:QDBM&amp;diff=866"/>
		<updated>2008-01-11T13:03:17Z</updated>

		<summary type="html">&lt;p&gt;Gildas Menier: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Written by Gildas Menier.&lt;br /&gt;
&lt;br /&gt;
For the management of key-&amp;gt;values in Visual Prolog, you may use factsDB, chainDB or some sql based solution. Each solution has benefits and drawbacks. &lt;br /&gt;
&lt;br /&gt;
Mikio Hirabayashi has built a very nice API called &amp;#039;QDBM&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
http://qdbm.sourceforge.net/ &lt;br /&gt;
&lt;br /&gt;
see also http://qdbm.sourceforge.net/benchmark.pdf &lt;br /&gt;
&lt;br /&gt;
QDBM is well known in the Unix world, but has been ported to Win32. Practically, it is a disk-based Hashtable + Binary tree + inverted list package. QDBM offers many solutions called &amp;#039;depot&amp;#039;, &amp;#039;curia&amp;#039;, &amp;#039;villa&amp;#039;, &amp;#039;odeum&amp;#039; and is well worth a look if you want to manage large amount of data. &lt;br /&gt;
&lt;br /&gt;
In the enclosed project, you&amp;#039;ll find a small &amp;#039;depot&amp;#039; wrapper for Visual Prolog. &lt;br /&gt;
&lt;br /&gt;
The example creates 1.000.000 (key, values) and then ask for 1.000.000 keys at random. All the key/values are stored on disk in a single file. &lt;br /&gt;
&lt;br /&gt;
Using a collection of instances of the visual prolog class &amp;#039;depot&amp;#039;, you can manage a very large hashtable on disk. &lt;br /&gt;
&lt;br /&gt;
Only the port of depot is functional in this lib. &lt;br /&gt;
&lt;br /&gt;
The provided set of predicates stays relatively close to the original API syntax: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;NewDepot = depot::new(&amp;quot;dtest&amp;quot;), % create a depot db&lt;br /&gt;
NewDepot:dbopen(&amp;quot;create&amp;quot;), % open it (create mode)&lt;br /&gt;
NewDepot:dbput_string(Key, Value), % put a key,value&lt;br /&gt;
NewDepot:dbclose(), % close the file&amp;lt;/vip&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
and you can access the db as follows: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;ReadDepot = depot::new(&amp;quot;dtest&amp;quot;), % &lt;br /&gt;
ReadDepot:dbopen(&amp;quot;read&amp;quot;), % open it in read mode&lt;br /&gt;
Value = ReadDepot:dbget_string(Key), % tries to find the value for a key, fails if no value&lt;br /&gt;
ReadDepot:dbclose(), %&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More predicates are provided. Please, have a look on the documentation of QDBM/depot and on the depot.pro file. &lt;br /&gt;
&lt;br /&gt;
The project doesn&amp;#039;t include a copy of qdbm (because of the allowed posting size); you should download the most up-to-date version on the site above. It is provided under the GNU Lesser GPL. &lt;br /&gt;
Just copy the three following files into your exe directory:&lt;br /&gt;
&lt;br /&gt;
* libiconv-2.dll &lt;br /&gt;
* mgwz.dll &lt;br /&gt;
* qdbm.dll &lt;br /&gt;
&lt;br /&gt;
you will find the package there: &lt;br /&gt;
&lt;br /&gt;
http://qdbm.sourceforge.net/win/&lt;br /&gt;
&lt;br /&gt;
Example project/download in [http://discuss.visual-prolog.com/viewtopic.php?t=6594 Discussion forum: (how to) deal with large amounts of (key,value)]&lt;/div&gt;</summary>
		<author><name>Gildas Menier</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=File:Binding_to_C-Euclidian_distance.gif&amp;diff=740</id>
		<title>File:Binding to C-Euclidian distance.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=File:Binding_to_C-Euclidian_distance.gif&amp;diff=740"/>
		<updated>2007-12-17T00:05:25Z</updated>

		<summary type="html">&lt;p&gt;Gildas Menier: Binding to C: Euclidian distance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Binding to C: Euclidian distance&lt;/div&gt;</summary>
		<author><name>Gildas Menier</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=File:Binding_to_C-Adding_MSVCR.LIB_to_the_project.gif&amp;diff=739</id>
		<title>File:Binding to C-Adding MSVCR.LIB to the project.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=File:Binding_to_C-Adding_MSVCR.LIB_to_the_project.gif&amp;diff=739"/>
		<updated>2007-12-17T00:04:45Z</updated>

		<summary type="html">&lt;p&gt;Gildas Menier: Binding to C: Adding MSVCR.LIB to the project&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Binding to C: Adding MSVCR.LIB to the project&lt;/div&gt;</summary>
		<author><name>Gildas Menier</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=File:Binding_to_C-Adding_mylib.lib_to_the_project.gif&amp;diff=738</id>
		<title>File:Binding to C-Adding mylib.lib to the project.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=File:Binding_to_C-Adding_mylib.lib_to_the_project.gif&amp;diff=738"/>
		<updated>2007-12-17T00:03:54Z</updated>

		<summary type="html">&lt;p&gt;Gildas Menier: Binding to C: Adding_mylib.lib to the project&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Binding to C: Adding_mylib.lib to the project&lt;/div&gt;</summary>
		<author><name>Gildas Menier</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=File:Binding_to_C-Project_tree.gif&amp;diff=737</id>
		<title>File:Binding to C-Project tree.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=File:Binding_to_C-Project_tree.gif&amp;diff=737"/>
		<updated>2007-12-16T23:58:23Z</updated>

		<summary type="html">&lt;p&gt;Gildas Menier: Binding to C: Project tree&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Binding to C: Project tree&lt;/div&gt;</summary>
		<author><name>Gildas Menier</name></author>
	</entry>
</feed>