Обсуждение: SQLFreeStmt(hstmt, SQL_DROP); Failure ?
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
> 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
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