I for one wanted to send out a big thank you to Jose Roca for all the fine work he is doing in the Source Code section.
It looks like a lot of time invested and I for one appreciate concrete examples of how to do things better with FireFly.
Some of it I already knew and that reinforced my opinion that I am on the right track. And other stuff I am learning from Jose's examples.
Great job Jose.
The man is simply amazing. His work in the ADO, DAO and ODBC areas has enabled us PB users very easy access to databases that would otherwise require more complicated methods.
It's certainly admireable to have the will and possibility/option to be so dedicated as Jose seems to be. I wish my workload and state of mind would let me do so, at some point. I sometimes say to myself when things get hard; «Excel yourself - a looser isn't one who fails, but one that gives up without trying».
Thanks for your kind words. When I learn new stuff I write short tests to see if I have understand it well and to fix the solution. Later, when I have forgot all about, they serve to quickly remind me how to use it.
There are plenty of examples to use ADO with VB and C++, but VB examples are not always easy to translate to PB because VB uses many tricks, like default properties and shortcuts.
For example, a shortcut like rstp!au_fname, translates as:
' Get a reference to the Fields collection
lpFields = AdoRecordset_GetFields(lpRecordset)
' Get a reference to the "au_fname" field.
lpField_AdoField_GetItem(lpFields, "au_fname")
' Retrieve the field's value
AdoField_GetValue(lpField, vValue)
' Release the Field object
AdoRelease lpField
' Release the Fields collection
AdoRelease lpFields
While the shortcut is handy, I wonder how many programmers understand how it does what it does, and how many PB programmers are able to translate it to the PB syntax. The wrappers show exactly how ADO works, although it forces us to be more disciplined and explicitily release all the objects when no longer needed, since we are using opaque pointers and the compiler can't do it for us, i.e. the compiler can release an object when the object variable goes out of scope but not if it is an opaque pointer. Wish we had smart pointers in PB :)
QuoteWhile the shortcut is handy, I wonder how many programmers understand how it does what it does, and how many PB programmers are able to translate it to the PB syntax.
Thats the beauty of starting with VB. I've used VB and Access for years but I've never given that little detail a thought at all. That's why using PB sometimes is so hard and cumbersome, we have to learn things we thought we knew enough about. Unfortunately that can require massive amounts of workhours and confusion. Thats why your contribution is of such an incredible value to many of us. Without Pauls Firefly and people like yourself, I doubt I would still be bothered with PowerBasic..
I would like to echo the thanks for the examples - they're like gold to dummies like me who understand things much better when working example code is available to study.
Just a thought - they seem like such a great resource that they would be worth packaging as a single download file for people to download periodically as a batch - sort of a poor man's POFF for FireFly. I'm not sure how much extra work it would be for our forum moderator/software tool writing/database software designing Paul but it would be much appreciated I think.
Jeff Cranford
(Firefly makes Windows programming practical and fast without knowing all these bells and whistles but with a language as powerful and capable of taking advantage of low level features of the operating system it seems a shame to waste the power just because I'm a Windows dummy!)
I've said it before and there's no harm saying it again - Jose's contribution to ADO and more recently DAO (which I haven't used, yet) is outstanding. I continue to admire his efforts.
Only one downside though - gives me an inferiority complex about why I can't be half as good a programmer as he is.... ;)
Andrew