* bin/hb-func.sh
! Fixed gtalleg lib name.
% Removed explicit harbour -gc0 option. This is now the default.
* utils/hbmk2/hbmk2.prg
+ Added fmstat/nofmstat support.
! Minor fix to allow more freedom in formatting inside .hbp files.
! Fixed to delete prg stub file when using -hbcc option.
+ Added Copyright section for Przemek for the ideas I've
borrowed from hbmk script and contributed code.
+ Detect platform default GT and only create stub if the
user selected GT is different.
+ Now using versions shared libs on *nixes.
+ Mode detection now regards the ending or the beginning
of the original name, so prefixed or postfixed names will
also be recognized: xhbcmp, hbcmpx, myhbcmp.
! Fixed to multiple -gt options override each other so the
last one will be effective.
! Fixed error message text when stub cannot be created.
Furthermore in this case hbmk will now quit.
+ Also using '-Wl,--start-group' for bsd (from hbmk script).
+ Added '-bind_at_load', '-multiply_defined suppress' gcc
options for darwin shared mode (from hbmk script).
* Changed stub name to hbstub (from hbmkgt).
* pthread lib handling streamlined based on hbmk script,
but this probably needs further cleaning as the script
isn't clear to me here.
+ Added fmstat/nofmstat switch. It most probably needs some
tweaking, as the conditions seem rather sophisticated here.
TODO: For non-*nix/non-gcc platforms (msvc/bcc32/owatcom
most importantly).
+ Added system libs for darwin if gtcrs or gtsln are selected.
(nslang isn't a default lib here, so it won't work on plain
installations, slang however will).
+ Missed from previous commit: Fix so that -nohbp doesn't
prevent processing the global config .hbp file.
! Fixed typo in prev commit.
* utils/hbmk2/examples/contrib.hbp
- Removed hbtip as it's not fully portable (dos).
+ utils/hbmk2/examples/contribf.hbp
+ Added complete database of contrib, with
availability information.
* contrib/xhb/Makefile
* contrib/hbmsql/Makefile
* contrib/hbmzip/Makefile
* contrib/hbziparc/Makefile
* contrib/hbnf/Makefile
* contrib/hbmisc/Makefile
* contrib/hbvpdf/Makefile
* Formatting.
/*
* $Id$
*/
28/may/2000 Harbour mSQL access classes - readme file
This is work in progress, so it has to be fully tested and needs a few more methods to cover mSQL 2.x possibilities.
This set of files gives you a mean to access an mSQL server, I've developed and tested them on a OS/2 platform, so changes to Makefile and import library for different platforms are not present.
In its present state mSQL classes are made up of these files:
msql.c: low level wrapper around msql client API. It requires libmsql.a (or libmsql.lib if under
windows) import library (under OS/2 you need, also, msql.dll client api library if it's
not in your LIBPATH).
msql.h: from mSQL 2.x distribution, type and defines of mSQL client api.
msql.ch: clipper level defines of mSQL types
tmsql.prg: mSQL access classes
test.prg: a little test program which wont work for you :-) since it uses a .dbf file not
provided. Use it as a small tutorial of tmsql.prg provided functions.
Makefile: my makefile for OS/2 gcc, you'll surely need to change it to adapt to your needs/platform.
tmsql.prg defines four classes:
TmSQLServer: manages access to a mSQL server and returns an oServer object to which you'll send all your
queries;
TmSQLQuery: a standard query to an oServer with joins. Every query has a GetRow() method
which on every call returns a TmSQLRow object which, in turn, contains requested fields.
Query objects convert mSQL answer (which is an array of strings) to clipper level types.
At present time N (with decimals), L, D, and C clipper types are supported.
TmSQLTable: It's a descendant of a TmSQLQuery and you'll receive it when your query has no joins.
It adds Update(), Append() and Delete() methods which receive a TmSQLRow object and
reflect changes to the mSQL table from which they come.
Please note that TmSQLQuery objects don't have these methods, so, if you want to change
a row received from a TmSQLQuery object you need to construct a valid SQL query and submit
it to an oServer object.
TmSQLRow: Every row returned by a SELECT is converted to a TmSQLRow object. This object handles
fields and has methods to access fields given a field name or position.
I'm aware that this brief document doesn't explain a lot about mSQL access classes and I'm sorry for that.
I'll try to update it as work on these classes goes by and I'll like to receive feedbak and suggestions
from users (if any :-))
Excuse my poor english and happy selecting :-)
Maurilio Longo - maurilio.longo@libero.it