dotnet:sqlexception

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
dotnet:sqlexception [2009/06/16 13:40] ともやんdotnet:sqlexception [2019/05/18 02:23] (現在) – 外部編集 非ログインユーザー
行 2: 行 2:
  SqlException の Number に設定される番号の種類は以下の通りである。  SqlException の Number に設定される番号の種類は以下の通りである。
  
- 20未満はSQLServerに接続する前のエラーで、System.Data.SqlClient.TdsEnums(private class)に義されている番号が設定される。 + 100以下はSQLServerに接続する前のエラーであり.NET Framework 1.1 の場合は System.Data.SqlClient.TdsParser.ProcessNetlibError メソッド内で、以下の表のような判を行って SQLError インスタンスを生成している。\\ 
-^  番号  ^  補足 + ※.NET Framework 2.0 の場合は実装が変わっており、TdsParser.ProcessNetlibError メソッド自体が存在しない。\\
-|  -3|ZeroBytes +
-|  -2|Timeout +
-|  -1|Unknown +
-|  1|InsufficientMemory +
-|  2|AccessDenied +
-|  3|ConnectionBusy +
-|  4|ConnectionBroken +
-|  5|ConnectionLimit +
-|  6|ServerNotFound +
-|  7|NetworkNotFound +
-|  8|InsufficientResources +
-|  9|NetworkBusy +
-|  10|NetworkAccessDenied +
-|  11|GeneralError +
-|  12|IncorrectMode +
-|  13|NameNotFound +
-|  14|InvalidConnection +
-|  15|ReadWriteError +
-|  16|TooManyHandles +
-|  17|ServerError +
-|  18|SSLError +
-|  19|EncryptionError +
-|  20|EncryptionNotSupported  |+
 \\ \\
- 20きい番号は SQLServer の master データベースの dbo.sysmessages テーブルに定義されているものが発生する。\\+ 20以下の番号はSystem.Data.SqlClient.TdsEnums(private class)に定義されている番号が設定される。 
 +^  番号  ^  TdsEnums定数  ^  リソース名  ^  メッセージ 
 +|  -3|public const short ZERO_BYTES_READ = -3;  |SQL_ZeroBytes  |サーバーから 0 バイトを読み取ました。 
 +|  -2|public const short TIMEOUT_EXPIRED = -2;  |SQL_Timeout  |タイムアウトに達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。 
 +|  -1|public const short UNKNOWN_ERROR = -1;  |SQL_Unknown  |原因不明のエラーです。 
 +|  1|public const short NE_E_NOMEMORY = 0x01;  |SQL_InsufficientMemory  |メモリが不足しています。 
 +|  2|public const short NE_E_NOACCESS = 0x02;  |SQL_AccessDenied  |アクセスが拒否されました。 
 +|  3|public const short NE_E_CONNBUSY = 0x03;  |SQL_ConnectionBusy  |接続がビジーです。 
 +|  4|public const short NE_E_CONNBROKEN = 0x04;  |SQL_ConnectionBroken  |接続が壊れています。 
 +|  5|public const short NE_E_TOOMANYCONN = 0x05;  |SQL_ConnectionLimit  |接続時間が制限を越えました。 
 +|  6|public const short NE_E_SERVERNOTFOUND = 0x06;  |SQL_ServerNotFound  |指定された SQL Server が見つかりません : {0}  | 
 +|  7|public const short NE_E_NETNOTSTARTED = 0x07;  |SQL_NetworkNotFound  |ネットワークが開始されていません。 
 +|  8|public const short NE_E_NORESOURCE = 0x08;  |SQL_InsufficientResources  |ネットワーク リソースが不足しています。 
 +|  9|public const short NE_E_NETBUSY = 0x09;  |SQL_NetworkBusy  |ネットワークがビジー状態です。 
 +|  10|public const short NE_E_NONETACCESS = 0x0A;  |SQL_NetworkAccessDenied  |ネットワーク アクセスが拒否されました。| 
 +|  11|public const short NE_E_GENERAL = 0x0B;  |SQL_GeneralError  |ネットワークの一般エラーです。ネットワーク ドキュメントを確認してください。 
 +|  12|public const short NE_E_CONNMODE = 0x0C;  |SQL_IncorrectMode  |接続モードが間違っています。 
 +|  13|public const short NE_E_NAMENOTFOUND = 0x0D;  |SQL_NameNotFound  |ディレクトリ サービスに名前が見つかりませんでした。 
 +|  14|public const short NE_E_INVALIDCONN = 0x0E;  |SQL_InvalidConnection  |接続が無効です。 
 +|  15|public const short NE_E_NETDATAERR = 0x0F;  |SQL_ReadWriteError  |ネットワーク データを読み取り中、または書込み中にエラーが発生しました。 
 +|  16|public const short NE_E_TOOMANYFILES = 0x10;  |SQL_TooManyHandles  |開かれてるファイル ハンドルが多すぎます。 
 +|  17|public const short NE_E_SERVERERROR = 0x11;  |SQL_SevereError  |現在のコマンドでサーバー エラーが発生しました。結果は破棄しなければなりません。 
 +|  18|public const short NE_E_SSLSECURITYERROR = 0x12;  |SQL_SSLError  |SSL セキュリティ エラーです。 
 +|  19|public const short NE_E_ENCRYPTIONON = 0x13;  |SQL_EncryptionError  |SQL Server では暗号化の設定をオンにする必要があります。 
 +|  20|public const short NE_E_ENCRYPTIONNOTSUPPORTED = 0x14;  |SQL_EncryptionNotSupported  |SQL Server でサポートされていない暗号化です。 
 +\\ 
 + 21、および、101以上の番号は SQLServer の master データベースの dbo.sysmessages テーブルに定義されているものが発生する。\\ 
 + 53などのように winerror.h に定義されている Win32エラーコードが設定される場合もある。\\
 \\ \\
  [SQL]\\  [SQL]\\
行 36: 行 40:
 </code> </code>
 {{:dotnet:sqlserver_select_sysmessages.png|select sysmessages}}\\ {{:dotnet:sqlserver_select_sysmessages.png|select sysmessages}}\\
 +\\
 +で、結局何を信用すればいいか?\\
 +.NET Framework 2.0 以降のデータプロバイダは、[[http://msdn.microsoft.com/ja-jp/library/cc645611.aspx|SQL Server システム エラー メッセージ(1~999)]]に記載されている動作は保障しているハズである。\\
 \\ \\
 参考文献:\\ 参考文献:\\
-[[http://blog.colinmackay.net/archive/2007/06/23/65.aspx|SQL Exception because of a timeout]]+[[http://blog.colinmackay.net/archive/2007/06/23/65.aspx|SQL Exception because of a timeout]]\\ 
 +[[http://msdn.microsoft.com/ja-jp/library/cc645611.aspx|SQL Server システム エラー メッセージ(1~999)]]\\
  • dotnet/sqlexception.1245127205.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)