[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Back-sql, debugging



Hello,

I use Sybase 12.5.1 with last last openldap with last unixodbc with last freetds driver.
(with last I mean the stable release of 1.04.04)


I don't know other free odbc driver to try.

Regards and thanks for help

Goyman

Pierangelo Masarati wrote:
I thinkl it's finally time that you tell us what version of OpenLDAP
software you're using, and what ODBC and what RDBMS, just for the records.
 I note that there's plenty of error messaging in back-sql; you get none
because the ODBC is returning none to the client.  Apparently, at_query is
failing, but the ODBC can't tell why.  It logs this obscure line,

    IF @@TRANCOUNT > 0 ROLLBACK BEGIN TRANSACTION

which looks like the ODBC issued a rollback, and the RDBMS didn't like it.
 I know some RDBMS need a commit/rollback before closing a transaction,
even when only read operations were performed.  Others don't tolerate it
on read operations.  AFAIK back-sql does the rollback after reads, but I
don't see any between the oc_ and the at_ queries, so it might be
something internal to the ODBC.  I suggest you try another one.

p.


Pierangelo Masarati wrote:

Hello,

thanks for the answer, but I was executing slapd with -d 1 since I
begun
to work with.

There is a little thing I do not understand, I got this output from
slapd:

backsql_get_db_conn(): first call -- reading schema map
==>backsql_load_schema_map()
backsql_load_schema_map(): at_query 'SELECT
name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return
FROM ldap_attr_mappings WHERE oc_map_id=?'
backsql_load_schema_map(): objectClass 'organizationalUnit':
keytbl='orgunit' keycol='id'
expect_return: add=0, del=0; attributes:
backsql_load_schema_map(): autoadding 'objectClass' and 'ref' mappings
backsql_load_schema_map(): error executing at_query:
Return code: -1
==>backsql_free_db_conn()


But where I do not understand is that the real sql executed in the db is:

00:00000:00019:2004/04/11 17:59:34.75 server  TDS_LANG, spid 19:
command
text:
set textsize 64512 use GAddress
00:00000:00019:2004/04/11 17:59:34.76 server  TDS_LANG, spid 19:
command
text:
BEGIN TRANSACTION
00:00000:00019:2004/04/11 17:59:34.77 server  TDS_DYNP, spid 19:
command
text:
create proc wlkz006000 as SELECT
id,name,keytbl,keycol,create_proc,delete_proc,expect_return FROM
ldap_oc_mappings
00:00000:00019:2004/04/11 17:59:34.81 server  TDS_LANG, spid 19:
command
text:
IF @@TRANCOUNT > 0 ROLLBACK BEGIN TRANSACTION



The query is above:

SELECT
id,name,keytbl,keycol,create_proc,delete_proc,expect_return FROM
ldap_oc_mappings

Do yu have ldap_oc_mappings?  Does it have the requested columns? This
output looks really obscure to me.  You may want to add a few printf
in back-sql before the queries are executed.

p.



Hello,

this query work, the query that don't work, and that's not executed is
the at_query (SELECT
name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return

 FROM ldap_attr_mappings WHERE oc_map_id=?).

I checked the source code, and this error is printed if the execution of
the query fail, but the query is not executed (as you can see in the
sql  output).

So I do not understand why.

Regards

Goyman