Large Object through ODBC
От | Raymond |
---|---|
Тема | Large Object through ODBC |
Дата | |
Msg-id | 4.3.2.7.0.20010302165758.00a91950@192.168.1.204 обсуждение исходный текст |
Ответ на | Re: JDBC error codes to detect duplicates? (Bruce Momjian <pgman@candle.pha.pa.us>) |
Список | pgsql-interfaces |
hi,<br /> i'm a newbie to PostgresQL, currently trying to use the ODBC driver. i'm connecting from my Win98 machineto a PostgresQL installation on a Linux box. i'm trying out the sample code from the MSDN concerning sending largeobjects through ODBC but i cannot get the code to work. <br /><br /> What i did is create a test table with(id int, obj lo) and then just try to insert some data into it. The strange things is that after the executestatement,it does not even return a SQL_NEED_DATA even though i have binded the parameter to a SQL_LONGVARBINARY.it just finished with the executino and over at the database side, an empty large object is created, i'veattached the code and logs from the ODBC driver below. Hope someone can point out what am i doing wrong here. Thanks!<br/><br /> Code<br /> -----------------------------<br /><font size="2">retcode = SQLPrepare ( hstmt, (unsigned char*)"INSERTINTO a (id , obj) VALUES ( ? , ? ) ",SQL_NTS ); <br /> SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_ULONG,SQL_INTEGER, 0, 0, &sID, 0, &cbID);<br /> SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_LONGVARBINARY,0, 0, (SQLPOINTER)2, 0, &cbObj);<br /><br /> cbObj = SQL_LEN_DATA_AT_EXEC(0); <br />sID = 1;<br /> <br /> retcode = SQLExecute(hstmt); <br /> <br /> if (retcode ==SQL_NEED_DATA) {<br /> printf("Need Data\n");<br /> }<br /></font>-----------------------------<br /><br /><fontsize="2">Log<br /></font>-----------------------------<br /><font size="2">conn=15272060, SQLDriverConnect( in)='DSN=POSTGRESQL;',DriverCompletion=0<br /> DSN info: DSN='POSTGRESQL',onlyread='0',protocol='6.4',showoid='1',fakeoidindex='0',showsystable='0'<br/> conn_settings=''translation_dll='',translation_option=''<br /> Global Options: Version='06.50.0000', fetch=100, socket=4096,unknown_sizes=0, max_varchar_size=254, max_longvarchar_size=8190, disable_optimizer=1, ksqo=1, unique_index=0,use_declarefetch=0, text_as_longvarchar=1, unknowns_as_longvarchar=0, bools_as_char=1, extra_systable_prefixes='dd_;',conn_settings=''<br /> conn=15272060, query=' '<br /> conn=15272060, query='set DateStyleto 'ISO''<br /> conn=15272060, query='set geqo to 'OFF''<br /> conn=15272060, query='set ksqo to 'ON''<br /> conn=15272060,query='select oid from pg_type where typname='lo''<br /> [ fetched 1 rows ]<br /> [ Large Object oid= 350752 ]<br /> conn=15272060, SQLDriverConnect(out)='DSN=POSTGRESQL;DATABASE=test;READONLY=0;PROTOCOL=6.4;FAKEOIDINDEX=0;SHOWOIDCOLUMN=1;ROWVERSIONING=0;SHOWSYSTEMTABLES=0;CONNSETTINGS='<br />conn=15272060, query='BEGIN'<br /> conn=15272060, query='COMMIT'<br /> conn=15272060, query='BEGIN'<br /> conn=15272060,query='INSERT INTO a (id , obj) VALUES ( 100 , '4157953' ) '<br /> conn=15272060, query='COMMIT'<br /> conn=15272060,SQLDisconnect<br /></font>-----------------------------
В списке pgsql-interfaces по дате отправления: