odbc fixes, updates for v0.4

This commit is contained in:
brianb
2002-04-03 23:02:53 +00:00
parent 9b8285d937
commit e2c3a9d818
16 changed files with 177 additions and 45 deletions

View File

@@ -1,3 +1,7 @@
Tue Apr 2 21:02:13 EST 2002 Brian Bruns <camber@ais.org>
* src/libmdb/data.c: ignore 0xff in row offset table (Don Badrak)
Wed Mar 20 22:49:33 EST 2002 Brian Bruns <camber@ais.org> Wed Mar 20 22:49:33 EST 2002 Brian Bruns <camber@ais.org>
* include/mdbtools.h: increased page size for 2048 to 4096 * include/mdbtools.h: increased page size for 2048 to 4096

View File

@@ -14,7 +14,7 @@ mdb-tables -- a simple dump of table names to be used with shell scripts
mdb-header -- generates a C header to be used in exporting mdb data to a C prog. mdb-header -- generates a C header to be used in exporting mdb data to a C prog.
mdb-parsecvs -- generates a C program given a CSV file made with mdb-export mdb-parsecvs -- generates a C program given a CSV file made with mdb-export
mdb-sql -- if --enable-sql is specified, a simple SQL engine (also used by mdb-sql -- if --enable-sql is specified, a simple SQL engine (also used by
ODBC). ODBC and gmdb).
And some utilities useful for debugging: And some utilities useful for debugging:
@@ -23,6 +23,6 @@ prkkd -- dump of information about design view data given the offset to it.
prtable -- dump of a table definition. prtable -- dump of a table definition.
prdata -- dump of the data given a table name. prdata -- dump of the data given a table name.
Once MDB Tools has been compiled, libmdb.a will be in the src/libmdb directory Once MDB Tools has been compiled, libmdb.[so|a] will be in the src/libmdb
and the utility programs will be in the src/util directory. directory and the utility programs will be in the src/util directory.
You can then run 'make install' as root to install (to /usr/local by default).

View File

@@ -70,7 +70,7 @@ MAKEINFO = makeinfo
NM = /usr/bin/nm -B NM = /usr/bin/nm -B
OBJDUMP = @OBJDUMP@ OBJDUMP = @OBJDUMP@
ODBC = ODBC =
ODBC_INC = ODBC_INC = /usr/local/include
PACKAGE = mdbtools PACKAGE = mdbtools
RANLIB = ranlib RANLIB = ranlib
READLINE_LIBS = -lncurses -lreadline READLINE_LIBS = -lncurses -lreadline

7
README
View File

@@ -2,13 +2,12 @@ This is mdbtools version 0.4
This software is still beta so don't expect too much. This software is still beta so don't expect too much.
For the rest of you, read the HACKING file for a description of where the code If you are interested in helping, read the HACKING file for a description of
stands and what has been gleened of the file format. where the code stands and what has been gleened of the file format.
The initial goal of these tools is to be able to extract data structures and The initial goal of these tools is to be able to extract data structures and
data from mdb files. This goal will of course expand over time as the file data from mdb files. This goal will of course expand over time as the file
format becomes more well understood. Also in the plans is a Gtk+ browser for format becomes more well understood.
MDB files and a ODBC/SQL frontend.
Files in libmdb are licensed under LGPL and the utilities under the GPL, see Files in libmdb are licensed under LGPL and the utilities under the GPL, see
COPYING.LIB and COPYING files respectively. COPYING.LIB and COPYING files respectively.

39
TODO
View File

@@ -1,6 +1,15 @@
Things to Do Things to Do
------------ ------------
file format:
. how does global allocation map work?
. export VB script
. re-examine KKD records for form design (OLE streams?)
. write support
libmdb:
. Complete the list of datatypes . Complete the list of datatypes
. Straighten out which functions in libmdb are meant to be used and which . Straighten out which functions in libmdb are meant to be used and which
ones should be static. ones should be static.
@@ -9,4 +18,32 @@ Things to Do
. Need a way to express logical relationships between sargs (tree) . Need a way to express logical relationships between sargs (tree)
. Add support for index scanning when using sargs . Add support for index scanning when using sargs
. Use allocation maps to read tables, should be more efficient . Use allocation maps to read tables, should be more efficient
. Figure out why we get unresolved symbols when ODBC driver load by DM . write support
utils:
. need program to unpack VBA script to file
. Access forms to glade converter ?
SQL Engine:
. SQL Engine does not handle uppercase keywords
. Joins
. OR clauses using sarg trees from above
. insert/updates
. bogus column name in where clause not caught
ODBC:
. Figure out why we get unresolved symbols when ODBC driver load by DM (iODBC
only?)
. Boolean not working
. many unimplemented funtions
GMDB:
. Finish debug dissectors
. Export schema not implemented
. Printing not implemented
. Test for SQL engine and pop up message when not present.
. Export needs finishing

