Thread: Regarding PostgreSQL BIT datatype binding in ODBC.......
Hello All,
I am new to this mailing list and this is my first post :)
I want to pass numeric data (2345) into a PostgreSQL BIT datatype column bit(1) using dynamic sql thru ODBC. I very much understand the risk of data getting truncated...
On PSQL, I simply can do -- insert into tab values(CAST(2345 AS BIT(1))) to acheive what i want (and I understand only 1 would get inserted). But I want to do this through ODBC and dynamic sql.
I will have to prepare my query as
insert into tab values(CAST(? AS bit(1));
then bind 2345 and then execute the statement.
Can someone help me on how the binding should happen...
I mean wat should be the "ValueType" and the "ParameterType" etc. in the call to the SQLBindParameter function....
SQLRETURN SQLBindParameter(
SQLHSTMT StatementHandle,
SQLUSMALLINT ParameterNumber,
SQLSMALLINT InputOutputType,
SQLSMALLINT ValueType,
SQLSMALLINT ParameterType,
SQLULEN ColumnSize,
SQLSMALLINT DecimalDigits,
SQLPOINTER ParameterValuePtr,
SQLLEN BufferLength,
SQLLEN * StrLen_or_IndPtr);
Quick help is appreciated and additional inputs/coments are also most welcome...
Thanks and Regards,
Ranjeeth.
Hello All,
I have a table with a bit(10) type colmn. I can insert "1010110110" into that column from PSQL.
i.e.,
postgres=# insert into public.ranc2b values(1,'1101010101');
INSERT 0 1
I want to insert the same character data "1010110110" into the same bit(10) typed column from an ODBC application program,
Can somebody please suggest me how should I bind the data in the SQLBindParameter call.
I tried to bind the data as SQL_BINARY and SQL_CHAR but I got Incorrect binary data format error.
Quick help is appreciated.
Thanks in Advance.
Regards,
Ranjeeth.
From: ranjeeth kumar <ranjeeth_cool@yahoo.co.in>
To: "pgsql-odbc@postgresql.org" <pgsql-odbc@postgresql.org>
Sent: Thursday, 2 August 2012 12:55 PM
Subject: Regarding PostgreSQL BIT datatype binding in ODBC.......
I have a table with a bit(10) type colmn. I can insert "1010110110" into that column from PSQL.
i.e.,
postgres=# insert into public.ranc2b values(1,'1101010101');
INSERT 0 1
I want to insert the same character data "1010110110" into the same bit(10) typed column from an ODBC application program,
Can somebody please suggest me how should I bind the data in the SQLBindParameter call.
I tried to bind the data as SQL_BINARY and SQL_CHAR but I got Incorrect binary data format error.
Quick help is appreciated.
Thanks in Advance.
Regards,
Ranjeeth.
From: ranjeeth kumar <ranjeeth_cool@yahoo.co.in>
To: "pgsql-odbc@postgresql.org" <pgsql-odbc@postgresql.org>
Sent: Thursday, 2 August 2012 12:55 PM
Subject: Regarding PostgreSQL BIT datatype binding in ODBC.......
Hello All,
I am new to this mailing list and this is my first post :)
I want to pass numeric data (2345) into a PostgreSQL BIT datatype column bit(1) using dynamic sql thru ODBC. I very much understand the risk of data getting truncated...
On PSQL, I simply can do -- insert into tab values(CAST(2345 AS BIT(1))) to acheive what i want (and I understand only 1 would get inserted). But I want to do this through ODBC and dynamic sql.
I will have to prepare my query as
insert into tab values(CAST(? AS bit(1));
then bind 2345 and then execute the statement.
Can someone help me on how the binding should happen...
I mean wat should be the "ValueType" and the "ParameterType" etc. in the call to the SQLBindParameter function....
SQLRETURN SQLBindParameter(
SQLHSTMT StatementHandle,
SQLUSMALLINT ParameterNumber,
SQLSMALLINT InputOutputType,
SQLSMALLINT ValueType,
SQLSMALLINT ParameterType,
SQLULEN ColumnSize,
SQLSMALLINT DecimalDigits,
SQLPOINTER ParameterValuePtr,
SQLLEN BufferLength,
SQLLEN * StrLen_or_IndPtr);
Quick help is appreciated and additional inputs/coments are also most welcome...
Thanks and Regards,
Ranjeeth.
Hi. Is this helpful to you? one example) == odbc SQLTCHAR kd[100]; strcpy(kd, "1101010101"); ... SQLPrepare(hstmt, "INSERT INTO bbb VALUES (?)", SQL_NTS); SQLBindParameter(hstmt, (SQLUSMALLINT)1, SQL_PARAM_INPUT, SQL_C_TCHAR, SQL_CHAR, 0, 0, &kd[0], 100, &len); == psql postgres=# select * from bbb; key ------------ 1101010101 Regards, Hiroshi Saito (2012/09/10 13:32), ranjeeth kumar wrote: > Hello All, > > I have a table with a bit(10) type colmn. I can insert "1010110110" into > that column from PSQL. > i.e., > postgres=# insert into public.ranc2b values(1,'1101010101'); > INSERT 0 1 > > I want to insert the same character data "1010110110" into the same > bit(10) typed column from an ODBC application program, > Can somebody please suggest me how should I bind the data in the > SQLBindParameter call. > > I tried to bind the data as SQL_BINARY and SQL_CHAR but I got Incorrect > binary data format error. > > Quick help is appreciated. > > Thanks in Advance. > > Regards, > Ranjeeth.
Hello Saito,
Thanks a lot for your response.
I tried using SQL_C_TCHAR and SQL_CHAR as you suggested but I still get the same "Incorrect binary data format in bind parameter" error.
I am not sure if I am missing something here...
Thanks and Regards,
Ranjeeth.
From: Hiroshi Saito <hiroshi@winpg.jp>
To: ranjeeth kumar <ranjeeth_cool@yahoo.co.in>
Cc: "pgsql-odbc@postgresql.org" <pgsql-odbc@postgresql.org>
Sent: Monday, 10 September 2012 8:01 PM
Subject: Re: [ODBC] Regarding PostgreSQL BIT datatype binding in ODBC.......
Hi.
Is this helpful to you?
one example)
== odbc
SQLTCHAR kd[100];
strcpy(kd, "1101010101");
...
SQLPrepare(hstmt, "INSERT INTO bbb VALUES (?)", SQL_NTS);
SQLBindParameter(hstmt, (SQLUSMALLINT)1, SQL_PARAM_INPUT,
SQL_C_TCHAR, SQL_CHAR, 0, 0, &kd[0], 100, &len);
== psql
postgres=# select * from bbb;
key
------------
1101010101
Regards,
Hiroshi Saito
(2012/09/10 13:32), ranjeeth kumar wrote:
> Hello All,
>
> I have a table with a bit(10) type colmn. I can insert "1010110110" into
> that column from PSQL.
> i.e.,
> postgres=# insert into public.ranc2b values(1,'1101010101');
> INSERT 0 1
>
> I want to insert the same character data "1010110110" into the same
> bit(10) typed column from an ODBC application program,
> Can somebody please suggest me how should I bind the data in the
> SQLBindParameter call.
>
> I tried to bind the data as SQL_BINARY and SQL_CHAR but I got Incorrect
> binary data format error.
>
> Quick help is appreciated.
>
> Thanks in Advance.
>
> Regards,
> Ranjeeth.
Hi. Umm, It can check in this simple test code. Regards, Hiroshi Saito (2012/09/11 0:17), ranjeeth kumar wrote: > Hello Saito, > > Thanks a lot for your response. > I tried using SQL_C_TCHAR and SQL_CHAR as you suggested but I still get > the same "Incorrect binary data format in bind parameter" error. > I am not sure if I am missing something here... > > > Thanks and Regards, > Ranjeeth. > > > ------------------------------------------------------------------------ > *From:* Hiroshi Saito <hiroshi@winpg.jp> > *To:* ranjeeth kumar <ranjeeth_cool@yahoo.co.in> > *Cc:* "pgsql-odbc@postgresql.org" <pgsql-odbc@postgresql.org> > *Sent:* Monday, 10 September 2012 8:01 PM > *Subject:* Re: [ODBC] Regarding PostgreSQL BIT datatype binding in > ODBC....... > > Hi. > > Is this helpful to you? > one example) > == odbc > SQLTCHAR kd[100]; > strcpy(kd, "1101010101"); > ... > SQLPrepare(hstmt, "INSERT INTO bbb VALUES (?)", SQL_NTS); > SQLBindParameter(hstmt, (SQLUSMALLINT)1, SQL_PARAM_INPUT, > SQL_C_TCHAR, SQL_CHAR, 0, 0, &kd[0], 100, &len); > == psql > postgres=# select * from bbb; > key > ------------ > 1101010101 > > Regards, > Hiroshi Saito > > (2012/09/10 13:32), ranjeeth kumar wrote: > > Hello All, > > > > I have a table with a bit(10) type colmn. I can insert "1010110110" into > > that column from PSQL. > > i.e., > > postgres=# insert into public.ranc2b values(1,'1101010101'); > > INSERT 0 1 > > > > I want to insert the same character data "1010110110" into the same > > bit(10) typed column from an ODBC application program, > > Can somebody please suggest me how should I bind the data in the > > SQLBindParameter call. > > > > I tried to bind the data as SQL_BINARY and SQL_CHAR but I got Incorrect > > binary data format error. > > > > Quick help is appreciated. > > > > Thanks in Advance. > > > > Regards, > > Ranjeeth. > >
Attachment
Ooops sorry, different was sended.... Please this. (2012/09/11 22:23), Hiroshi Saito wrote: > Hi. > > Umm, > It can check in this simple test code. > > Regards, > Hiroshi Saito > > (2012/09/11 0:17), ranjeeth kumar wrote: >> Hello Saito, >> >> Thanks a lot for your response. >> I tried using SQL_C_TCHAR and SQL_CHAR as you suggested but I still get >> the same "Incorrect binary data format in bind parameter" error. >> I am not sure if I am missing something here... >> >> >> Thanks and Regards, >> Ranjeeth. >> >> >> ------------------------------------------------------------------------ >> *From:* Hiroshi Saito <hiroshi@winpg.jp> >> *To:* ranjeeth kumar <ranjeeth_cool@yahoo.co.in> >> *Cc:* "pgsql-odbc@postgresql.org" <pgsql-odbc@postgresql.org> >> *Sent:* Monday, 10 September 2012 8:01 PM >> *Subject:* Re: [ODBC] Regarding PostgreSQL BIT datatype binding in >> ODBC....... >> >> Hi. >> >> Is this helpful to you? >> one example) >> == odbc >> SQLTCHAR kd[100]; >> strcpy(kd, "1101010101"); >> ... >> SQLPrepare(hstmt, "INSERT INTO bbb VALUES (?)", SQL_NTS); >> SQLBindParameter(hstmt, (SQLUSMALLINT)1, SQL_PARAM_INPUT, >> SQL_C_TCHAR, SQL_CHAR, 0, 0, &kd[0], 100, &len); >> == psql >> postgres=# select * from bbb; >> key >> ------------ >> 1101010101 >> >> Regards, >> Hiroshi Saito >> >> (2012/09/10 13:32), ranjeeth kumar wrote: >> > Hello All, >> > >> > I have a table with a bit(10) type colmn. I can insert "1010110110" >> into >> > that column from PSQL. >> > i.e., >> > postgres=# insert into public.ranc2b values(1,'1101010101'); >> > INSERT 0 1 >> > >> > I want to insert the same character data "1010110110" into the same >> > bit(10) typed column from an ODBC application program, >> > Can somebody please suggest me how should I bind the data in the >> > SQLBindParameter call. >> > >> > I tried to bind the data as SQL_BINARY and SQL_CHAR but I got Incorrect >> > binary data format error. >> > >> > Quick help is appreciated. >> > >> > Thanks in Advance. >> > >> > Regards, >> > Ranjeeth. >> >> > > > >