共用方式為


閘道診斷範例

在網路閘道架構中,驅動程式會將要求傳送至支援 ODBC 的網路閘道。 網路閘道會將要求傳送至 DBMS。 因為這是與驅動程式管理員相接的元件,因此驅動程式會設定格式並傳回 SQLGetDiagRec 的引數。

例如,如果 Oracle 在 Microsoft 開放式資料服務上設定 Rdb 的網路閘道,而且 Rdb 找不到 EMPLOYEE 資料表,則網路閘道可能會產生下列診斷訊息:

"[42S02][-1][DEC][ODS Gateway][Rdb]%SQL-F-RELNOTDEF, Table EMPLOYEE is not defined "  
   "in schema."  

因為資料來源發生錯誤,所以網路閘道會將資料來源識別碼的首碼新增至診斷訊息 ([Rdb])。 因為網路閘道是與資料來源相接的元件,所以其已經將其廠商的首碼 ([DEC]) 和識別碼 ([ODS 網路閘道]) 新增至診斷訊息。 也已經將 SQLSTATE 值和 Rdb 錯誤碼新增至診斷訊息的開頭。 如此可讓它保留本身訊息結構的語意,並且仍會將 ODBC 診斷資訊提供給驅動程式。 驅動程式會剖析網路閘道附加至錯誤陳述式的錯誤資訊。

因為網路閘道驅動程式是與驅動程式管理員相接的元件,所以會使用上述診斷訊息來設定格式,並從 SQLGetDiagRec 傳回下列值:

SQLSTATE:         "42S02"  
Native Error:      -1  
Diagnostic Msg:   "[DEC][ODS Gateway][Rdb]%SQL-F-RELNOTDEF, Table EMPLOYEE is not "  
                  "defined in schema."