Обсуждение: SQLPrimaryKeys

Поиск
Список
Период
Сортировка

SQLPrimaryKeys

От
Stephen Davies
Дата:
Hello again.

Does the SQLPrimaryKeys facility work with 6.3.2 and ODBC 6.30.0249?

If so, could someone please send me the declaration and a sample of usage.

If not, how else can I determine which columns comprise a unique key of a
PostgreSQL table via ODBC?

(I can successfully access other functions such as SQLColumns. It is just
SQLPrimaryKeys that is causing me grief at the moment.)

Cheers and thanks,
Stephen.



========================================================================
Stephen Davies Consulting                                            scldad@sdc.com.au
Adelaide, South Australia.                                             Voice: 61-8-82728863
Computing & Network solutions.                                     Fax: 61-8-82741015



Re: [INTERFACES] SQLPrimaryKeys

От
Byron Nikolaidis
Дата:

Stephen Davies wrote:

> Hello again.
>
> Does the SQLPrimaryKeys facility work with 6.3.2 and ODBC 6.30.0249?
>
> If so, could someone please send me the declaration and a sample of usage.
>
> If not, how else can I determine which columns comprise a unique key of a
> PostgreSQL table via ODBC?
>
> (I can successfully access other functions such as SQLColumns. It is just
> SQLPrimaryKeys that is causing me grief at the moment.)
>

It should work.  I have used it and I tested it with applications such as Visio.  Did you get an
error or something?

Here is a test usage to get the primary keys of the "t1" table:

 result = SQLAllocStmt( self, &hstmt1);

 result = SQLPrimaryKeys(hstmt1, NULL, 0, NULL, 0, "t1", SQL_NTS);

 result = SQLBindCol(hstmt1, 3, SQL_C_CHAR, pktab, sizeof(pktab), &pktab_len);
 result = SQLBindCol(hstmt1, 4, SQL_C_CHAR, pkcol, sizeof(pkcol), &pkcol_len);
 result = SQLBindCol(hstmt1, 5, SQL_C_SHORT, &seq, 0, NULL);

 result = SQLFetch(hstmt1);
 while (result != SQL_NO_DATA_FOUND) {

  qlog("fetch on stmt1: result = %d, pktab='%s', pkcol='%s', seq=%d\n",
   result, pktab, pkcol, seq);

  result = SQLFetch(hstmt1);
 }