Files
harbour-core/harbour/contrib/hbmsql
Marek Paliwoda 06cfde4dbf 2008-02-06 11:08 UTC+0100 Marek Paliwoda (mpaliwoda at interia pl)
+ harbour/contrib/gtwvg/make_gcc.sh
  + harbour/contrib/hbapollo/make_gcc.sh
  + harbour/contrib/hbclipsm/make_gcc.sh
  + harbour/contrib/hbct/make_gcc.sh
  + harbour/contrib/hbfbird/make_gcc.sh
  + harbour/contrib/hbfimage/make_gcc.sh
  + harbour/contrib/hbgd/make_gcc.sh
  + harbour/contrib/hbgt/make_gcc.sh
  + harbour/contrib/hbmisc/make_gcc.sh
  + harbour/contrib/hbmsql/make_gcc.sh
  + harbour/contrib/hbmysql/make_gcc.sh
  + harbour/contrib/hbnf/make_gcc.sh
  + harbour/contrib/hbodbc/make_gcc.sh
  + harbour/contrib/hbole/make_gcc.sh
  + harbour/contrib/hbpgsql/make_gcc.sh
  + harbour/contrib/hbtip/make_gcc.sh
  + harbour/contrib/hbtpathy/make_gcc.sh
  + harbour/contrib/hbw32/make_gcc.sh
  + harbour/contrib/hbw32ddr/make_gcc.sh
  + harbour/contrib/hbwhat32/make_gcc.sh
  + harbour/contrib/hbziparch/make_gcc.sh
  + harbour/contrib/hbzlib/make_gcc.sh
  + harbour/contrib/rddads/make_gcc.sh
  + harbour/contrib/xhb/make_gcc.sh
    + Added missing files to allow compilation using non standard
      build system. Please note that some contribs require external
      packages, so to succesfuully compile them you will have to
      set a proper environment variable, pointing to a list of
      directories, containig required package header files. Those
      envvars are listed below :
         APOLLO_INC
         FIREBIRD_INC
         FREEIMAGE_INC
         GD_INC
         MYSQL_INC
         PGSQL_INC
         ZLIB_INC
         ADS_INC
      Note that those envvars may contain list of directories,
      for example :
         export ADS_INC="/usr/include include ."
      Also note that on Windows systems, using MingW or Cygwin, you will
      have to generate a proper import files from dlls, available in those
      packages - using MingW or Cygwin dlltool - to build end user programs,
      utilizing those packages.

  * harbour/contrib/mtpl_gcc.mak
  * harbour/contrib/mtpl_gcc.sh
  * harbour/contrib/make_gcc_all.sh
    + Added the rest of contrib libs to compile

  * harbour/contrib/hbtpathy/tplinux.c
  * harbour/contrib/hbtpathy/tpos2.c
  * harbour/contrib/hbtpathy/tpwin32.c
    + Added an operating system guard around the content of
      thses files to allow including all three files in a
      library.
2008-02-08 15:45:18 +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