View File

@@ -70,7 +70,7 @@ MAKEINFO = makeinfo
NM = /usr/bin/nm -B NM = /usr/bin/nm -B
OBJDUMP = @OBJDUMP@ OBJDUMP = @OBJDUMP@
ODBC = ODBC =
ODBC_INC = ODBC_INC = /usr/local/include
PACKAGE = mdbtools PACKAGE = mdbtools
RANLIB = ranlib RANLIB = ranlib
READLINE_LIBS = -lncurses -lreadline READLINE_LIBS = -lncurses -lreadline

View File

@@ -185,6 +185,8 @@ typedef struct {
unsigned char is_fixed; unsigned char is_fixed;
int query_order; int query_order;
int col_num; int col_num;
int cur_value_start;
int cur_value_len;
} MdbColumn; } MdbColumn;
typedef union { typedef union {

View File

@@ -70,7 +70,7 @@ MAKEINFO = makeinfo
NM = /usr/bin/nm -B NM = /usr/bin/nm -B
OBJDUMP = @OBJDUMP@ OBJDUMP = @OBJDUMP@
ODBC = ODBC =
ODBC_INC = ODBC_INC = /usr/local/include
PACKAGE = mdbtools PACKAGE = mdbtools
RANLIB = ranlib RANLIB = ranlib
READLINE_LIBS = -lncurses -lreadline READLINE_LIBS = -lncurses -lreadline

View File

@@ -70,7 +70,7 @@ MAKEINFO = makeinfo
NM = /usr/bin/nm -B NM = /usr/bin/nm -B
OBJDUMP = @OBJDUMP@ OBJDUMP = @OBJDUMP@
ODBC = ODBC =
ODBC_INC = ODBC_INC = /usr/local/include
PACKAGE = mdbtools PACKAGE = mdbtools
RANLIB = ranlib RANLIB = ranlib
READLINE_LIBS = -lncurses -lreadline READLINE_LIBS = -lncurses -lreadline
@@ -95,7 +95,7 @@ mdb_dump_OBJECTS = mdb-dump.o mdbsupport.o
mdb_dump_LDADD = $(LDADD) mdb_dump_LDADD = $(LDADD)
mdb_dump_DEPENDENCIES = ../libmdb/libmdb.la mdb_dump_DEPENDENCIES = ../libmdb/libmdb.la
mdb_dump_LDFLAGS = mdb_dump_LDFLAGS =
CFLAGS = -g -O2 -DSQL CFLAGS = -g -O2 -DUNIXODBC -DSQL
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC) CCLD = $(CC)

View File

@@ -70,7 +70,7 @@ MAKEINFO = makeinfo
NM = /usr/bin/nm -B NM = /usr/bin/nm -B
OBJDUMP = @OBJDUMP@ OBJDUMP = @OBJDUMP@
ODBC = ODBC =
ODBC_INC = ODBC_INC = /usr/local/include
PACKAGE = mdbtools PACKAGE = mdbtools
RANLIB = ranlib RANLIB = ranlib
READLINE_LIBS = -lncurses -lreadline READLINE_LIBS = -lncurses -lreadline
@@ -94,7 +94,7 @@ libmdb_la_LDFLAGS =
libmdb_la_LIBADD = libmdb_la_LIBADD =
libmdb_la_OBJECTS = catalog.lo mem.lo file.lo kkd.lo table.lo data.lo \ libmdb_la_OBJECTS = catalog.lo mem.lo file.lo kkd.lo table.lo data.lo \
dump.lo backend.lo money.lo sargs.lo index.lo like.lo dump.lo backend.lo money.lo sargs.lo index.lo like.lo
CFLAGS = -g -O2 -DSQL CFLAGS = -g -O2 -DUNIXODBC -DSQL
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC) CCLD = $(CC)

