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

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

DescribParam

От
"Glenn B. Lawler"
Дата:
When I call SQLDescribeParam using PostgreSQL ODBC Driver psqlodbc-08_02_0002
SQL_ERROR is the return code.

What I am trying to do with this call is determine the buffer size needed to allocate a buffer
so I can call SQLBindParameter with a big enough buffer.

I have tried defaulting this to a number > 255, but this causes some other drivers, like
MS Access to choke.

MS SQL Server and others return the correct parameter size.

My only thought was to provide an override for this in my library to force the parameter
size when the driver does not return it.

Does anyone have a better workaround for this?

Glenn Lawler
www.incodesystems.com


Re: DescribParam

От
Ludek Finstrle
Дата:
> When I call SQLDescribeParam using PostgreSQL ODBC Driver
> psqlodbc-08_02_0002 SQL_ERROR is the return code.

This API has never been supported. Why do you use it when psqlODBC
returns info that it doesn't support SQLDescribeParam?

> What I am trying to do with this call is determine the buffer size
> needed to allocate a buffer so I can call SQLBindParameter with
> a big enough buffer.

There is the problem that PgSQL backend doesn't support it before
execution (I haven't found another information yet).

> My only thought was to provide an override for this in my library
> to force the parameter size when the driver does not return it.

Maybe you may depend on other information like PostgreSQL driver, ...

> Does anyone have a better workaround for this?

Sorry, I don't have one.

Regards,

Luf

Re: DescribParam

От
"Glenn B. Lawler"
Дата:
Luf,

So, if SQLDescribeParam is not supported, how do you
know how big to make the buffers?

I assume everyone must either use a standard size for
all parameters or the caller must know the right size to
use.

I guess I'll have to add an optional call to my library to
override the buffer size after the statement has been
prepared.

Glenn Lawler
www.incodesystems.com


-----Original Message-----
From:    Ludek Finstrle [SMTP:luf@pzkagis.cz]
Sent:    Wednesday, June 07, 2006 2:24 PM
To:    Glenn B. Lawler
Cc:    'PostgreSQL ODBC List'
Subject:    Re: [ODBC] DescribParam

> When I call SQLDescribeParam using PostgreSQL ODBC Driver
> psqlodbc-08_02_0002 SQL_ERROR is the return code.

This API has never been supported. Why do you use it when psqlODBC
returns info that it doesn't support SQLDescribeParam?

> What I am trying to do with this call is determine the buffer size
> needed to allocate a buffer so I can call SQLBindParameter with
> a big enough buffer.

There is the problem that PgSQL backend doesn't support it before
execution (I haven't found another information yet).

> My only thought was to provide an override for this in my library
> to force the parameter size when the driver does not return it.

Maybe you may depend on other information like PostgreSQL driver, ...

> Does anyone have a better workaround for this?

Sorry, I don't have one.

Regards,

Luf

Re: DescribParam

От
Ludek Finstrle
Дата:
> So, if SQLDescribeParam is not supported, how do you
> know how big to make the buffers?

I don't know. I'm sorry. If you find the way with PgSQL backend
we'll be glad.

> I assume everyone must either use a standard size for
> all parameters or the caller must know the right size to
> use.

Or you have to know what you ask for. Please try standard size
and hope that it's enough. I don't have better advice.
Maybe I'm wrong and someone more experienced correct it.

BTW this is comment from psqlODBC:
/*
 *    Returns the description of a parameter marker.
 *    This function is listed as not being supported by SQLGetFunctions() because it is
 *    used to describe "parameter markers" (not bound parameters), in which case,
 *    the dbms should return info on the markers.  Since Postgres doesn't support that,
 *    it is best to say this function is not supported and let the application assume a
 *    data type (most likely varchar).
 */

Regards,

Luf

Re: DescribParam

От
Hiroshi Inoue
Дата:
Glenn B. Lawler wrote:
> When I call SQLDescribeParam using PostgreSQL ODBC Driver psqlodbc-08_02_0002
> SQL_ERROR is the return code.

Are you checking the 7.4+ Protocol option ?

regards,
Hiroshi Inoue

Re: DescribParam

От
"Glenn B. Lawler"
Дата:
Yes.

-----Original Message-----
From:    Hiroshi Inoue [SMTP:inoue@tpf.co.jp]
Sent:    Wednesday, June 07, 2006 6:22 PM
To:    Glenn B. Lawler
Cc:    'PostgreSQL ODBC List'
Subject:    Re: [ODBC] DescribParam

Glenn B. Lawler wrote:
> When I call SQLDescribeParam using PostgreSQL ODBC Driver psqlodbc-08_02_0002
> SQL_ERROR is the return code.

Are you checking the 7.4+ Protocol option ?

regards,
Hiroshi Inoue

Re: DescribParam

От
Hiroshi Inoue
Дата:
Glenn B. Lawler wrote:
> Yes.
>

Isn't the error message "Invalid parameter number for
PGAPI_DescribeParam." ?
If so, could you call SQLNumParams before calling SQLDescribeParam on
trial ?

regards,
Hiroshi Inoue