DBD:QBase - QuickBase DBD for DBI Perl by Ben Lindstrom Copyrighted (c) 1995, What Software, INC Work derived from DBD::Oracle by Time Bunce Copyrighted (c) 1994-95 You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file. WARNING: This is the FIRST PUBLIC ALPHA release of QuickBase Database driver for DBI Perl. It *IS* incomplete, and It may be UNRELIABLE! Use at your OWN risk. Therefor, What Software, nor myself, can be blamed for this driver causing any damage or loss of money to your company. However, if you do find a bug, please e-mail it to me at: Mouring@netnet.net Note: Lines with "!" infront means something has changed. Initial Comments: ! This is a bare bones release. Fetch and non-returning SQL commands work, ! also $cursor->rows returns the correct value for how many rows affects ! by the fetch command. ! ! For non-implement, or known bugs see TODO file included in package. ! ! Thanks to George Johnston at Filoli for his current help on fetch and ! I'm sure he'll be helping out more in the future. Also, thanks to DBI ! mailinglist for their replies to my bothersome questions that might have ! been asked a million times already. =) ! ! Hopefully the next release will have cursors, rollback, and commit, but with ! that you'll need a new version of the QuickBase engine. So, I'll not talk ! to much more about it. ! ! There is a partly done Makefile.PL...I'm having a few problems, but it ! GREATLY makes my instructions easier to deal with. =) ! Another little problem you should know is that this is a STATICLY linked module ONLY. Since Perl5.001m seems to have problems loading Dynamic ObjC runtime code at runtime. This will hopefully be fixed in later version. Installing: 1] Before you can install DBD:QBase you need the following: * Perl5.001m (NOTE the "m"!!) source * DBI .63 (or higher) source * QuickBase 4.1 (Note, it's not been tested with other version) 2] Unarchives Perl5, DBI, and QBase. Put the DBI directory under your recently created perl5/ext directory. Do the same for QBase. (note: NeXT's symlinks are not link Linux/SunOS/Solaris so please don't just symlink the directories in..If you do then you'll have to run perl5/miniperl ext/DBI/Makefile.PL by hand since it will file to run.) !2.1] go to ext/QBase and do a perl makefile.PL if you have a copy of ! perl install. Or else ../../mainperl (?) if you don't. Without ! doing this is will fail..IT complains about DBI being static. ! ignore all the warnings. =) 3] Now run ./Configure and when you see the following lines add in the correct responses. * Any additional ld flags (NOT including libraries)? [-u libsys_s] -- Add: -ObjC * Any additional libraries? [-ldbm] -- Add: -lMedia_s -lNeXT_s -lQBSQL5_1 * What extensions do you wish to load statically? [ ] -- Add: DBI QBase 4] run "Make" * 1st Note: For some reason on NeXT DBI bombs out because of multiply declares of crypt() I personally commented it out of the perl.h file. There are better ways of doing this, but this way will work for now..Perl programmers should check for crypt() and not declare it/use it if it exits. * 2th node: It might take 2 times through the make file. Since perl seems to dynamicly build and modify some of it's source on demand. ! * 3rd note: If on linking you get an error about -L look in your ! perl5/ext.libs my Makefile.PL is a bit broke. =) 5] Now after QBase failes to compile go to perl5/lib/auto and do the following command: (This is a known problem I'll fix in next version) kiki# ln -s DBD/QBase QBase 6] Then go back to perl5/ and do a "make" again. It should correctly compiled QBase now. 7] Then just do a "make install" and your done. Testing if driver exists: Now, DBI/DBD comes with a standard way to test to see if the driver is up to spec. Since DBD::QBase is not quite up to that, but I something like it called "qb.pl". It's more their as a demostation to how to write perl/dbi code, but if you run it (make sure you have a database called "testdb" with user "test" and "testdb" as the password.) you can check to see if the driver was correctly installed. (Note, it will fail on the SELECT statement since fetching from the database is broken.) The database format for testdb should be have a table called Table1 with the fields: age (int) and name (varchar). Final words of wisdom: Good luck, may the force be with you. And if you have any problems please feel free to ask me about it. If you see something that does not look right in the code. Fix it and send it to me... There are a lot of DBD stubs that have code in it, but that does not mean that it was written by me or even works. =) Hopefully in the install I did not leave anything out...If I did please tell me. The code is really not documented. Sorry, but documenation takes a backseat to figuring out what code does and how to quickly hack something into being. BTW, if you are using this driver; please subscribe to the perldb-interest list. Myself and other more qualified then myself are always their willing to help. Foot Notes: QuickBase is programmed and copyrighed product of SofDesign Corporation. For more information on QuickBase: http://www.quickbase.com DBI/DBD drivers and information can be found at: http://www.hermetica.com/technologia/DBI/