Dela via


Mönstervärdeargument

Vissa argument i katalogfunktionerna, till exempel argumentet TableName i SQLTables, accepterar sökmönster. Dessa argument accepterar sökmönster om SQL_ATTR_METADATA_ID-instruktionsattributet är inställt på SQL_FALSE. de är identifierarargument som inte accepterar ett sökmönster om det här attributet är inställt på SQL_TRUE.

Sökmönstrets tecken är:

  • Ett understreck (_), som representerar ett enskilt tecken.

  • Ett procenttecken (%), som representerar en sekvens med noll eller fler tecken.

  • Ett escape-tecken, som är drivrutinsspecifikt och används för att inkludera understreck, procenttecken och escape-tecknet som literaler. Om escape-tecknet föregår ett icke-specialtecken har escape-tecknet ingen särskild betydelse. Om escape-tecknet står före ett specialtecken, ersätts specialtecknet. Till exempel skulle "\a" behandlas som två tecken, "\" och "a", men "\%" skulle behandlas som det icke-speciella enskilda tecknet "%".

Escape-tecknet hämtas med alternativet SQL_SEARCH_PATTERN_ESCAPE i SQLGetInfo. Det måste föregå alla understreck, procenttecken eller escape-tecken i ett argument som accepterar sökmönster för att inkludera det tecknet som en literal. Exempel visas i följande tabell.

Sökmönster Description
%A% Alla identifierare som innehåller bokstaven A
ABC_ Alla fyra teckenidentifierare som börjar med ABC
ABC\_ Identifieraren ABC_, förutsatt att escape-tecknet är ett omvänt snedstreck (\)
\\% Alla identifierare som börjar med ett omvänt snedstreck (\), förutsatt att escape-tecknet är ett omvänt snedstreck

Särskild försiktighet måste iakttas för att undvika sökmönstertecken i argument som accepterar sökmönster. Detta gäller särskilt för understreckstecknet, som ofta används i identifierare. Ett vanligt misstag i program är att hämta ett värde från en katalogfunktion och skicka det värdet till ett sökmönsterargument i en annan katalogfunktion. Anta till exempel att ett program hämtar tabellnamnet MY_TABLE från resultatuppsättningen för SQLTables och skickar detta till SQLColumns för att hämta en lista med kolumner i MY_TABLE. I stället för att hämta kolumnerna för MY_TABLE hämtar programmet kolumnerna för alla tabeller som matchar sökmönstret MY_TABLE, till exempel MY_TABLE, MY1TABLE, MY2TABLE och så vidare.

Anmärkning

ODBC 2. x drivrutiner stöder inte sökmönster i argumentet CatalogName i SQLTables. ODBC 3*.x*-drivrutiner accepterar sökmönster i det här argumentet om SQL_ATTR_ ODBC_VERSION miljöattributet är inställt på SQL_OV_ODBC3; de accepterar inte sökmönster i det här argumentet om det är inställt på SQL_OV_ODBC2.

Om du skickar en null-pekare till ett sökmönsterargument begränsas inte sökningen efter argumentet. en null-pekare och sökmönstret % (alla tecken) är likvärdiga. Men ett sökmönster med noll längd – det vill: en giltig pekare till en sträng med längden noll – matchar bara den tomma strängen ("").