<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: xLITE &#8211; Excel/Proto SQLite utility</title>
	<atom:link href="http://blog.gobansaor.com/projects/xlite/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.gobansaor.com</link>
	<description>A country datasmith.</description>
	<lastBuildDate>Tue, 16 Mar 2010 02:39:17 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Tom Gleeson</title>
		<link>http://blog.gobansaor.com/projects/xlite/#comment-4830</link>
		<dc:creator>Tom Gleeson</dc:creator>
		<pubDate>Tue, 23 Dec 2008 09:58:01 +0000</pubDate>
		<guid isPermaLink="false">http://gobansaor.wordpress.com/projects/xlite/#comment-4830</guid>
		<description>@ T Jensen

The xLite code should be looked as an example of using the Pivitol Solutions SQLite Wrapper not as a library. The example in this case is joining two ranges (or Proto EntrySets) using SQL in either an inner or outer join with an optional block of SQLite commands to follow.

xLiteExecute(DatabaseName As String, joinOuter As Boolean, tableA As Variant, tableB As Variant, stmtTable As Variant, outStruct As Variant, outSelectStmt As String, outError As String) As Long

DatabaseName: the name of the SQLite database to use, if left blank, uses an in-memory database.
joinOuter: if true performs a left outer join
tableA: the range pointing at the first (left) &quot;table&quot;
tableB: the range pointing at the right table
stmtTable: (optional) range pointing a list of SQLite commands to execute after the successful join
outStruct: the resulting joined table is output to this variant array (or EntrySet in Proto)
outSelectStmt: the actual SQL statement used to perform the join, for debugging or educational purposes
outError: what error if any

The function also sets a number of views (again most likely of use for educational purposes):
joinABView = based on the last successful join SQL be it inner or outer
innerJoinABView = as above but as an inner join
outerJoinABView = this time as an outer join

Think of the code as educational rather than a solution; if you need a more traditional library then...

A good option might be the Polish litex
http://www.assembla.com/wiki/show/litex , open source.

