mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-11-25 17:59:54 +08:00
iconv conversion code
This commit is contained in:
17
ChangeLog
17
ChangeLog
@@ -1,3 +1,16 @@
|
|||||||
|
Fri Nov 26 00:10:58 EST 2004 Brian Bruns <brian@bruns.com>
|
||||||
|
* include/mdbtools.h:
|
||||||
|
* src/gmdb2/table_def.c:
|
||||||
|
* src/gmdb2/gladefiles/gmdb-schema.glade:
|
||||||
|
* src/libmdb/data.c:
|
||||||
|
* src/libmdb/file.c:
|
||||||
|
* src/libmdb/iconv.c:
|
||||||
|
* src/libmdb/index.c:
|
||||||
|
* src/libmdb/options.c:
|
||||||
|
* src/libmdb/sargs.c:
|
||||||
|
* src/libmdb/table.c:
|
||||||
|
* src/sql/mdbsql.c: iconv conversion
|
||||||
|
|
||||||
Sat Nov 13 20:33:42 EST 2004 Brian Bruns <brian@bruns.com>
|
Sat Nov 13 20:33:42 EST 2004 Brian Bruns <brian@bruns.com>
|
||||||
* src/gmdb2/gmdb.h: remove redeclaration errors
|
* src/gmdb2/gmdb.h: remove redeclaration errors
|
||||||
* src/gmdb2/sql.c: fix compiler warnings
|
* src/gmdb2/sql.c: fix compiler warnings
|
||||||
@@ -257,13 +270,13 @@ Mon Jun 21 23:18:18 CDT 2004 Jeff Smith <whydoubt@yahoo.com>
|
|||||||
* src/libmdb/like.c:
|
* src/libmdb/like.c:
|
||||||
* src/libmdb/money.c: Add gtkdoc to various functions
|
* src/libmdb/money.c: Add gtkdoc to various functions
|
||||||
|
|
||||||
Sun Jun 20 09:37:58 EDT 2004 Brian Bruns <brian@bruns.com.
|
Sun Jun 20 09:37:58 EDT 2004 Brian Bruns <brian@bruns.com>
|
||||||
* configure.in:
|
* configure.in:
|
||||||
* acinclude.m4: use READLINE macro from Ville Laurikari. Remove full macroset to work around broken BSD autoconf. Add macro for iconv detection.
|
* acinclude.m4: use READLINE macro from Ville Laurikari. Remove full macroset to work around broken BSD autoconf. Add macro for iconv detection.
|
||||||
* src/util/mdb-sql.c: add stubs for read_history/write_history if no readline. update to use new readline defines.
|
* src/util/mdb-sql.c: add stubs for read_history/write_history if no readline. update to use new readline defines.
|
||||||
* HACKING: reverse order of total column count with current column count.
|
* HACKING: reverse order of total column count with current column count.
|
||||||
* README: fix typo
|
* README: fix typo
|
||||||
* include: add iconv handle to MdbHandle
|
* include/mdbtools.h: add iconv handle to MdbHandle
|
||||||
* src/libmdb/file.c: add gtkdoc to mdb_find_file()
|
* src/libmdb/file.c: add gtkdoc to mdb_find_file()
|
||||||
* src/libmdb/Makefile.am:
|
* src/libmdb/Makefile.am:
|
||||||
* src/sql/Makefile.am: add libtool versioning
|
* src/sql/Makefile.am: add libtool versioning
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
#ifdef HAVE_ICONV
|
#ifdef HAVE_ICONV
|
||||||
#include <iconv.h>
|
#include <iconv.h>
|
||||||
@@ -120,7 +121,8 @@ enum {
|
|||||||
MDB_DEBUG_USAGE = 0x0004,
|
MDB_DEBUG_USAGE = 0x0004,
|
||||||
MDB_DEBUG_OLE = 0x0008,
|
MDB_DEBUG_OLE = 0x0008,
|
||||||
MDB_DEBUG_ROW = 0x0010,
|
MDB_DEBUG_ROW = 0x0010,
|
||||||
MDB_USE_INDEX = 0x0020
|
MDB_USE_INDEX = 0x0020,
|
||||||
|
MDB_NO_MEMO = 0x0040 /* don't follow memo fields */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define mdb_is_logical_op(x) (x == MDB_OR || \
|
#define mdb_is_logical_op(x) (x == MDB_OR || \
|
||||||
@@ -226,7 +228,9 @@ typedef struct {
|
|||||||
MdbFormatConstants *fmt;
|
MdbFormatConstants *fmt;
|
||||||
MdbStatistics *stats;
|
MdbStatistics *stats;
|
||||||
#ifdef HAVE_ICONV
|
#ifdef HAVE_ICONV
|
||||||
|
iconv_t iconv_in;
|
||||||
iconv_t iconv_out;
|
iconv_t iconv_out;
|
||||||
|
iconv_t iconv_compress;
|
||||||
#endif
|
#endif
|
||||||
} MdbHandle;
|
} MdbHandle;
|
||||||
|
|
||||||
@@ -526,7 +530,7 @@ extern int mdb_get_option(unsigned long optnum);
|
|||||||
extern void mdb_debug(int klass, char *fmt, ...);
|
extern void mdb_debug(int klass, char *fmt, ...);
|
||||||
|
|
||||||
/* iconv.c */
|
/* iconv.c */
|
||||||
extern int mdb_unicode2ascii(MdbHandle *mdb, unsigned char *buf, int offset, unsigned int len, char *dest);
|
extern int mdb_unicode2ascii(MdbHandle *mdb, unsigned char *buf, int offset, unsigned int len, char *dest, unsigned int dest_sz);
|
||||||
extern int mdb_ascii2unicode(MdbHandle *mdb, unsigned char *buf, int offset, unsigned int len, char *dest);
|
extern int mdb_ascii2unicode(MdbHandle *mdb, unsigned char *buf, int offset, unsigned int len, char *dest, unsigned int dest_sz);
|
||||||
|
|
||||||
#endif /* _mdbtools_h_ */
|
#endif /* _mdbtools_h_ */
|
||||||
|
|||||||
@@ -239,7 +239,7 @@
|
|||||||
<property name="editable">False</property>
|
<property name="editable">False</property>
|
||||||
<property name="visibility">True</property>
|
<property name="visibility">True</property>
|
||||||
<property name="max_length">0</property>
|
<property name="max_length">0</property>
|
||||||
<property name="text" translatable="yes"></property>
|
<property name="text" translatable="yes">Access</property>
|
||||||
<property name="has_frame">True</property>
|
<property name="has_frame">True</property>
|
||||||
<property name="invisible_char" translatable="yes">*</property>
|
<property name="invisible_char" translatable="yes">*</property>
|
||||||
<property name="activates_default">False</property>
|
<property name="activates_default">False</property>
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ GtkStyle *style;
|
|||||||
/* do we have an active window for this object? if so raise it */
|
/* do we have an active window for this object? if so raise it */
|
||||||
for (i=0;i<g_list_length(window_list);i++) {
|
for (i=0;i<g_list_length(window_list);i++) {
|
||||||
defw = g_list_nth_data(window_list, i);
|
defw = g_list_nth_data(window_list, i);
|
||||||
if (!strcmp(defw->table_name, entry->object_name)) {
|
if (!strcmp(defw->table_name, entry->object_name) && entry->object_type == MDB_TABLE) {
|
||||||
gdk_window_raise (defw->window->window);
|
gdk_window_raise (defw->window->window);
|
||||||
return defw->window;
|
return defw->window;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -638,7 +638,7 @@ static char *mdb_memo_to_string(MdbHandle *mdb, int start, int size)
|
|||||||
strncpy(text, buf + row_start, len);
|
strncpy(text, buf + row_start, len);
|
||||||
text[len]='\0';
|
text[len]='\0';
|
||||||
} else {
|
} else {
|
||||||
mdb_unicode2ascii(mdb, buf, row_start, len, text);
|
mdb_unicode2ascii(mdb, buf, row_start, len, text, MDB_BIND_SIZE);
|
||||||
}
|
}
|
||||||
return text;
|
return text;
|
||||||
} else { /* if (memo_flags == 0x0000) { */
|
} else { /* if (memo_flags == 0x0000) { */
|
||||||
@@ -749,7 +749,7 @@ char *mdb_col_to_string(MdbHandle *mdb, unsigned char *buf, int start, int datat
|
|||||||
}
|
}
|
||||||
fprintf(stdout, "\n");
|
fprintf(stdout, "\n");
|
||||||
*/
|
*/
|
||||||
mdb_unicode2ascii(mdb, mdb->pg_buf, start, size, text);
|
mdb_unicode2ascii(mdb, mdb->pg_buf, start, size, text, MDB_BIND_SIZE);
|
||||||
} else {
|
} else {
|
||||||
strncpy(text, &buf[start], size);
|
strncpy(text, &buf[start], size);
|
||||||
text[size]='\0';
|
text[size]='\0';
|
||||||
|
|||||||
@@ -153,6 +153,7 @@ MdbHandle *mdb_open(char *filename, MdbFileFlags flags)
|
|||||||
mdb_close(mdb);
|
mdb_close(mdb);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
mdb_iconv_init(mdb);
|
||||||
|
|
||||||
return mdb;
|
return mdb;
|
||||||
}
|
}
|
||||||
@@ -182,6 +183,8 @@ mdb_close(MdbHandle *mdb)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mdb_iconv_close(mdb);
|
||||||
|
|
||||||
g_free(mdb);
|
g_free(mdb);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -211,6 +214,8 @@ MdbHandle *mdb_clone_handle(MdbHandle *mdb)
|
|||||||
if (mdb->f) {
|
if (mdb->f) {
|
||||||
mdb->f->refs++;
|
mdb->f->refs++;
|
||||||
}
|
}
|
||||||
|
mdb_iconv_init(mdb);
|
||||||
|
|
||||||
return newmdb;
|
return newmdb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,14 +24,37 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
int
|
int
|
||||||
mdb_unicode2ascii(MdbHandle *mdb, unsigned char *buf, int offset, unsigned int len, char *dest)
|
mdb_unicode2ascii(MdbHandle *mdb, unsigned char *buf, int offset, unsigned int len, char *dest, unsigned int dest_sz)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i, ret;
|
||||||
|
int len_in, len_out;
|
||||||
|
char *in_ptr, *out_ptr;
|
||||||
|
|
||||||
|
in_ptr = &buf[offset];
|
||||||
|
out_ptr = dest;
|
||||||
|
len_in = len;
|
||||||
|
len_out = dest_sz;
|
||||||
|
|
||||||
if (buf[offset]==0xff && buf[offset+1]==0xfe) {
|
if (buf[offset]==0xff && buf[offset+1]==0xfe) {
|
||||||
strncpy(dest, &buf[offset+2], len-2);
|
len_in -= 2;
|
||||||
dest[len-2]='\0';
|
in_ptr = &buf[offset+2];
|
||||||
|
ret = iconv(mdb->iconv_compress, &in_ptr, &len_in, &out_ptr, &len_out);
|
||||||
|
dest[dest_sz - len_out]='\0';
|
||||||
|
return dest_sz - len_out;
|
||||||
|
//strncpy(dest, &buf[offset+2], len-2);
|
||||||
|
//dest[len-2]='\0';
|
||||||
} else {
|
} else {
|
||||||
|
#ifdef HAVE_ICONV
|
||||||
|
if (mdb->iconv_in) {
|
||||||
|
//printf("1 len_in %d len_out %d\n",len_in, len_out);
|
||||||
|
ret = iconv(mdb->iconv_in, &in_ptr, &len_in, &out_ptr, &len_out);
|
||||||
|
//printf("2 len_in %d len_out %d\n",len_in, len_out);
|
||||||
|
dest[dest_sz - len_out]='\0';
|
||||||
|
//printf("dest %s\n",dest);
|
||||||
|
return dest_sz - len_out;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* convert unicode to ascii, rather sloppily */
|
/* convert unicode to ascii, rather sloppily */
|
||||||
for (i=0;i<len;i+=2)
|
for (i=0;i<len;i+=2)
|
||||||
dest[i/2] = buf[offset + i];
|
dest[i/2] = buf[offset + i];
|
||||||
@@ -41,12 +64,30 @@ mdb_unicode2ascii(MdbHandle *mdb, unsigned char *buf, int offset, unsigned int l
|
|||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
mdb_ascii2unicode(MdbHandle *mdb, unsigned char *buf, int offset, unsigned int len, char *dest)
|
mdb_ascii2unicode(MdbHandle *mdb, unsigned char *buf, int offset, unsigned int len, char *dest, unsigned int dest_sz)
|
||||||
{
|
{
|
||||||
unsigned int i = 0;
|
unsigned int i = 0, ret;
|
||||||
|
size_t len_in, len_out, len_orig;
|
||||||
|
char *in_ptr, *out_ptr;
|
||||||
|
|
||||||
|
in_ptr = &buf[offset];
|
||||||
|
out_ptr = dest;
|
||||||
|
len_orig = strlen(in_ptr);
|
||||||
|
len_in = len_orig;
|
||||||
|
len_out = dest_sz;
|
||||||
|
|
||||||
if (!buf) return 0;
|
if (!buf) return 0;
|
||||||
|
|
||||||
|
#ifdef HAVE_ICONV
|
||||||
|
if (mdb->iconv_out) {
|
||||||
|
ret = iconv(mdb->iconv_out, &in_ptr, &len_in, &out_ptr, &len_out);
|
||||||
|
//printf("len_in %d len_out %d\n",len_in, len_out);
|
||||||
|
dest[dest_sz - len_out]='\0';
|
||||||
|
dest[dest_sz - len_out + 1]='\0';
|
||||||
|
return dest_sz - len_out;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (IS_JET3(mdb)) {
|
if (IS_JET3(mdb)) {
|
||||||
strncpy(dest, &buf[offset], len);
|
strncpy(dest, &buf[offset], len);
|
||||||
dest[len]='\0';
|
dest[len]='\0';
|
||||||
@@ -61,3 +102,31 @@ mdb_ascii2unicode(MdbHandle *mdb, unsigned char *buf, int offset, unsigned int l
|
|||||||
|
|
||||||
return (i*2);
|
return (i*2);
|
||||||
}
|
}
|
||||||
|
void mdb_iconv_init(MdbHandle *mdb)
|
||||||
|
{
|
||||||
|
char *iconv_code;
|
||||||
|
|
||||||
|
/* check environment variable */
|
||||||
|
if (!(iconv_code=(char *)getenv("MDB_ICONV"))) {
|
||||||
|
iconv_code="UTF-8";
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_ICONV
|
||||||
|
if (IS_JET4(mdb)) {
|
||||||
|
mdb->iconv_out = iconv_open("UCS-2LE", iconv_code);
|
||||||
|
mdb->iconv_in = iconv_open(iconv_code, "UCS-2LE");
|
||||||
|
mdb->iconv_compress = iconv_open(iconv_code, "ISO8859-1");
|
||||||
|
} else {
|
||||||
|
/* XXX - need to determine character set from file */
|
||||||
|
mdb->iconv_out = iconv_open("ISO8859-1", iconv_code);
|
||||||
|
mdb->iconv_in = iconv_open(iconv_code, "ISO8859-1");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
void mdb_iconv_close(MdbHandle *mdb)
|
||||||
|
{
|
||||||
|
#ifdef HAVE_ICONV
|
||||||
|
if (mdb->iconv_out != -1) iconv_close(mdb->iconv_out);
|
||||||
|
if (mdb->iconv_in != -1) iconv_close(mdb->iconv_in);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ mdb_read_indices(MdbTableDef *table)
|
|||||||
tmpbuf = g_malloc(name_sz);
|
tmpbuf = g_malloc(name_sz);
|
||||||
read_pg_if_n(mdb, tmpbuf, &cur_pos, name_sz);
|
read_pg_if_n(mdb, tmpbuf, &cur_pos, name_sz);
|
||||||
cur_pos += name_sz;
|
cur_pos += name_sz;
|
||||||
mdb_unicode2ascii(mdb, tmpbuf, 0, name_sz, pidx->name);
|
mdb_unicode2ascii(mdb, tmpbuf, 0, name_sz, pidx->name, name_sz);
|
||||||
g_free(tmpbuf);
|
g_free(tmpbuf);
|
||||||
} else {
|
} else {
|
||||||
read_pg_if(mdb, &cur_pos, 0);
|
read_pg_if(mdb, &cur_pos, 0);
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ load_options()
|
|||||||
opt = strtok(s, ":");
|
opt = strtok(s, ":");
|
||||||
do {
|
do {
|
||||||
if (!strcmp(opt, "use_index")) opts |= MDB_USE_INDEX;
|
if (!strcmp(opt, "use_index")) opts |= MDB_USE_INDEX;
|
||||||
|
if (!strcmp(opt, "no_memo")) opts |= MDB_NO_MEMO;
|
||||||
if (!strcmp(opt, "debug_like")) opts |= MDB_DEBUG_LIKE;
|
if (!strcmp(opt, "debug_like")) opts |= MDB_DEBUG_LIKE;
|
||||||
if (!strcmp(opt, "debug_write")) opts |= MDB_DEBUG_WRITE;
|
if (!strcmp(opt, "debug_write")) opts |= MDB_DEBUG_WRITE;
|
||||||
if (!strcmp(opt, "debug_usage")) opts |= MDB_DEBUG_USAGE;
|
if (!strcmp(opt, "debug_usage")) opts |= MDB_DEBUG_USAGE;
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ int lastchar;
|
|||||||
break;
|
break;
|
||||||
case MDB_TEXT:
|
case MDB_TEXT:
|
||||||
if (IS_JET4(mdb)) {
|
if (IS_JET4(mdb)) {
|
||||||
mdb_unicode2ascii(mdb, field->value, 0, field->siz, tmpbuf);
|
mdb_unicode2ascii(mdb, field->value, 0, field->siz, tmpbuf, 256);
|
||||||
} else {
|
} else {
|
||||||
strncpy(tmpbuf, field->value, 255);
|
strncpy(tmpbuf, field->value, 255);
|
||||||
lastchar = field->siz > 255 ? 255 : field->siz;
|
lastchar = field->siz > 255 ? 255 : field->siz;
|
||||||
|
|||||||
@@ -274,7 +274,7 @@ GPtrArray *mdb_read_columns(MdbTableDef *table)
|
|||||||
cur_pos += 2;
|
cur_pos += 2;
|
||||||
tmp_buf = (char *) g_malloc(name_sz);
|
tmp_buf = (char *) g_malloc(name_sz);
|
||||||
read_pg_if_n(mdb, tmp_buf, &cur_pos, name_sz);
|
read_pg_if_n(mdb, tmp_buf, &cur_pos, name_sz);
|
||||||
mdb_unicode2ascii(mdb, tmp_buf, 0, name_sz, pcol->name);
|
mdb_unicode2ascii(mdb, tmp_buf, 0, name_sz, pcol->name, name_sz);
|
||||||
g_free(tmp_buf);
|
g_free(tmp_buf);
|
||||||
cur_pos += name_sz;
|
cur_pos += name_sz;
|
||||||
} else if (IS_JET3(mdb)) {
|
} else if (IS_JET3(mdb)) {
|
||||||
|
|||||||
@@ -540,7 +540,7 @@ void mdb_sql_listtables(MdbSQL *sql)
|
|||||||
entry = g_ptr_array_index (mdb->catalog, i);
|
entry = g_ptr_array_index (mdb->catalog, i);
|
||||||
if (mdb_is_user_table(entry)) {
|
if (mdb_is_user_table(entry)) {
|
||||||
//col = g_ptr_array_index(table->columns,0);
|
//col = g_ptr_array_index(table->columns,0);
|
||||||
tmpsiz = mdb_ascii2unicode(mdb, entry->object_name, 0, 100, tmpstr);
|
tmpsiz = mdb_ascii2unicode(mdb, entry->object_name, 0, strlen(entry->object_name), tmpstr, 100);
|
||||||
mdb_fill_temp_field(&fields[0],tmpstr, tmpsiz, 0,0,0,0);
|
mdb_fill_temp_field(&fields[0],tmpstr, tmpsiz, 0,0,0,0);
|
||||||
row_size = mdb_pack_row(ttable, row_buffer, 1, fields);
|
row_size = mdb_pack_row(ttable, row_buffer, 1, fields);
|
||||||
mdb_add_row_to_pg(ttable,row_buffer, row_size);
|
mdb_add_row_to_pg(ttable,row_buffer, row_size);
|
||||||
@@ -605,15 +605,15 @@ void mdb_sql_describe_table(MdbSQL *sql)
|
|||||||
for (i=0;i<table->num_cols;i++) {
|
for (i=0;i<table->num_cols;i++) {
|
||||||
|
|
||||||
col = g_ptr_array_index(table->columns,i);
|
col = g_ptr_array_index(table->columns,i);
|
||||||
tmpsiz = mdb_ascii2unicode(mdb, col->name, 0, 100, col_name);
|
tmpsiz = mdb_ascii2unicode(mdb, col->name, 0, strlen(col->name), col_name, 100);
|
||||||
mdb_fill_temp_field(&fields[0],col_name, tmpsiz, 0,0,0,0);
|
mdb_fill_temp_field(&fields[0],col_name, tmpsiz, 0,0,0,0);
|
||||||
|
|
||||||
strcpy(tmpstr, mdb_get_coltype_string(mdb->default_backend, col->col_type));
|
strcpy(tmpstr, mdb_get_coltype_string(mdb->default_backend, col->col_type));
|
||||||
tmpsiz = mdb_ascii2unicode(mdb, tmpstr, 0, 100, col_type);
|
tmpsiz = mdb_ascii2unicode(mdb, tmpstr, 0, strlen(col->name), col_type, 100);
|
||||||
mdb_fill_temp_field(&fields[1],col_type, tmpsiz, 0,0,0,1);
|
mdb_fill_temp_field(&fields[1],col_type, tmpsiz, 0,0,0,1);
|
||||||
|
|
||||||
sprintf(tmpstr,"%d",col->col_size);
|
sprintf(tmpstr,"%d",col->col_size);
|
||||||
tmpsiz = mdb_ascii2unicode(mdb, tmpstr, 0, 100, col_size);
|
tmpsiz = mdb_ascii2unicode(mdb, tmpstr, 0, strlen(tmpstr), col_size, 100);
|
||||||
mdb_fill_temp_field(&fields[2],col_size, tmpsiz, 0,0,0,2);
|
mdb_fill_temp_field(&fields[2],col_size, tmpsiz, 0,0,0,2);
|
||||||
|
|
||||||
row_size = mdb_pack_row(ttable, row_buffer, 3, fields);
|
row_size = mdb_pack_row(ttable, row_buffer, 3, fields);
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
#include "mdbtools.h"
|
#include "mdbtools.h"
|
||||||
|
|
||||||
#define MSYSOBJECTS "MSysObjects"
|
#define MSYSOBJECTS "MSysObjects"
|
||||||
#define LVPROP "LvProp"
|
#define LVPROP "Lv"
|
||||||
|
|
||||||
#undef MDB_DEBUG
|
#undef MDB_DEBUG
|
||||||
//#define MDB_DEBUG 1
|
//#define MDB_DEBUG 1
|
||||||
@@ -60,7 +60,7 @@ main(int argc, char **argv)
|
|||||||
mdb_read_columns(table);
|
mdb_read_columns(table);
|
||||||
mdb_rewind_table(table);
|
mdb_rewind_table(table);
|
||||||
|
|
||||||
col_num = mdb_bind_column_by_name(table, LVPROP, buf);
|
col_num = mdb_bind_column_by_name(table, argv[optind+2], buf);
|
||||||
mdb_bind_len(table, col_num, &len);
|
mdb_bind_len(table, col_num, &len);
|
||||||
mdb_bind_column_by_name(table, "Name", name);
|
mdb_bind_column_by_name(table, "Name", name);
|
||||||
|
|
||||||
@@ -68,6 +68,7 @@ main(int argc, char **argv)
|
|||||||
if (!strcmp(name, argv[optind+1])) {
|
if (!strcmp(name, argv[optind+1])) {
|
||||||
memcpy(kkd_ptr, buf, MDB_MEMO_OVERHEAD);
|
memcpy(kkd_ptr, buf, MDB_MEMO_OVERHEAD);
|
||||||
col=g_ptr_array_index(table->columns,col_num - 1);
|
col=g_ptr_array_index(table->columns,col_num - 1);
|
||||||
|
/*
|
||||||
len = mdb_ole_read(mdb, col, kkd_ptr, MDB_BIND_SIZE);
|
len = mdb_ole_read(mdb, col, kkd_ptr, MDB_BIND_SIZE);
|
||||||
memcpy(kkd_pg, buf, len);
|
memcpy(kkd_pg, buf, len);
|
||||||
pos = len;
|
pos = len;
|
||||||
@@ -75,8 +76,10 @@ main(int argc, char **argv)
|
|||||||
memcpy(&kkd_pg[pos], buf, len);
|
memcpy(&kkd_pg[pos], buf, len);
|
||||||
pos += len;
|
pos += len;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
len = pos;
|
len = pos;
|
||||||
dump_kkd(kkd_pg, len);
|
buffer_dump(buf, 0, MDB_MEMO_OVERHEAD);
|
||||||
|
//dump_kkd(kkd_pg, len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user