Thanks for the good info. But I was specifically refering to the issues raised by the email I was replying to.
Do ODBC connections to Sybase always set the QUOTED_IDENTIFIER attribute, for example? Do ODBC connections to Informix change their behaviour depending on whether DELIMIDENT is set or not? etc. etc. Tim. On Wed, Jan 09, 2002 at 01:03:37PM +0000, Simon Oliver wrote: > Tim Bunce wrote: > > > > What does ODBC do about this issue? > > SQLGetInfo has a SQL_IDENTIFIER_QUOTE_CHAR information type that returns the > current value: > > "(ODBC 1.0) The character string used as the starting and ending delimiter of > a quoted (delimited) identifier in SQL statements. (Identifiers passed as > arguments to ODBC functions do not need to be quoted.) If the data source does > not support quoted identifiers, a blank is returned." > > I *guess* if the client changes the quote bahviour during an active connection > then this value will change to reflect that. > > The docs say that "Identifiers passed as arguments to ODBC functions do not > need to be quoted" and futhermore, "they must not be quoted when passed as > catalog function arguments". I *guess* identifier quoting is handled by the > ODBC driver itself for these functions. > > When returning identifiers (such as in the Catalog Functions) then > "Identifiers that are returned in the result set are not quoted, even if they > contain special characters", but in this situation each identifier is returned > as a distinct value within the row (eg $dbh->table_info) - we are talking > about complex identifiers which might contain a catalog, schema (or owner) and > table name in a single string (eg $dbh->tables). > > All DBI methods that accept identifiers should expect unquoted identifiers and > if a method accepts a complex identifier (of more than one object such as > table.column) then these identifiers should be passed as distinct arguments to > the method (eg $dbh->primary_key). DBI methods should return unquoted > identifiers unless the method returns a complex identifier (eg $dbh-tables) in > which case the identifiers should be built using $dbh->quote_identifier. > > -- > Simon Oliver
