Although I think I am probably about the least competent Laz programmer in the world, I’ve decided to write some documentation on how easy it is to display a simple database in Lazarus’ GUI. The catch is I still don’t know exactly how easy it is to do that myself, because the current state of Laz-SQLite3 documentation is so ... inadequate. The inadequacy has partially to do with a large mass of obsolete or significantly contingent documentation; partially to do with the huge scope of Laz and the multitude of databases and OS implementations; partially to do with my own inadequacies (and assumptions that I already know lots of things I don't already know); and partially to do with there, apparently, simply not being a COMPLETE example of a whole GUI-SQLite3 program for me to copy and run.
What gives me hope, however, is that the state of Laz itself - at least on Windows 7 where I’ve been able to run it - is insanely great and stable (the developers have me in awe)...and Laz being written in Laz speaks for itself!
So, my hypothesis is that IF I/we can properly show new programmers (in particular people who are currently candidates for Python as a first language) how easy it is do something real and substantial in Laz and have it display in a gorgeous GUI “batteries included”, there is going to be a lot of interest ... a lot of people suddenly VERY seriously interested in Laz/FP. I would expect it to be pretty easy to bring in a thousand or more new programmers pretty quickly if we pull this off.
My proposal is that SQLite3 and Windows 7 will be THE medium case and the program be a very short program working with a pre-existing (or easy to create outside of Laz) single table database. My goal is NOT to teach anybody anything much about Pascal itself, nor about SQL, nor Windows, but to give them a working example that they can bring up in a few minutes in order to get the thrill that originally was available to anyone who sat down with a microcomputer 40 years ago: it just works. Thereafter they can spend hours modifying the code incrementally, if they wish, but the issue of whether Laz is awesome and worth the effort to explore will no longer be at issue.
What I would like to see, personally, right now is a COMPLETE program which opens an existing single table of a database and displays all the records inside a grid component. I'd like to be able to cut and paste it and run it. Afterwards I'll figure out, or ask, how to create it using drag and drop if there is anything which perplexes me.
Doing a lot of hand waving in various directions, presenting parts of a working program and otherwise just playing 52 card pickup with someone who needs help (in this case me), isn’t helpful. If you don’t want to be, or can’t be, fully helpful and fully supportive of this project then please don’t post anything on this thread.
As I said, this isn’t something I wanted to do personally -- I admit upfront I am incompetent in Laz. But I am educable and I want to see this through instead of just complaining any further. I previously offered to pay someone to write the documentation I think Laz desperately needs to begin a bootstrap process. Now that is off the table and I am just going to do it myself (or, at least, write the documentation/article myself).
But I sure would appreciate it if someone would simply throw together a bare-bones but complete program to open and display a preexisting SQLite3 table under Windows 7 and display it in a grid. That would save me, doubtless, many more hours of trial and error and 52 card pickup frustration. And it would take you - what? - 30 minutes?? I don’t want to use any outside packages, such as Zeos (that has wasted a goodly amount of my time already all by itself). I'm hoping the eventual solution is super-simple and contingency free. I have already made a table with DB Browser for SQLite and populated it and placed it, along with the Windows 64 dll in C:/laz-sql/ where I expect the program to go. DB Browser, as with Laz itself, is super simple to bring up. Anyway, please post COMPLETE, TESTED programs only. Thank you!