Delen via


Escape-reeksen in ODBC

Een aantal taalfuncties, zoals outer joins en scalaire functie-aanroepen, worden meestal geïmplementeerd door DBMSs. De syntaxis voor deze functies is echter meestal DBMS-specifiek, zelfs als standaardsyntaxis worden gedefinieerd door de verschillende standaardeninstanties. Daarom definieert ODBC escapereeksen die standaardsyntaxis bevatten voor de volgende taalfuncties:

  • Letterlijke datum-, tijd-, tijdstempel- en datum/tijd-interval

  • Scalaire functies, zoals numerieke, tekenreeks- en gegevenstypeconversiefuncties

  • Escape-teken bij LIKE-predicaat

  • Externe joins

  • Procedureaanroepen

De escapereeks die door ODBC wordt gebruikt, is als volgt:

  
(extension)  
  

Opmerkingen

De escapereeks wordt herkend en geparseerd door stuurprogramma's, die de escapereeksen vervangen door DBMS-specifieke grammatica. Zie ODBC Escape Sequences in bijlage C: SQL Grammar voor meer informatie over syntaxis van escapereeksen.

Opmerking

In ODBC 2. x, dit was de standaardsyntaxis van de escape-reeks: --(*vendor(vendor-name), product(product-name)extension*)--

Naast deze syntaxis is een verkorte syntaxis gedefinieerd van het formulier: {extension}

In ODBC 3.x, de lange vorm van de escapereeks is verouderd geraakt en de verkorte vorm wordt uitsluitend gebruikt.

Omdat de escapereeksen door het stuurprogramma worden toegewezen aan DBMS-specifieke syntaxis, kan een toepassing de escapereeks of DBMS-specifieke syntaxis gebruiken. Toepassingen die de DBMS-specifieke syntaxis gebruiken, zijn echter niet interoperabel. Wanneer u de escape-sequentie gebruikt, moeten toepassingen ervoor zorgen dat de SQL_ATTR_NOSCAN-instructie is uitgeschakeld, wat deze standaard is. Anders wordt de escapereeks rechtstreeks naar de gegevensbron verzonden, waar meestal een syntaxisfout optreedt.

Stuurprogramma's ondersteunen alleen de escapereeksen die ze kunnen toewijzen aan onderliggende taalfuncties. Als de gegevensbron bijvoorbeeld geen ondersteuning biedt voor outer joins, zal het stuurprogramma dat ook niet doen. Om te bepalen welke escapereeksen worden ondersteund, roept een toepassing SQLGetTypeInfo en SQLGetInfo aan. Zie de volgende sectie, Datum, Tijd en Letterlijke tijdstempel voor meer informatie.

Deze sectie bevat de volgende onderwerpen.