Jump to content
Olivier Jourdan

Using SQlite in LabVIEW

Recommended Posts

Hi all,

I've been working at SAPHIR for many years (SAPHIR is a 20 years old french company - www.saphir.fr). We have implemented DataBase (ACSESS, MySQL...) in several LabVIEW applications. Since one year, we are using SQLite database without any trouble and now we are pleased to announce the release of our new toolkit: SQLiteVIEW.

It will be available with a 30 days evaluation version. You can already read more about it here. You can also learn more about SQLite here.

We plan to release this toolkit in a couple of weeks and we hope you'll like it as we do :)

Regards

Share this post


Link to post
Share on other sites

Hi, I have been playing with SQlite for a little while, that a LabVIEW toolkit would be nice. However, for the moment, I would not use it for any of my current customers, and would only be for "learning" and proof of concept purposes. I, therefore, request a "community" or "educational" version that would allow for use of the toolkit past your trial period, but not for commercial uses.

Share this post


Link to post
Share on other sites

[...] a 30 days evaluation version. [...]

After the evaluation, how much will it cost? How will it be licensed?

Share this post


Link to post
Share on other sites

After the evaluation, how much will it cost? How will it be licensed?

I can be intrested if the price is rigth

Share this post


Link to post
Share on other sites

Hi all,

I've been working at SAPHIR for many years (SAPHIR is a 20 years old french company - www.saphir.fr). We have implemented DataBase (ACSESS, MySQL...) in several LabVIEW applications. Since one year, we are using SQLite database without any trouble and now we are pleased to announce the release of our new toolkit: SQLiteVIEW.

It will be available with a 30 days evaluation version. You can already read more about it here. You can also learn more about SQLite here.

We plan to release this toolkit in a couple of weeks and we hope you'll like it as we do :)

Regards

This is awesome news. A couple of weeks? I want it now!

Share this post


Link to post
Share on other sites

Hi all,

Thank you for your interesting comments.

I'll try to be more precise about our toolkit.

I, therefore, request a "community" or "educational" version that would allow for use of the toolkit past your trial period, but not for commercial uses.

There's no plan to support a "limited version" of our toolkit but it could be a way to democratize SQLite use, so...

After the evaluation, how much will it cost? How will it be licensed?

I can be intrested if the price is rigth

We don't really know what is the "right" price, but we know how many effort we've done to release this toolkit.

We've decided to sell it at 699$ and offer a special pricing up to the end of the year (a certain % discount not yet defined...).

The licensing is intended for a single computer activation. No runtime needed to build applications.

This is awesome news. A couple of weeks? I want it now!

we are working away to release SQLiteVIEW as soon as possible

Then take a look at this

I've took a look at this and it seems, as far as I can see, the "NI implementation" is quite more complex due to the execution on RT target. SQLiteVIEW only needs sqlite3.dll (or .so for linux OS) to run. Our toolkit also provides way to improve query execution performance using statement features and we have lot of other useful features to add to improve the end-user development experience.

Stay tuned to evaluate our toolkit for free. We are looking forward to know your feelings about it.

Regards

Share this post


Link to post
Share on other sites

I have used Sqlite since 2004, my first implementation I used a wrapper dll around the Sqlite3.dll. But now you can use the DLL-Import feature of LabVIEW and import the Sqlite3.dll and have yourself a fully working toolkit. After import you have to replace a couple of Type-controls to Int32 and you will be done in less than an hour.

I don't want to be mean but what are the difference between your toolkit and what Dll-Import makes. I can appreciate a Toolkit that simplifies working with LabVIEW data and Database so that the programmer does not have to use a single SQL statement.

post-12-021667000 1285943546_thumb.png

Share this post


Link to post
Share on other sites

Sam,

Would you be willing to share some vi's or more information about your experience in using the DLL-import feature? I have had a lot of trouble using DLL's with LabView.

Mark

I have used Sqlite since 2004, my first implementation I used a wrapper dll around the Sqlite3.dll. But now you can use the DLL-Import feature of LabVIEW and import the Sqlite3.dll and have yourself a fully working toolkit. After import you have to replace a couple of Type-controls to Int32 and you will be done in less than an hour.

I don't want to be mean but what are the difference between your toolkit and what Dll-Import makes. I can appreciate a Toolkit that simplifies working with LabVIEW data and Database so that the programmer does not have to use a single SQL statement.

Share this post


Link to post
Share on other sites

Hi all,

I've took a look at this and it seems, as far as I can see, the "NI implementation" is quite more complex due to the execution on RT target. SQLiteVIEW only needs sqlite3.dll (or .so for linux OS) to run. Our toolkit also provides way to improve query execution performance using statement features and we have lot of other useful features to add to improve the end-user development experience.

Stay tuned to evaluate our toolkit for free. We are looking forward to know your feelings about it.

Regards

Actually I would say the opposite..... Its too simple wink.gif

