pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Jose' Soares <jose@sferacarta.com>
To: Byron Nikolaidis <byronn@insightdist.com>
Cc: Sferacarta Software <sferac@bo.nettuno.it>
Cc: pgsql-interfaces@postgresql.org, "pgsql-hackers@hub.org" <pgsql-hackers@hub.org>
Subject: Re: [HACKERS] Re: [INTERFACES] Odbc parser error
Date: Thu, 22 Oct 1998 10:13:15 +0200
Message-ID: <362EE91B.879374AA@sferacarta.com> (raw)
References: <8440.980917@bo.nettuno.it>
	<3601721B.B2493AA3@insightdist.com>

Byron Nikolaidis wrote:
> 
> Jose' Soares (Sferacarta Software) wrote:
> 
> > Hi all,
> >
> > Seems that ODBC driver have some problems while it translate Access
> > commands.
> > I created a form with a subform joined by two columns.
> >
> > after the Access Addnew event, log file returns the following error:
> > -----------------------------------------------------------------------
> > conn=75511800, query='SELECT "risanamento"."oid" FROM "risanamento" WHERE (("distretto" =  '' ) AND ("progressivo" =  NULL ) ) '
> > ERROR from backend during send_query: 'ERROR:  parser: parse error at or near "null"'
> > STATEMENT ERROR: func=SC_execute, desc='', errnum=1, errmsg='Error while executing the query'
> > ------------------------------------------------------------------------
> > NB: Note that parser translate ("progressivo" =  NULL) instead of
> > ("progressivo" IS NULL).
> >
> >
> 
> Yes, the NULL works for parameters of an update statement, where Access would specify a statement such as "update table set param =
> ? where x = 1".  But it doesn't work in a select statement.  I don't think I have much to work with here.  The statement comes in as
> something like "select * from table where x = ?".  I have to replace the ? with something.  On updates, 'NULL' works fine.
> 
> I'm not sure what to do about this.  On other dbms, parameter passing is handled through a separate protocol to the backend, usually
> after a prepare statement, so on these its no problem to send a null, or large amounts of ascii/binary data, without having to worry
> about direct substitution into the sql string or hitting the upper limit of the statement string.  I think until Postgres has such
> as protocol for parameter substitution/passing, it will be difficult to fix this problem.
> 
> Any suggestions?
> 
Yes, I would to suggest a way to solve this problem because in Access we
can't link two tables
by a numeric field, for example:

I have 2 tables:

ORDER_MASTER:		ORDER_DETAIL:
--------------		--------------
numero	SERIAL	<--->	numero	SERIAL
...			...

When I try to create a new ORDER, the connection goes down with message:

# conn=75511800, query='SELECT "order_detail"."numero" FROM
"order_detail" WHERE ("numero" =  NULL )'
# ERROR from backend during send_query: 'ERROR:  parser: parse error at
or near "null"'


I know this is not standard but Access understand both syntaxes (i.e.:

SELECT * FROM table WHERE field IS NULL;      =  SELECT * FROM table
WHERE field = NULL;
SELECT * FROM table WHERE field IS NOT NULL;  =  SELECT * FROM table
WHERE field <> NULL;

Why not to get PostgreSQL to understand it also ?

Thank you for any help
        Jose'



view thread (8+ messages)  latest in thread

Message-ID: <362EE91B.879374AA@sferacarta.com>
Permalink:  ../362EE91B.879374AA@sferacarta.com/
Also on:    postgresql.org/message-id/362EE91B.879374AA@sferacarta.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: jose@sferacarta.com, byronn@insightdist.com, sferac@bo.nettuno.it, pgsql-hackers@hub.org
  Subject: Re: [HACKERS] Re: [INTERFACES] Odbc parser error
  In-Reply-To: <362EE91B.879374AA@sferacarta.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox