[GRASS5] DBMI-ODBC

Radim Blazek Radim.Blazek at dhv.cz
Tue May 2 08:43:24 EDT 2000


Hi,
(sorry if you received this twice, Markus Neteler recommended me to send it here too) 

I work on ODBC (http://www.unixodbc.org/) driver for DBMI (src/libes/dbmi)
+ some modules based on DBMI.
Work is not finished but most of old modules (src/libes/dbmi/clients) and new
v.db.reclass run.

I want discuss following list of changes before commiting to CVS:

- add to src/include/dbmi.h structures:

  typedef struct _db_connection
  {
      char *driverName;
      char *databaseName;
      char *location;
      char *user;
      char *password;
      char *keycol;        // name of default key column
  }dbConnection;

  typedef struct
  {
      int  count;     // number of defined rules
      int  alloc;     // size of allocated array
      char *table;    // table name
      char *key;      // key column name
      int  *cat;      // array of new category numbers
      char **where;   // array of SQL WHERE conditions
      char **label;   // array of new category labels
  }dbRclsRule;


- add to DBMILIB functions:

  int   db_set_connection        (dbConnection *connection );
  int   db_get_connection        (dbConnection *connection );
  void        db_rcls_rule_extend       (dbRclsRule *rule , int n );
  dbRclsRule * db_rcls_rule_init        (int n );
  int         db_rcls                   (dbRclsRule *rule , CatValI **new );


- add to /src/libes/dbmi/lib/start.c reading from dbConnection if driver
  was not specified


- modify command parameters in src/libes/dbmi/clients modules
  to not required if defined in dbConnection (use default)


- change in src/libes/dbmi/clients/Gmakefile:
  HOME=$(GISBASE)/etc/dbmi/bin
  to
  HOME=$(GISBASE)/etc/bin/main/cmd
  and remove
  if [ ! -d $(GISBASE)/etc/dbmi ]; then mkdir $(GISBASE)/etc/dbmi; fi; \
  if [ ! -d $(HOME) ]; then mkdir $(HOME); fi;


- add src/libes/dbmi/drivers/odbc - ODBC driver


- add src/libes/dbmi/clients/db.connect - similar as g.select.pg but
  module name db.select is already used, problem: password is saved
  in file


- add src/mapdev/v.db.reclass


- add to VECTLIB_REAL functions for reclassification - may be used in future also
  by v.reclass (I am not satisfied with creating reclass file and running
v.reclass
  from DB reclass modules):

  int V_rcls_line (char *in_name, char *out_name, CatValI *new, int ncat, int
append);
  int V_rcls_area (char *in_name, char *out_name, CatValI *new, int ncat, int
append, int dissolve);


- add to src/include/gis.h structures for storing values for cats
  ( new category value, number of elements in cat, area, length, x,y, ...)

  typedef struct
  {
      int  min,max;  // array range
      int  *val;  // array of integers
  }CatValI;

  typedef struct
  {
      int  min,max;  // array range
      double *val;  // array of doubles
  }CatValD;


- add to GISLIB functions:

  CatValI *G_catvali_init( int min, int max);
  void G_catvali_extend( CatValI *, int max);


Radim

---------------------------------------- 
If you want to unsubscribe from GRASS Development
Team internal mailing list write to:
minordomo at geog.uni-hannover.de with
subject 'unsubscribe grass5'
length: 3835
max: 0



More information about the grass-dev mailing list