But probably sufficient for most users. Why they went for an intermediate "wrapper" dll is beyond me. I guess NI has more C programmers than LV programmers nowadays (or maybe just lazy to implement the switching in LV). But the wrapper is only half a page (excluding comments, spacing) basically just opening, preparing and executing the SQL.

The fact that it supports RT targets isn't that complicated (conditional disable structure). But it overlooks a lot of DB functionality (parametrised queries for example).

I would ignore the RT targets at your peril. This is the only viable database solution available for RT and (IMHO) why most LV users are interested. And, as I intimated earlier, all you need is a conditional disable and a DLL compiled for the targets (that's where most LV users will come up against a brick wall if they want to "roll-their-own") . There are many FREE db solutions for windows and linux (don't forget MAC too)

You might also consider providing a "drop-in" replacement for the NI Database Toolkit to allow users to easliy switch/update to SQLite. Nothing sells a product quicker than an easy upgrade path :)

If your engineers are suggesting an implementation in .NET. Slap them for me please biggrin.gif

Share this post


Link to post
Share on other sites

I can't share the VIs I am using, but I will give you the core functionality of Sqlite VIs that Import-Dll creates. From these VIs you can see how to change the VIs created by Import DLL. Let me know if you have any questions.

I have included the Sqlite3.dll, but you should've already have this Dll if you are interested in Importing it to LabVIEW :-)

Sqlite.Tester.zip

  • Like 2

Share this post


Link to post
Share on other sites

Lots of interesting comments and constructive feedback :)

I can appreciate a Toolkit that simplifies working with LabVIEW data and Database so that the programmer does not have to use a single SQL statement.

We have these kind of tools but they need to be "clean up" to be integrated in our toolkit.

But now you can use the DLL-Import feature of LabVIEW and import the Sqlite3.dll and have yourself a fully working toolkit. After import you have to replace a couple of Type-controls to Int32 and you will be done in less than an hour.

We are not used to use this LabVIEW feature and we definitely not thinking that implement the ddl call was the most difficult to do. We also think that most of LabVIEW user are not familiar with dll and haven't time to do this work.

Regards

Share this post


Link to post
Share on other sites

I can't share the VIs I am using, but I will give you the core functionality of Sqlite VIs that Import-Dll creates. From these VIs you can see how to change the VIs created by Import DLL. Let me know if you have any questions.

I have included the Sqlite3.dll, but you should've already have this Dll if you are interested in Importing it to LabVIEW :-)

OK, I've tried opening this ZIP and I get an error message about Searching for: <userlib>:|SQLite\Custom Controls\sqlite3.ctl. Can anyone help with this?

Share this post


Link to post
Share on other sites

OK, I've tried opening this ZIP and I get an error message about Searching for: <userlib>:|SQLite\Custom Controls\sqlite3.ctl. Can anyone help with this?

Just replace it with an I32 constant.

[...] We've decided to sell it at 699$ and offer a special pricing up to the end of the year (a certain % discount not yet defined...). [...]

We are not used to use this LabVIEW feature and we definitely not thinking that implement the ddl call was the most difficult to do. We also think that most of LabVIEW user are not familiar with dll and haven't time to do this work.

It seems that the amount of work involved isn't proportional to the price you're suggesting. Why so much? I can't afford it :(

Share this post


Link to post
Share on other sites

It seems that the amount of work involved isn't proportional to the price you're suggesting. Why so much? I can't afford it :(

If it is full blown implementation then it is a lot of work. I think, however, most people only need/use the basics. I just hope its not ADO or .NET.

  • Like 1

Share this post


Link to post
Share on other sites

It seems that the amount of work involved isn't proportional to the price you're suggesting. Why so much? I can't afford it

Sell a product (we experienced this with a ModBus protocol toolkit since 1996) is not only provide a set of functional VIs. We have to

  • provide full integration to LabVIEW with an easy and quick install process (thank you VIPM :) )
  • provide support to customers (how to, documentation...)
  • maintain toolkit over LabVIEW version (for example upgrade from LV8.6 to LV2009 has reveal a bug (already fixed ;) ) in SQLiteVIEW
  • improve the toolkit (performances, new features...)

and many other "little" hidden things.

As I said before the "right" price is very difficult to determine :( but keep in touch, there will be a significant discount for the release :)

If it is full blown implementation then it is a lot of work. I think, however, most people only need/use the basics. I just hope its not ADO or .NET.

It's not ADO or .NET, our toolkit is fully compatible with Linux (We are currently using it for a multi platform (Windows/Linux) application. Mac OS support might be possible, but we have to compile the SQLite source in a framework...

Edited by Olivier Jourdan

Share this post


Link to post
Share on other sites

To have Sqlite working for any platform you can use the precompiled libraries that SQlite website already provides:

Windows:

http://www.sqlite.org/sqlite-3_7_2.zip

Linux:

http://www.sqlite.org/sqlite3-3.7.2.bin.gz

Mac OS X (x86):