The closest to ADO style functionality would be dhSQLite (from Germany
http://www.thecommon.net/2.html ), it&#039;s not open source but it&#039;s free
and top class.

There&#039;s also http://www.sqliteplus.com/, not free, but also very good.

If you have basic C skills and you&#039;d like to roll-your-own VBA
friendly SQLite library, try http://tannertech.net/sqlite3vb/.

I use none of the above, wedded as I am to the old but venerable
Pivotal Solutions wrapper (no longer maintained, link dead but can be
downloaded from http://www2.gobansaor.com/xLite/pssqlite.dll ).  This
is a low level wrapper, but I like it as it wraps the sqlite3.dll
rather than recompiling the library and it&#039;s simple enough that I can
maintain it myself with my somewhat limited c skillset. Not
everybody&#039;s cup of tea though.

There&#039;s a whole bunch of others over on
http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers

Tom</description>
		<content:encoded><![CDATA[<p>@ T Jensen</p>
<p>The xLite code should be looked as an example of using the Pivitol Solutions SQLite Wrapper not as a library. The example in this case is joining two ranges (or Proto EntrySets) using SQL in either an inner or outer join with an optional block of SQLite commands to follow.</p>
<p>xLiteExecute(DatabaseName As String, joinOuter As Boolean, tableA As Variant, tableB As Variant, stmtTable As Variant, outStruct As Variant, outSelectStmt As String, outError As String) As Long</p>
<p>DatabaseName: the name of the SQLite database to use, if left blank, uses an in-memory database.<br />
joinOuter: if true performs a left outer join<br />
tableA: the range pointing at the first (left) &#8220;table&#8221;<br />
tableB: the range pointing at the right table<br />
stmtTable: (optional) range pointing a list of SQLite commands to execute after the successful join<br />
outStruct: the resulting joined table is output to this variant array (or EntrySet in Proto)<br />
outSelectStmt: the actual SQL statement used to perform the join, for debugging or educational purposes<br />
outError: what error if any</p>
<p>The function also sets a number of views (again most likely of use for educational purposes):<br />
joinABView = based on the last successful join SQL be it inner or outer<br />
innerJoinABView = as above but as an inner join<br />
outerJoinABView = this time as an outer join</p>
<p>Think of the code as educational rather than a solution; if you need a more traditional library then&#8230;</p>
<p>A good option might be the Polish litex<br />
<a href="http://www.assembla.com/wiki/show/litex" rel="nofollow">http://www.assembla.com/wiki/show/litex</a> , open source.</p>
<p>The closest to ADO style functionality would be dhSQLite (from Germany<br />
<a href="http://www.thecommon.net/2.html" rel="nofollow">http://www.thecommon.net/2.html</a> ), it&#8217;s not open source but it&#8217;s free<br />
and top class.</p>
<p>There&#8217;s also <a href="http://www.sqliteplus.com/" rel="nofollow">http://www.sqliteplus.com/</a>, not free, but also very good.</p>
<p>If you have basic C skills and you&#8217;d like to roll-your-own VBA<br />
friendly SQLite library, try <a href="http://tannertech.net/sqlite3vb/" rel="nofollow">http://tannertech.net/sqlite3vb/</a>.</p>
<p>I use none of the above, wedded as I am to the old but venerable<br />
Pivotal Solutions wrapper (no longer maintained, link dead but can be<br />
downloaded from <a href="http://www2.gobansaor.com/xLite/pssqlite.dll" rel="nofollow">http://www2.gobansaor.com/xLite/pssqlite.dll</a> ).  This<br />
is a low level wrapper, but I like it as it wraps the sqlite3.dll<br />
rather than recompiling the library and it&#8217;s simple enough that I can<br />
maintain it myself with my somewhat limited c skillset. Not<br />
everybody&#8217;s cup of tea though.</p>
<p>There&#8217;s a whole bunch of others over on<br />
<a href="http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers" rel="nofollow">http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers</a></p>
<p>Tom</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: T Jensen</title>
		<link>http://blog.gobansaor.com/projects/xlite/#comment-4829</link>
		<dc:creator>T Jensen</dc:creator>
		<pubDate>Tue, 23 Dec 2008 08:43:13 +0000</pubDate>
		<guid isPermaLink="false">http://gobansaor.wordpress.com/projects/xlite/#comment-4829</guid>
		<description>This seems to be exactly what I need for a project using Excel. My users do not have Access, and using SQLite would solve that dependency.

But.. I cannot find any example of how to use your VBA modules ? Can you give even ONE simple example of which function to call ? The only public function you have in your modules require a lot of parameters, but they are not explained. I do not need to work with joins (usually). All I need is a simple &quot;hello world&quot; like example where you select 2-3 fields from a database, into Excel, using VBA. 

I would be most grateful for this.</description>
		<content:encoded><![CDATA[<p>This seems to be exactly what I need for a project using Excel. My users do not have Access, and using SQLite would solve that dependency.</p>
<p>But.. I cannot find any example of how to use your VBA modules ? Can you give even ONE simple example of which function to call ? The only public function you have in your modules require a lot of parameters, but they are not explained. I do not need to work with joins (usually). All I need is a simple &#8220;hello world&#8221; like example where you select 2-3 fields from a database, into Excel, using VBA. </p>
<p>I would be most grateful for this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dublin Bus and PALO ETL - the connection! &#171; Gobán Saor</title>
		<link>http://blog.gobansaor.com/projects/xlite/#comment-3853</link>
		<dc:creator>Dublin Bus and PALO ETL - the connection! &#171; Gobán Saor</dc:creator>
		<pubDate>Sat, 26 Jan 2008 20:22:06 +0000</pubDate>
		<guid isPermaLink="false">http://gobansaor.wordpress.com/projects/xlite/#comment-3853</guid>
		<description>[...] also been busy re-factoring my VBA SQLite and Amazon S3 code with the intention of publishing them as an Excel based micro-ETL platform. [...]</description>
		<content:encoded><![CDATA[<p>[...] also been busy re-factoring my VBA SQLite and Amazon S3 code with the intention of publishing them as an Excel based micro-ETL platform. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: In Memory OLAP &#171; Gobán Saor</title>
		<link>http://blog.gobansaor.com/projects/xlite/#comment-2857</link>
		<dc:creator>In Memory OLAP &#171; Gobán Saor</dc:creator>
		<pubDate>Wed, 05 Sep 2007 16:08:00 +0000</pubDate>
		<guid isPermaLink="false">http://gobansaor.wordpress.com/projects/xlite/#comment-2857</guid>
		<description>[...] :memory: can also be useful, particularly when that memory is shared with Excel. I&#8217;ve already experimented with embedding SQLite into Proto, based on VBA code I&#8217;ve used in the past for integrating SQLite into Excel. I [...]</description>
		<content:encoded><![CDATA[<p>[...] :memory: can also be useful, particularly when that memory is shared with Excel. I&#8217;ve already experimented with embedding SQLite into Proto, based on VBA code I&#8217;ve used in the past for integrating SQLite into Excel. I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Proto &#171; Gobán Saor</title>
		<link>http://blog.gobansaor.com/projects/xlite/#comment-1960</link>
		<dc:creator>Proto &#171; Gobán Saor</dc:creator>
		<pubDate>Thu, 21 Jun 2007 09:45:51 +0000</pubDate>
		<guid isPermaLink="false">http://gobansaor.wordpress.com/projects/xlite/#comment-1960</guid>
		<description>[...] So what to build for my Proto debut? Well looking at Proto one of the things that struck me was the lack of a relational join feature. In a previous post I explained that other mashup tools tend to use XML as their &#8220;pipe transport protocol&#8221; rather the table-oriented nature of EntrySets. But these entrysets cannot be manipulated using relational operators, not even the ability to join two tables by a shared key. Although the tool doesn&#8217;t offer this facility it does offer the flexibility to create a component to solve the problem and somebody has already done so; simulating an Excel VLOOKUP &#8220;join&#8221;. But I wanted the full power of a relational engine, INNER and OUTER joins, UNION and MINUS, aggregations via GROUP BY, access to very large datasets and I already had the answer; an Excel VBA module, xLite. [...]</description>
		<content:encoded><![CDATA[<p>[...] So what to build for my Proto debut? Well looking at Proto one of the things that struck me was the lack of a relational join feature. In a previous post I explained that other mashup tools tend to use XML as their &#8220;pipe transport protocol&#8221; rather the table-oriented nature of EntrySets. But these entrysets cannot be manipulated using relational operators, not even the ability to join two tables by a shared key. Although the tool doesn&#8217;t offer this facility it does offer the flexibility to create a component to solve the problem and somebody has already done so; simulating an Excel VLOOKUP &#8220;join&#8221;. But I wanted the full power of a relational engine, INNER and OUTER joins, UNION and MINUS, aggregations via GROUP BY, access to very large datasets and I already had the answer; an Excel VBA module, xLite. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dhSQLite - New SQLite COM Wrapper &#171; Gobán Saor</title>
		<link>http://blog.gobansaor.com/projects/xlite/#comment-1573</link>
		<dc:creator>dhSQLite - New SQLite COM Wrapper &#171; Gobán Saor</dc:creator>
		<pubDate>Fri, 01 Jun 2007 16:14:23 +0000</pubDate>
		<guid isPermaLink="false">http://gobansaor.wordpress.com/projects/xlite/#comment-1573</guid>
		<description>[...] a new COM wrapper for SQLite from German company Datenhaus. I&#8217;ve started to use the COM free PSSQLITE.DLL  in my Excel VBA projects but I may concider using the Datenhaus dhSQLite library in certain [...]</description>
		<content:encoded><![CDATA[<p>[...] a new COM wrapper for SQLite from German company Datenhaus. I&#8217;ve started to use the COM free PSSQLITE.DLL  in my Excel VBA projects but I may concider using the Datenhaus dhSQLite library in certain [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JavaFX - a GUI DSL &#171; Gobán Saor</title>
		<link>http://blog.gobansaor.com/projects/xlite/#comment-1335</link>
		<dc:creator>JavaFX - a GUI DSL &#171; Gobán Saor</dc:creator>
		<pubDate>Sat, 19 May 2007 15:38:09 +0000</pubDate>
		<guid isPermaLink="false">http://gobansaor.wordpress.com/projects/xlite/#comment-1335</guid>
		<description>[...] the lack of a fast and powerful GUI tool has been a problem. Admittedly, in my Excel/Sqlite xLite suite GUI generation is not a problem as VBA forms are both fast to develop in and feature rich, but [...]</description>
		<content:encoded><![CDATA[<p>[...] the lack of a fast and powerful GUI tool has been a problem. Admittedly, in my Excel/Sqlite xLite suite GUI generation is not a problem as VBA forms are both fast to develop in and feature rich, but [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Habemus Proto &#171; Gobán Saor</title>
		<link>http://blog.gobansaor.com/projects/xlite/#comment-553</link>
		<dc:creator>Habemus Proto &#171; Gobán Saor</dc:creator>
		<pubDate>Mon, 09 Apr 2007 23:48:41 +0000</pubDate>
		<guid isPermaLink="false">http://gobansaor.wordpress.com/projects/xlite/#comment-553</guid>
		<description>[...] April 10th, 2007   I&#8217;ve just uploaded my first Proto module; a rewrite of a VBA module I&#8217;ve been using for many years to provide me with a bridge between the ease of use of desktop user-focused tools and the power of a SQL enabled database. In the past that database was Oracle (and occasionally MS Access) and the desktop tool was of course Excel; now the database is SQLite ,the client tool is still Excel but this time in a supporting role to Proto. Over the next few weeks I&#8217;ll document and publish both the Proto and the pure-Excel version of the this code, in the meantime check-out the work-in-progress project page for xLite (http://gobansaor.wordpress.com/projects/xlite). [...]</description>
		<content:encoded><![CDATA[<p>[...] April 10th, 2007   I&#8217;ve just uploaded my first Proto module; a rewrite of a VBA module I&#8217;ve been using for many years to provide me with a bridge between the ease of use of desktop user-focused tools and the power of a SQL enabled database. In the past that database was Oracle (and occasionally MS Access) and the desktop tool was of course Excel; now the database is SQLite ,the client tool is still Excel but this time in a supporting role to Proto. Over the next few weeks I&#8217;ll document and publish both the Proto and the pure-Excel version of the this code, in the meantime check-out the work-in-progress project page for xLite (<a href="http://gobansaor.wordpress.com/projects/xlite" rel="nofollow">http://gobansaor.wordpress.com/projects/xlite</a>). [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
