Skip site navigation (1) Skip section navigation (2)

Re: [INTERFACES] ODBC & bytea

From: Robin Whitworth <rwhit(at)goldwiretech(dot)com>
To: Byron Nikolaidis <byronn(at)solipsys(dot)com>
Cc: pgsql-interfaces(at)postgreSQL(dot)org
Subject: Re: [INTERFACES] ODBC & bytea
Date: 1999-06-23 19:14:57
Message-ID: 37713231.78497751@goldwiretech.com (view raw or flat)
Thread:
Lists: pgsql-interfaces
Here are the relevant portions from the log. The statement
being executed was:

	"INSERT INTO gwt_type_test (type_binary) VALUES (?)"

The buffers bound to the input parameter (as SQL_C_BINARY)
were:

  ubyte value1[] = "backslash: \\";
  ubyte value2[] = "single quote: '";

The log:

DSN info: DSN='rwhit',server='localhost',port='5432',dbase='rwhit',user='',passw
d=''
          readonly='0',protocol='',showoid='',fakeoidindex='',showsystable=''
          conn_settings=''
          translation_dll='',translation_option=''
conn = 134729648, SQLConnect(DSN='rwhit', UID='rwhit', PWD='')
Global Options: Version='06.30.0250', fetch=100, socket=4096, unknown_sizes=0, m
ax_varchar_size=8190, max_longvarchar_size=8190
                disable_optimizer=1, unique_index=0, use_declarefetch=0
                text_as_longvarchar=1, unknowns_as_longvarchar=0, bools_as_char=
1
                extra_systable_prefixes='dd_;', conn_settings=''
conn=134729648, query=' '
conn=134729648, query='set DateStyle to 'ISO''
conn=134729648, query='set geqo to 'OFF''

...

conn=134729648, query='BEGIN'
conn=134729648, query='INSERT INTO gwt_type_test(type_binary) VALUES ('backslash
: \\\000')'
ERROR from backend during send_query: 'ERROR:  Bad input string for type bytea'
conn=134729648, query='COMMIT'
STATEMENT ERROR: func=SC_execute, desc='', errnum=1, errmsg='Error while executi
ng the query'
                 ------------------------------------------------------------
                 hdbc=134729648, stmt=134816168, result=0
                 manual_result=0, prepare=1, internal=0
                 bindings=0, bindings_allocated=0
                 parameters=134766824, parameters_allocated=1
                 statement_type=1, statement='INSERT INTO gwt_type_test(type_bin
ary) VALUES (?)'
                 stmt_with_params='INSERT INTO gwt_type_test(type_binary) VALUES
 ('backslash: \\\000')'
                 data_at_exec=-1, current_exec_param=-1, put_data=0
                 currTuple=-1, current_col=-1, lobj_fd=-1
                 maxRows=0, rowset_size=1, keyset_size=0, cursor_type=0, scroll_
concurrency=1
                 cursor_name='SQL_CUR0x80921a8'
                 ----------------QResult Info -------------------------------
CONN ERROR: func=SC_execute, desc='', errnum=10, errmsg='ERROR:  Bad input strin
g for type bytea'
            ------------------------------------------------------------
            henv=134729096, conn=134729648, status=1, num_stmts=16
            sock=134735944, stmts=134744192, lobj_type=-999
            ---------------- Socket Info -------------------------------
            socket=6, reverse=0, errornumber=0, errormsg='(null)'
            buffer_in=134735984, buffer_out=134740088
            buffer_filled_in=2, buffer_filled_out=0, buffer_read_in=2

...

conn=134729536, query='BEGIN'
conn=134729536, query='INSERT INTO gwt_type_test(type_binary) VALUES ('single qu
ote: '\\000')'
ERROR from backend during send_query: 'ERROR:  parser: parse error at or near "\
"'
conn=134729536, query='COMMIT'
STATEMENT ERROR: func=SC_execute, desc='', errnum=1, errmsg='Error while executi
ng the query'
                 ------------------------------------------------------------
                 hdbc=134729536, stmt=134816056, result=0
                 manual_result=0, prepare=1, internal=0
                 bindings=0, bindings_allocated=0
                 parameters=134766712, parameters_allocated=1
                 statement_type=1, statement='INSERT INTO gwt_type_test(type_bin
ary) VALUES (?)'
                 stmt_with_params='INSERT INTO gwt_type_test(type_binary) VALUES
 ('single quote: '\\000')'
                 data_at_exec=-1, current_exec_param=-1, put_data=0
                 currTuple=-1, current_col=-1, lobj_fd=-1
                 maxRows=0, rowset_size=1, keyset_size=0, cursor_type=0, scroll_
concurrency=1
                 cursor_name='SQL_CUR0x8092138'
                 ----------------QResult Info -------------------------------
CONN ERROR: func=SC_execute, desc='', errnum=10, errmsg='ERROR:  parser: parse e
rror at or near "\"'
            ------------------------------------------------------------
            henv=134728984, conn=134729536, status=1, num_stmts=16
            sock=134735832, stmts=134744080, lobj_type=-999
            ---------------- Socket Info -------------------------------
            socket=5, reverse=0, errornumber=0, errormsg='(null)'
            buffer_in=134735872, buffer_out=134739976


Byron Nikolaidis wrote:
> 
> Robin Whitworth wrote:
> 
> > I'm having trouble inserting binary data into a column of
> > type bytea using a dynamic INSERT. The trouble seems to be if the
> > data contains the values 0x5C (ASCII backslash) or 0x27 (ASCII
> > singlequote). When I bind the input values for these I'm using
> > SQL_C_BINARY. Shouldn't the data just be passed straight through,
> > without any evaluation? Is there something special I need to
> > do to make this work (or is this a bug?)
> >
> 
> Sounds like a bug.   You should be able to see exactly what is being
> sent to the backend by using the driver's log feature.   Could you send
> that logfile which shows the error.
> 
> Byron

-- 
.........................................................
Robin Whitworth                 Gold Wire Technology Inc.
rwhit(at)goldwiretech(dot)com          P.O. Box 103
617.876.9473x1603               Belmont, MA  02478-0001

In response to

pgsql-interfaces by date

Next:From: robert_hiltibidal_at_cms08405Date: 1999-06-23 20:14:50
Subject: Perl module
Previous:From: Craig OrsingerDate: 1999-06-23 18:19:07
Subject: Re: [INTERFACES] Trying to get started?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group