http://www.sqlite.org/sqlite3-3.7.2-osx.zip

If you change the Source Code Of Sqlite to fit your product, then I don't think you can call it Sqlite , because you are changing the source. If you are using a C-Wrapper around it then you are introducing another level of redirection and extra code to maintain. A c-wrapper will force you to reduce the functionality that you can provide thru your wrapper. I have been down that road and it's not pretty.

Have a look at the documentation of sqlite here: http://www.sqlite.org/c3ref/funclist.html. Will I have access to ALL the features of Sqlite described in their documentation? If a product is PAID then I would want/expect it. Because the reality is the Sqlite project is mature and a throughly tested product, and simply exposing the functions doesn't qualify for a commercial product. I know you are anticipating supporting the product, but how much of this support is going to be directed toward your-method-of-exposing Sqlite DLL, and actual fault-of-sqlite. I don't know if I have been clear.

Like I said earlier just wrapping the sqlite3.dll for LabVIEW is not going to be enough, you need to separate the programmer from the database, which you said you have such tools (Great), but also provide all the advanced functions that Sqlite itself already provides , see documentation.

I am not against a paid Sqlite-LabVIEW toolkit but only hope that a really Solid and worthy Toolkit is released that everyone can benefit, even the one who are capable of doing the work.

Share this post


Link to post
Share on other sites

If you change the Source Code Of Sqlite to fit your product, then I don't think you can call it Sqlite , because you are changing the source. If you are using a C-Wrapper around it then you are introducing another level of redirection and extra code to maintain. A c-wrapper will force you to reduce the functionality that you can provide thru your wrapper. I have been down that road and it's not pretty.

I think there is a misunderstood (probably due to my english level, I'm sorry of that and apologize). We don't have modified SQLite source code. We are using dll and library provided here for window and Linux. Concerning Mac OS X, as far as I know, we need a framework not a command line tool to be able to reuse the same LabVIEW code over the 3 Operating Systems.

Like I said earlier just wrapping the sqlite3.dll for LabVIEW is not going to be enough, you need to separate the programmer from the database, which you said you have such tools (Great), but also provide all the advanced functions that Sqlite itself already provides , see documentation.

For the first release, we will not provide all the advanced functions but the functions essential (for us) for execute query with "high performance".

I am not against a paid Sqlite-LabVIEW toolkit but only hope that a really Solid and worthy Toolkit is released that everyone can benefit, even the one who are capable of doing the work.

Believe me when I agree the "solid and worthy toolkit" terms. We can't think our product in an other way and I'll take all these feedbacks into account for the future version of SQLiteVIEW.

Regards

  • Like 2

Share this post


Link to post
Share on other sites

It takes balls of steel to release a LabVIEW toolkit product and I commend SAPHIR for stepping up to the plate.

Having gone down that road, I can tell you it's not something any company should or can take lightly.

I'll eagerly wait for a trial version and will provide any feedback I can to help test and improve the product.

  • Like 1

Share this post


Link to post
Share on other sites

It was longer than we thought, but our toolkit is now available. Just run your VIPM 2010 app, a dialog window might prompt you to install SQLiteVIEW in your LabVIEW.

For more information just go here.

Regards.

  • Like 1

Share this post


Link to post
Share on other sites

Hi Olivier,

I was the SE that put together the DevZone article Supporting Relational Databases in LabVIEW Realtime. I am glad to see someone making a commercial product out of SQLite. The only reason code exists for VxWorks targets is because an intern needed it for his project before going back to college. I cleaned it up for example purposes.

I am glad you are supporting Windows and Linux, but it would be very interesting if you also supported real-time targets. As it was previously mentioned, on general purpose OSes, there are typically quite a few options for databases. Although SQLite is light weight and fast, most customers want an enterprise level database connectivity. But when it comes to RT targets, light weight and fast are imperative. That is why SQLite is used heavily in embedded targets (like cell phones), and is very attractive.

As a side note, I would test your toolkit on a NI Real-time controller running PharLap (any PXI system). PharLap is a stripped out version of Windows, so the toolkit might work as is. Might be another selling point. VxWorks would require you to look at the code in the article.

Cheers

Share this post


Link to post
Share on other sites
As a side note, I would test your toolkit on a NI Real-time controller running PharLap (any PXI system). PharLap is a stripped out version of Windows, so the toolkit might work as is. Might be another selling point. VxWorks would require you to look at the code in the article.

Hello,

I agree the RT interest. As a first step, I've run DLL Checker (found here) on sqlite.dll and result seems to show there are some "bad" functions... However, we don't investigate more on this for now.Regards

Edited by Olivier Jourdan

Share this post


Link to post
Share on other sites

We have just post an additional free package (this is a beta version) to SQLiteVIEW on the SAPHIR - toolkits community.

This package intend to add the ability to write (and read) cluster to SQLite database as OpenG Variant Configuration File functions do with configuration file.

You can find more information here

Regards,

Olivier

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.