Re: Error on query execution

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Error on query execution
Дата
Msg-id 702923.1741280416@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Error on query execution  (Igor Korot <ikorot01@gmail.com>)
Список pgsql-general
Igor Korot <ikorot01@gmail.com> writes:
> On Tue, Mar 4, 2025 at 8:37 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> ... but given that you didn't specify any data type, I think the
>> parser will fall back to assuming that $1 is the same type as
>> "abf_type", whatever that is.  Passing data in binary is not at all
>> forgiving about getting the data type right.

> Changing the line above to read:

>     res = PQexecParams( m_db, "SELECT * FROM abcatfmt WHERE abf_type =
> $1::smallint", 1, nullptr, paramValues, paramLengths, paramFormats, 1
> );

That just makes it explicit that the query is expecting an int16.
You're still passing an int32.  You need to either change the
parameter setup code to pass an int16, or make the query look
more like

    res = PQexecParams( m_db, "SELECT * FROM abcatfmt WHERE abf_type =
    $1::integer", 1, nullptr, paramValues, paramLengths, paramFormats, 1);

            regards, tom lane



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