Hi, Tom, On Tue, Mar 4, 2025 at 8:37 PM Tom Lane <t...@sss.pgh.pa.us> wrote: > > Igor Korot <ikoro...@gmail.com> writes: > > binaryIntVal = htonl( (uint32_t) type ); > > paramValues[0] = (char *) &binaryIntVal; > > paramLengths[0] = sizeof( binaryIntVal ); > > paramFormats[0] = 1; > > You're apparently trying to pass this parameter as an int4 ... > > > res = PQexecParams( m_db, "SELECT * FROM abcatfmt WHERE abf_type = > > $1", 1, nullptr, paramValues, paramLengths, paramFormats, 1 ); > > ... 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.
abf_type is declared as smallnt: queries.push_back( L"CREATE TABLE IF NOT EXISTS abcatfmt(abf_name char(30) NOT NULL, abf_frmt char(254), abf_type smallint, abf_cntr integer, PRIMARY KEY( abf_name ));" ); Thank you. > > regards, tom lane