Files
harbour-core/harbour/contrib/hbmsql
Viktor Szakats 84a89f08ff 2009-02-20 19:03 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* 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.
2009-02-20 18:06:33 +00:00
..

/*
 * $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