Обсуждение: SQLFreeStmt(hstmt, SQL_DROP); Failure ?

Поиск
Список
Период
Сортировка

SQLFreeStmt(hstmt, SQL_DROP); Failure ?

От
"lothar.behrens@lollisoft.de"
Дата:
Hi,

I have a repeatable failure in my application. The code normally works
and I could not determine the
differences between my manual login and automatic login procedure.

The problem occures when I have activated automatic login of the user
on application startup.
This has nothing to do with driver login or database login to
PostgreSQL.

The point where the crash happens is very late and there have been made
many SQL requests using
the driver. I have stepped trough short before the line of the crash
and the program state seems to be ok.

Afterwards, the this pointer of my class is overwritten.
(first parameter on the function where SQLFreeStmt is used)

Tried to give you more details with a trace failed while trying to
setup the odbc.ini Debug/Trace flag.
I use psqlodbc-07.03.0200 (./configure --with-unixodbc
--enable-debug=yes)

Did someone knows, why the trace isn't activated ?

Thanks, Lothar

My computer: Mac OS X 10.3.9

My ODBC installation:
lothars-Computer:~ lothar$ odbcinst -j
unixODBC 2.2.11
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
USER DATA SOURCES..: /Users/lothar/.odbc.ini
lothars-Computer:~ lothar$


My ~/.odbc.ini file:
[ODBC Data Sources]
myodbc     = MySQL ODBC 3.51 Driver
brokers    = PostgreSQL
trainres   = PostgreSQL
sqlledger  = PostgreSQL
Musik      = PostgreSQL
snort      = PostgreSQL
lbDMFMySQL = MySQL ODBC 3.51 Driver
lbDMF      = PostgreSQL

[lbDMF]
Driver           = /usr/local/lib/psqlodbc.so
Description      = Configuration for DMF
Servername       = *.*.*.*
Username         = dba
Password         = ********
Database         = lbdmf
Port             = 5432
Protocol         = 6.4
BoolsAsChar      = 0
ShowSystemTables = 1
TrueIsMinus1     = 1
Trace            = 1
TraceFile        = /Users/lothar/lbDMF.log
Debug            = 1
DebugFile        = /Users/lothar/lbDMF.debug.log


Re: SQLFreeStmt(hstmt, SQL_DROP); Failure ?

От
Ludek Finstrle
Дата:
> Did someone knows, why the trace isn't activated ?

Are you talking about mylog output or something else?

> Debug            = 1
> DebugFile        = /Users/lothar/lbDMF.debug.log

DebugFile isn't supported as I know.
Where are you looking for debug? It should be in /tmp directory named
something like mylog.<pid>

Regards,

Luf

Re: SQLFreeStmt(hstmt, SQL_DROP); Failure ?

От
"lothar.behrens@lollisoft.de"
Дата:
Ludek Finstrle schrieb:

> > Did someone knows, why the trace isn't activated ?
>
> Are you talking about mylog output or something else?

I mean mylog. The function wich reports every function call and more.

>
> > Debug            = 1
> > DebugFile        = /Users/lothar/lbDMF.debug.log
>
> DebugFile isn't supported as I know.
> Where are you looking for debug? It should be in /tmp directory named
> something like mylog.<pid>

I also have had a look at /tmp. There isn't such a file. This is
because mylog_on
is false:

void
mylog(char *fmt,...)
{
    va_list        args;
    char        filebuf[80];
    static FILE *LOGFP = NULL;

    ENTER_MYLOG_CS;
    if (mylog_on)
    {
...

Do I have to activate these logging via ./configure ?

But nevertheless, I think, I get a corrupted stack. In the case where I
had used iodbc drivermanager
this lead into the behaviour, that SQLFreeStmt didn't come back.

Currently, with unixodbc drivermanager, I seem to have a corrupted heap
:-(

Would any log from the driver be helpful ?

Regards,

Lothar

>
> Regards,
>
> Luf
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
>        choose an index scan if your joining column's datatypes do not
>        match