View File

@@ -81,6 +81,7 @@ int bit_num = (col_num - 1) % 8;
** value*/ ** value*/
static int mdb_xfer_bound_bool(MdbHandle *mdb, MdbColumn *col, int value) static int mdb_xfer_bound_bool(MdbHandle *mdb, MdbColumn *col, int value)
{ {
col->cur_value_len = value;
if (col->bind_ptr) { if (col->bind_ptr) {
strcpy(col->bind_ptr, value ? "0" : "1"); strcpy(col->bind_ptr, value ? "0" : "1");
} }
@@ -90,6 +91,13 @@ static int mdb_xfer_bound_data(MdbHandle *mdb, int start, MdbColumn *col, int le
//if (!strcmp("Name",col->name)) { //if (!strcmp("Name",col->name)) {
//printf("start %d %d\n",start, len); //printf("start %d %d\n",start, len);
//} //}
if (len) {
col->cur_value_start = start;
col->cur_value_len = len;
} else {
col->cur_value_start = 0;
col->cur_value_len = 0;
}
if (col->bind_ptr) { if (col->bind_ptr) {
if (len) { if (len) {
strcpy(col->bind_ptr, strcpy(col->bind_ptr,
@@ -114,6 +122,7 @@ int num_of_jumps=0, jumps_used=0;
int eod; /* end of data */ int eod; /* end of data */
int delflag, lookupflag; int delflag, lookupflag;
int bitmask_sz; int bitmask_sz;
int col_ptr, deleted_columns=0;
unsigned char null_mask[33]; /* 256 columns max / 8 bits per byte */ unsigned char null_mask[33]; /* 256 columns max / 8 bits per byte */
unsigned char isnull; unsigned char isnull;
@@ -210,11 +219,17 @@ unsigned char isnull;
num_of_jumps++; num_of_jumps++;
} }
if (mdb->jet_version==MDB_VER_JET4) { if (mdb->jet_version==MDB_VER_JET4) {
eod = mdb_get_int16(mdb, row_end - 2 - var_cols*2 -bitmask_sz - num_of_jumps - 1); col_ptr = row_end - 2 - bitmask_sz - num_of_jumps - 1;
col_start = mdb_get_int16(mdb, row_end - bitmask_sz - 2 - num_of_jumps - 1); eod = mdb_get_int16(mdb, col_ptr - var_cols*2);
col_start = mdb_get_int16(mdb, col_ptr);
} else { } else {
eod = mdb->pg_buf[row_end-1-var_cols-bitmask_sz-num_of_jumps]; col_ptr = row_end - bitmask_sz - num_of_jumps - 1;
col_start = mdb->pg_buf[row_end-bitmask_sz-1-num_of_jumps]; if (mdb->pg_buf[col_ptr]==0xFF) {
col_ptr--;
deleted_columns++;
}
eod = mdb->pg_buf[col_ptr - var_cols];
col_start = mdb->pg_buf[col_ptr];
} }
@@ -243,8 +258,7 @@ unsigned char isnull;
len=mdb->pg_buf[row_end - bitmask_sz - var_cols_found * 2 len=mdb->pg_buf[row_end - bitmask_sz - var_cols_found * 2
- 2 - 1 - num_of_jumps * 2] - col_start; - 2 - 1 - num_of_jumps * 2] - col_start;
} else { } else {
len=mdb->pg_buf[row_end - bitmask_sz - var_cols_found len=mdb->pg_buf[col_ptr - var_cols_found ] - col_start;
- 1 - num_of_jumps ] - col_start;
} }
if (len<0) if (len<0)
len+=256; len+=256;

View File

@@ -70,7 +70,7 @@ MAKEINFO = makeinfo
NM = /usr/bin/nm -B NM = /usr/bin/nm -B
OBJDUMP = @OBJDUMP@ OBJDUMP = @OBJDUMP@
ODBC = ODBC =
ODBC_INC = ODBC_INC = /usr/local/include
PACKAGE = mdbtools PACKAGE = mdbtools
RANLIB = ranlib RANLIB = ranlib
READLINE_LIBS = -lncurses -lreadline READLINE_LIBS = -lncurses -lreadline
@@ -116,7 +116,7 @@ unittest_OBJECTS = unittest.o
unittest_DEPENDENCIES = libmdbodbc.la ../libmdb/libmdb.la \ unittest_DEPENDENCIES = libmdbodbc.la ../libmdb/libmdb.la \
../sql/libmdbsql.la ../sql/libmdbsql.la
unittest_LDFLAGS = unittest_LDFLAGS =
CFLAGS = -g -O2 -DSQL CFLAGS = -g -O2 -DUNIXODBC -DSQL
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC) CCLD = $(CC)

View File

@@ -160,12 +160,12 @@ void SetConnectString (ConnectParams* params, const gchar* connectString)
* remove trailing spaces from name * remove trailing spaces from name
*/ */
end = strlen (name) - 1; end = strlen (name) - 1;
while (end > 0 && name[end] == ' ') while (end > 0 && isspace(name[end]))
name[end--] = '\0'; name[end--] = '\0';
/* /*
* remove leading spaces from value * remove leading spaces from value
*/ */
while (*value == ' ') while (isspace(*value))
value++; value++;
if (g_hash_table_lookup_extended (params->table, name, &key, &oldvalue)) if (g_hash_table_lookup_extended (params->table, name, &key, &oldvalue))
@@ -239,7 +239,7 @@ gchar* ExtractDSN (ConnectParams* params, const gchar* connectString)
* Skip over any leading spaces * Skip over any leading spaces
*/ */
q++; q++;
while (*q == ' ') while (isspace(*q))
q++; q++;
/* /*
* Copy the DSN value to a buffer * Copy the DSN value to a buffer
@@ -410,7 +410,7 @@ static int GetNextItem (FILE* stream, char** name, char** value)
if ((token = strtok (line, equals)) == NULL) return 0; if ((token = strtok (line, equals)) == NULL) return 0;
len = strlen (token); len = strlen (token);
while (len > 0 && token[len-1] == ' ') while (len > 0 && isspace(token[len-1]))
{ {
len--; len--;
token[len] = '\0'; token[len] = '\0';
@@ -421,7 +421,7 @@ static int GetNextItem (FILE* stream, char** name, char** value)
*/ */
token = strtok (NULL, equals); token = strtok (NULL, equals);
if (token == NULL) return 0; if (token == NULL) return 0;
while (*token && token[0] == ' ') while (*token && isspace(token[0]))
token++; token++;
*value = token; *value = token;

View File

@@ -32,7 +32,7 @@
#include "connectparams.h" #include "connectparams.h"
static char software_version[] = "$Id: odbc.c,v 1.4 2002/01/24 12:34:13 brianb Exp $"; static char software_version[] = "$Id: odbc.c,v 1.5 2002/04/03 23:02:54 brianb Exp $";
static void *no_unused_var_warn[] = {software_version, static void *no_unused_var_warn[] = {software_version,
no_unused_var_warn}; no_unused_var_warn};
@@ -527,12 +527,19 @@ SQLRETURN SQL_API SQLColAttributes(
SQLINTEGER FAR *pfDesc) SQLINTEGER FAR *pfDesc)
{ {
int cplen, len = 0; int cplen, len = 0;
int namelen, i;
struct _hstmt *stmt; struct _hstmt *stmt;
struct _hdbc *dbc; struct _hdbc *dbc;
struct _henv *env;
MdbSQL *sql;
MdbSQLColumn *sqlcol;
MdbColumn *col;
MdbTableDef *table;
stmt = (struct _hstmt *) hstmt; stmt = (struct _hstmt *) hstmt;
dbc = (struct _hdbc *) stmt->hdbc; dbc = (struct _hdbc *) stmt->hdbc;
env = (struct _henv *) dbc->henv;
sql = env->sql;
/* dont check column index for these */ /* dont check column index for these */
switch(fDescType) { switch(fDescType) {
@@ -541,17 +548,38 @@ struct _hdbc *dbc;
break; break;
} }
if (icol<1 || icol>sql->num_columns) {
return SQL_ERROR;
}
/* find the column */
sqlcol = g_ptr_array_index(sql->columns,icol - 1);
table = sql->cur_table;
for (i=0;i<table->num_cols;i++) {
col=g_ptr_array_index(table->columns,i);
if (!strcasecmp(sqlcol->name, col->name)) {
break;
}
}
switch(fDescType) { switch(fDescType) {
case SQL_COLUMN_NAME: case SQL_COLUMN_NAME:
case SQL_COLUMN_LABEL:
namelen = MIN(cbDescMax,strlen(sqlcol->name));
strncpy(rgbDesc, sqlcol->name, namelen);
*((char *)&rgbDesc[namelen])='\0';
break; break;
case SQL_COLUMN_TYPE: case SQL_COLUMN_TYPE:
*pcbDesc = SQL_CHAR;
break; break;
case SQL_COLUMN_LENGTH: case SQL_COLUMN_LENGTH:
break; break;
case SQL_COLUMN_DISPLAY_SIZE: //case SQL_COLUMN_DISPLAY_SIZE:
switch(_odbc_get_client_type(1)) { case SQL_DESC_DISPLAY_SIZE:
switch(_odbc_get_client_type(col->col_type)) {
case SQL_CHAR: case SQL_CHAR:
case SQL_VARCHAR: case SQL_VARCHAR:
*pfDesc = col->col_size;
break; break;
case SQL_INTEGER: case SQL_INTEGER:
*pfDesc = 8; *pfDesc = 8;
@@ -562,6 +590,9 @@ struct _hdbc *dbc;
case SQL_TINYINT: case SQL_TINYINT:
*pfDesc = 4; *pfDesc = 4;
break; break;
default:
//fprintf(stderr,"\nUnknown type %d\n", _odbc_get_client_type(col->col_type));
break;
} }
break; break;
} }
@@ -657,6 +688,7 @@ struct _hdbc *dbc = (struct _hdbc *) stmt->hdbc;
struct _henv *env = (struct _henv *) dbc->henv; struct _henv *env = (struct _henv *) dbc->henv;
if (mdb_fetch_row(env->sql->cur_table)) { if (mdb_fetch_row(env->sql->cur_table)) {
stmt->row_affected++;
return SQL_SUCCESS; return SQL_SUCCESS;
} else { } else {
return SQL_NO_DATA_FOUND; return SQL_NO_DATA_FOUND;
@@ -765,7 +797,7 @@ SQLRETURN SQL_API SQLPrepare(
SQLCHAR FAR *szSqlStr, SQLCHAR FAR *szSqlStr,
SQLINTEGER cbSqlStr) SQLINTEGER cbSqlStr)
{ {
struct _hstmt *stmt=(struct _hstmt *)hstmt; struct _hstmt *stmt=(struct _hstmt *)hstmt;
if (cbSqlStr!=SQL_NTS) { if (cbSqlStr!=SQL_NTS) {
strncpy(stmt->query, szSqlStr, cbSqlStr); strncpy(stmt->query, szSqlStr, cbSqlStr);
@@ -781,6 +813,9 @@ SQLRETURN SQL_API SQLRowCount(
SQLHSTMT hstmt, SQLHSTMT hstmt,
SQLINTEGER FAR *pcrow) SQLINTEGER FAR *pcrow)
{ {
struct _hstmt *stmt=(struct _hstmt *)hstmt;
*pcrow = stmt->row_affected;
return SQL_SUCCESS; return SQL_SUCCESS;
} }
@@ -845,10 +880,41 @@ SQLRETURN SQL_API SQLGetData(
SQLINTEGER FAR *pcbValue) SQLINTEGER FAR *pcbValue)
{ {
struct _hstmt *stmt; struct _hstmt *stmt;
struct _hdbc *dbc;
struct _henv *env;
unsigned char *src; unsigned char *src;
int srclen; int srclen;
MdbSQL *sql;
MdbHandle *mdb;
MdbSQLColumn *sqlcol;
MdbColumn *col;
MdbTableDef *table;
int i;
stmt = (struct _hstmt *) hstmt; stmt = (struct _hstmt *) hstmt;
dbc = (struct _hdbc *) stmt->hdbc;
env = (struct _henv *) dbc->henv;
sql = env->sql;
mdb = sql->mdb;
if (icol<1 || icol>sql->num_columns) {
return SQL_ERROR;
}
sqlcol = g_ptr_array_index(sql->columns,icol - 1);
table = sql->cur_table;
for (i=0;i<table->num_cols;i++) {
col=g_ptr_array_index(table->columns,i);
if (!strcasecmp(sqlcol->name, col->name)) {
break;
}
}
strcpy(rgbValue,
mdb_col_to_string(mdb, col->cur_value_start, col->col_type,
col->cur_value_len));
//*((char *)&rgbValue[col->cur_value_len])='\0';
*pcbValue = col->cur_value_len;
return 0; return 0;
} }
@@ -1100,20 +1166,30 @@ static int _odbc_get_server_type(int clt_type)
static SQLSMALLINT _odbc_get_client_type(int srv_type) static SQLSMALLINT _odbc_get_client_type(int srv_type)
{ {
switch (srv_type) { switch (srv_type) {
MDB_BOOL: case MDB_BOOL:
return SQL_BIT; return SQL_BIT;
MDB_BYTE: break;
case MDB_BYTE:
return SQL_TINYINT; return SQL_TINYINT;
MDB_INT: break;
case MDB_INT:
return SQL_SMALLINT; return SQL_SMALLINT;
MDB_LONGINT: break;
case MDB_LONGINT:
return SQL_INTEGER; return SQL_INTEGER;
MDB_FLOAT: break;
case MDB_FLOAT:
return SQL_FLOAT; return SQL_FLOAT;
MDB_DOUBLE: break;
case MDB_DOUBLE:
return SQL_DOUBLE; return SQL_DOUBLE;
MDB_TEXT: break;
case MDB_TEXT:
return SQL_VARCHAR; return SQL_VARCHAR;
break;
default:
// fprintf(stderr,"Unknown type %d\n",srv_type);
break;
} }
} }

View File

@@ -70,7 +70,7 @@ MAKEINFO = makeinfo
NM = /usr/bin/nm -B NM = /usr/bin/nm -B
OBJDUMP = @OBJDUMP@ OBJDUMP = @OBJDUMP@
ODBC = ODBC =
ODBC_INC = ODBC_INC = /usr/local/include
PACKAGE = mdbtools PACKAGE = mdbtools
RANLIB = ranlib RANLIB = ranlib
READLINE_LIBS = -lncurses -lreadline READLINE_LIBS = -lncurses -lreadline
@@ -96,7 +96,7 @@ libmdbsql_la_LIBADD =
libmdbsql_la_OBJECTS = mdbsql.lo parser.lo lexer.lo libmdbsql_la_OBJECTS = mdbsql.lo parser.lo lexer.lo
LEX_OUTPUT_ROOT = lex.yy LEX_OUTPUT_ROOT = lex.yy
LEXLIB = -lfl LEXLIB = -lfl
CFLAGS = -g -O2 -DSQL CFLAGS = -g -O2 -DUNIXODBC -DSQL
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC) CCLD = $(CC)

View File

@@ -70,7 +70,7 @@ MAKEINFO = makeinfo
NM = /usr/bin/nm -B NM = /usr/bin/nm -B
OBJDUMP = @OBJDUMP@ OBJDUMP = @OBJDUMP@
ODBC = ODBC =
ODBC_INC = ODBC_INC = /usr/local/include
PACKAGE = mdbtools PACKAGE = mdbtools
RANLIB = ranlib RANLIB = ranlib
READLINE_LIBS = -lncurses -lreadline READLINE_LIBS = -lncurses -lreadline
@@ -156,7 +156,7 @@ prdump_OBJECTS = prdump.o
prdump_LDADD = $(LDADD) prdump_LDADD = $(LDADD)
prdump_DEPENDENCIES = ../libmdb/libmdb.la prdump_DEPENDENCIES = ../libmdb/libmdb.la
prdump_LDFLAGS = prdump_LDFLAGS =
CFLAGS = -g -O2 -DSQL CFLAGS = -g -O2 -DUNIXODBC -DSQL
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC) CCLD = $(CC)