Home All Groups Group Topic Archive Search About

VB6 with SQLite: Is there a report generator/viewer?

Author
20 Feb 2009 9:54 PM
Sarah M. Weinberger
Hi,

I am (was?) using the report designer/viewer that comes with VB6, but that
is rather clunky and works with the Microsoft Jet Database, which I am in
the process of phasing out in favor of SQLite with Olaf's dhRichclient
wrapper. My question is if there is a nice reporting facility that is
available that I can use that will work with SQLite and VB6?

Thanks,

Sarah

Author
20 Feb 2009 10:41 PM
MikeD
"Sarah M. Weinberger" <mweinber***@hotmail.com> wrote in message
news:%23SQbZX6kJHA.3380@TK2MSFTNGP04.phx.gbl...
> Hi,
>
> I am (was?) using the report designer/viewer that comes with VB6, but that
> is rather clunky and works with the Microsoft Jet Database, which I am in
> the process of phasing out in favor of SQLite with Olaf's dhRichclient
> wrapper. My question is if there is a nice reporting facility that is
> available that I can use that will work with SQLite and VB6?
>

Well, I won't dispute the clunkiness of VB6's ReportDesigner, but since it
uses ADO, it should (theoretically) work fine with SQLLite (assuming an
OLEDB Provider exists for SQLLite). So even though ReportDesigner is clunky,
if you've already got these reports created, it shouldn't take much effort
to get them working with any other RDMS (or anything you can use as an ADO
data source).

--
Mike
Author
20 Feb 2009 10:55 PM
Sarah M. Weinberger
Hi Mike,

Thanks! Using the VB6 ReportDesigner, which I alrady have working, with my
new SQLite database would be the easiest and most straight forward solution.
I guess the only person to answer the question of ADO/OLEDB with SQLite is
Olaf. Hopefully, he will see this thread and respond.  I am using his
dhRichclient library, which makes working with SQLite a snap, but that is
not an OLEDB wrapper and ADO. If I could use ADO, then even more of my
existing code can be reused, as I already have the existing report using
ADO. Displaying the report would be faster, as I do not have to create the
database on the fly. I just use what already exists.

nob***@nowhere.edu? :-) My favorote in this vane thinking off the cuff would
be p**@sohk.edu or the longer version p**@SchoolOfHardKnocks.com. I guess
the question is if SOHK is as prestigious as where Barack Obama went,
Harvard, if not mistaken. I digress, so I will end by saying,

Thanks again and your suggestion definitely sounds like a plan, so the next
step is to research ADO/OLEDB with SQLite, and then refresh my memory on how
ReportDesigner specifically interfaces with the database.

Sarah
Author
22 Feb 2009 12:17 PM
Schmidt
"Sarah M. Weinberger" <mweinber***@hotmail.com> schrieb im Newsbeitrag
news:%23GDeX56kJHA.1184@TK2MSFTNGP04.phx.gbl...

[SQLite-Wrapper-Classes in dhRichClient]
>...
> ..., but that is not an OLEDB wrapper and ADO. If I could
> use ADO, then even more of my existing code can be reused,
> as I already have the existing report using ADO.
The intention behind dhRichClient is, to lower the
dependencies to the COM-based MS-ToolStack,
including ADO/JET, MS-XML, DCOM, etc. -
and to offer all of it's class-functionality (although being
an AX-Dll itself) also in a regfree manner - without
even looking at the SxS-Services or any manifests.

So, if you want to follow that approach, you could/
should use the builtin Wysiwyg-Report-Engine, which
is able, to create multipage-reports, which could later
on either printed directly, or saved to a file, or saved
to a bytearray (and from there saved as e.g. Blob
in a DB etc.).
The two classes in question are named cReportDocument
and cReportPage - please have a look at the appropriate
Demos, which come with the Toolset to see how to use
them.

------------- SQLiteRs-ADO-Modes --------------
If you want to interact further with existing Tools or
your own Classes, which expect ADO-Rs-Containers,
to work against (as e.g. the usual ActiveX-based
Report-Engines like ActiveReports or Crystal or the
VB6-Reporting-Tool), there are two different ways,
to get ADO-Datasources from a SQLite-Recordset.

The first is the faster one, because it does not make
a copy of the underlying SQLite-Rs-Data - instead
it works internally over an OleDB-SimpleProvider-
Interface directly against the Rs-Content, offering an
ADO-DataSource-compatible Interface to the outside.
You can get access to that Interface over the Property:
SQLiteRs.DataSource
e.g.:
Set SomeDataGrid.DataSource = Rs.DataSource
So that works in a compatible way to everything
which expects an ADO-Datasource - the drawback
is, that in this mode you would have to distribute
dbadapt.dll and also msbind.dll together with your
Application (beside the Standard-ADO-Runtime).

The second way does not have these additional
dependencies to msbind.dll and dbadapt.dll, it
only requires an installed Std-ADO-Runtime on
your target-system.
In this mode I create a fully "freestanding" copy
of an (disconnected) ADO-Rs, with no DB-relation
at all - directly from an SQLite-Recordsets internal
Content.
Dim SQLiteRs as cRecordset
Set SQLiteRs = SQLiteCnn.OpenRecordset("Select...")

Dim RsADO as ADODB.Recordset
Set RsADO = SQLiteRs.GetADORsFromContent

The difference to the first mode is (as said), that
any changes in the so created ADO-Rs are not
reflected back into the SQLite-Recordset (regarding
the write-direction, which is usually triggered with
SQLiteRs.UpdateBatch). It is mainly there, to
create and pass an readonly ADO-Rs-Container
to your external ADO-Container based Tools as e.g.
the usual Reportengines.

Olaf
Author
21 Feb 2009 5:52 AM
RB Smissaert
There is an ODBC driver:
http://www.ch-werner.de/sqliteodbc/
So, you should be able to use your existing code.

RBS


Show quoteHide quote
"MikeD" <nob***@nowhere.edu> wrote in message
news:%23kaxfx6kJHA.4880@TK2MSFTNGP02.phx.gbl...
>
> "Sarah M. Weinberger" <mweinber***@hotmail.com> wrote in message
> news:%23SQbZX6kJHA.3380@TK2MSFTNGP04.phx.gbl...
>> Hi,
>>
>> I am (was?) using the report designer/viewer that comes with VB6, but
>> that is rather clunky and works with the Microsoft Jet Database, which I
>> am in the process of phasing out in favor of SQLite with Olaf's
>> dhRichclient wrapper. My question is if there is a nice reporting
>> facility that is available that I can use that will work with SQLite and
>> VB6?
>>
>
> Well, I won't dispute the clunkiness of VB6's ReportDesigner, but since it
> uses ADO, it should (theoretically) work fine with SQLLite (assuming an
> OLEDB Provider exists for SQLLite). So even though ReportDesigner is
> clunky, if you've already got these reports created, it shouldn't take
> much effort to get them working with any other RDMS (or anything you can
> use as an ADO data source).
>
> --
> Mike
>