[ psqlodbc-Bugs-1000412 ] Server Side Prepare doesn't work
От | |
---|---|
Тема | [ psqlodbc-Bugs-1000412 ] Server Side Prepare doesn't work |
Дата | |
Msg-id | 20051130134404.0D95E1125054@pgfoundry.org обсуждение исходный текст |
Список | pgsql-odbc |
Bugs item #1000412, was opened at 2005-11-07 11:05 You can respond by visiting: http://pgfoundry.org/tracker/?func=detail&atid=538&aid=1000412&group_id=1000125 Category: None Group: None >Status: Closed Resolution: None Priority: 3 Submitted By: Dave Page (dpage) Assigned to: Nobody (None) Summary: Server Side Prepare doesn't work Initial Comment: To reproduce in the ODBC Test suite SQL command: "SELECT relname FROM pg_class WHERE relname!=?" Bind the input [SQLBindParameter] and output [SQLBindCol] parameter before calling SQLPrepare(). The following call to SQLExecute() returns SQL_SUCCESS. But the first call to SQLFetch() produces this error message: <1> {HY010}(3) Null statement result in PGAPI_ExtendedFetch. ---------------------------------------------------------------------- >Comment By: Dave Page (dpage) Date: 2005-11-30 13:44 Message: Excellent work Luf - tests perfectly here! Patch applied to CVS. Thanks :-) ---------------------------------------------------------------------- Comment By: Ludek Finstrle (luf) Date: 2005-11-30 13:33 Message: I've fixed it (see later pgsql-odbc@postgresql.org mailing list subject: Fixed server side prepare). I have some problems with connectivity to mail server now so I copy&paste diff here (it's only add one "if" to the rightplace - 8 hours of work for me :-( ). Please test it and report errors back. diff -c psqlodbc.orig\execute.c psqlodbc\execute.c *** psqlodbc.orig\execute.c Wed Nov 30 15:10:05 2005 --- psqlodbc\execute.c Wed Nov 30 13:46:24 2005 *************** *** 301,312 **** { QResultClass *kres; ! kres = res->next; ! SC_set_Result(stmt, kres); ! res->next = NULL; ! QR_Destructor(res); ! res = kres; ! SC_set_prepared(stmt, TRUE); } else { --- 301,315 ---- { QResultClass *kres; ! if (kres = res->next, kres) ! { ! kres = res->next; ! SC_set_Result(stmt, kres); ! res->next = NULL; ! QR_Destructor(res); ! res = kres; ! SC_set_prepared(stmt, TRUE); ! } } else { ---------------------------------------------------------------------- You can respond by visiting: http://pgfoundry.org/tracker/?func=detail&atid=538&aid=1000412&group_id=1000125
В списке pgsql-odbc по дате отправления: