Re: INSERT INTO ... RETURNING id not behaving as expected with SQLNumResultCols

Поиск
Список
Период
Сортировка
От Ryan Pfeiffer
Тема Re: INSERT INTO ... RETURNING id not behaving as expected with SQLNumResultCols
Дата
Msg-id 707269.14190.qm@web31813.mail.mud.yahoo.com
обсуждение исходный текст
Ответ на Re: INSERT INTO ... RETURNING id not behaving as expected with SQLNumResultCols  (Gustavo Pinsard <pinsard@rocksolid.com.br>)
Ответы Re: INSERT INTO ... RETURNING id not behaving as expected with SQLNumResultCols  (Gustavo Pinsard <pinsard@rocksolid.com.br>)
Re: INSERT INTO ... RETURNING id not behaving as expected with SQLNumResultCols  (Ryan Pfeiffer <malice_ryan@yahoo.com>)
Список pgsql-odbc
I'm writing it in visual c++. I've been using DataLayer to interact with ODBC, here:
http://www.codeproject.com/KB/database/DataLayer.aspx

The code in question is:

ret = SQLPrepare(m_hstmt, (SQLCHAR*)selectStatement, SQL_NTS);
if ( ( ret == SQL_SUCCESS ) || ( ret == SQL_SUCCESS_WITH_INFO ) )
{
   SQLSMALLINT numberColumns;

   // Get number of columns in the result set
   ret = SQLNumResultCols(m_hstmt, &numberColumns);

&numberColumns comes up as 0. Can SQLPrepare not be used the way I want for INSERT INTO ... RETURNING?

And yes, I'm aware I could use another select statement, and concurrency would *probably* not be an issue down the
road,but it bothers me that it is possible I could get the wrong ID. I suppose I can just SELECT id WHERE val1 = x,
val2= y, and so on as there should not be any exact duplicates in my tables that I can think of at this point. Still
earlyon in development though. 

Thanks,
Ryan

--- On Thu, 10/7/10, Gustavo Pinsard <pinsard@rocksolid.com.br> wrote:

> From: Gustavo Pinsard <pinsard@rocksolid.com.br>
> Subject: Re: [ODBC] INSERT INTO ... RETURNING id not behaving as expected with SQLNumResultCols
> To: pgsql-odbc@postgresql.org
> Date: Thursday, October 7, 2010, 6:11 AM
> Ryan,
>
> What language are you writing your app? What is the code
> you're using to
> capture the returning id?
>
> Also, are you aware that you can fire a new SELECT
> statement after
> you're done inserting?  In scenarios where you
> wouldn't have much
> concurrency that can be a valid approach.
>
> And don't forget that the OID column is there for you to
> inspect. Ever
> tried a SELECT OID FROM MyTable ORDER BY OID DESC LIMIT 1
> ?
>
> Gustavo
>
> On 07/10/2010 01:04, Ryan Pfeiffer wrote:
> > I'm using Postgres 8.4.1 and psqlodbc 08.04.0200. I'm
> trying to execute a statement INSERT INTO table/values
> RETURNING id to get the serial id. Problem is,
> SQLNumResultCols shows that there are zero columns. The
> statement I used works fine in pgadmin. This seems really
> basic and I am somewhat new to databases and odbc, but does
> anyone have a solution?
> >
> > Thanks,
> > Ryan
> >
> >
> >
> >
>
>




В списке pgsql-odbc по дате отправления:

Предыдущее
От: Devrim GÜNDÜZ
Дата:
Сообщение: Re: 9.0 driver status
Следующее
От: Gustavo Pinsard
Дата:
Сообщение: Re: INSERT INTO ... RETURNING id not behaving as expected with SQLNumResultCols