Windows NT/2000/XP/2003/2008 PageActive Server Pageなページ > DB使用時のエラー


DB使用時のエラー

Microsoft OLE DB Provider for SQL Server エラー '80004005'
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server が存在しないか、アクセスが拒否されました。


Microsoft OLE DB Provider for SQL Server エラー '80040e4d'
権限の指定が正しくありません。


Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバが見つかりません。


Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] ファイル '(不明)' が見つかりませんでした。


Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] '(不明)' は既に使用されているので、使用できませんでした。


Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver]一般エラー レジストリ キー 'Temporary (volatile) Jet DSN for process 0xc8 Thread 0xbbc DBC 0x163b024 Jet' を開くことができません。


Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver]一般エラー レジストリ キー 'Temporary (volatile) Jet DSN for process 0xe9c Thread 0xa74 DBC 0x2bc0b4 Jet' を開くことができません。


Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 更新可能なクエリであることが必要です。


Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] ファイル '(不明)' を開くことができませんでした。ほかのユーザーが排他的に開いているか、データを読み取る権限がありません。


Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] フィールドに必要なプロパティが True に設定されているため、このフィールド 'test.test' には Null 値は挿入できません。値を入力してください。


Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] フィールド 'XXXX.XXXX' には、長さ 0 の文字列を格納できません。


Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] 抽出条件でデータ型が一致しません。


Microsoft OLE DB Provider for ODBC Drivers (0x80040E09)
[Microsoft][ODBC Text Driver] データベースまたはオブジェクトは読み取り専用なので、更新できません。


Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] パラメータが少なすぎます。1 を指定してください。


Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] INSERT INTO ステートメントの構文エラーです。


Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] クエリ式 'XXXXXXXXX' の 構文エラー : 演算子がありません。


Microsoft OLE DB Provider for ODBC Drivers
[Microsoft][ODBC Text Driver] パラメータが少なすぎます。3 を指定してください。


Microsoft JET Database Engine エラー '80004005'
ファイル '' を開くことができませんでした。ほかのユーザーが排他的に開いているか、データを読み取る権限がありません。


ADODB.Field (0x80020009)
BOF と EOF のいずれかが True になっているか、または現在のレコードが削除されています。要求された操作には、現在のレコードが必要です。


ADODB.Recordset (0x800A0CC1)
要求された名前、または序数に対応する項目がコレクションで見つかりません。



ADODB.Recordset (0x800A0E78)
オブジェクトが閉じている場合は、操作は許可されません。


プロバイダが指定されておらず、既定のプロバイダがありません。
800A0EA9
ADODB.Connection


実行時エラー'3265';[要求された名前、または序数---]が出る。




Microsoft OLE DB Provider for SQL Server エラー '80004005'
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server が存在しないか、アクセスが拒否されました。

接続先のSQL ServerのTCP/IP設定で動的ポートに設定されている場合の対応ですが、
objCN.Open "Provider=SQLOLEDB;server=[サーバー名]\[インスタンス名];database=[DB名];User id=user;Password=pass;"

server=の設定を[サーバー名]\[インスタンス名],[ポート番号]とすることで解決できる場合があります。

もしくは
objCN.Open "Provider=SQLOLEDB;Data Source=[サーバー名]\[インスタンス名];Initial Catalog=[DB名];user id=user;password=pass"

Data Source=の設定を[サーバー名]\[インスタンス名],[ポート番号]とすることで解決できる場合があります。



Microsoft OLE DB Provider for SQL Server エラー '80040e4d'
権限の指定が正しくありません。

User id=;Password=;にDBにアクセスできる適切なユーザーIDとパスワードを設定してください。



Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバが見つかりません。

Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=TEST"

などのDSNを使用してのDB接続で指定したDSNが見つからない場合に発生します。
DSN名に誤りがないか、また、NTや2000であれば、システムDNSへの設定ミスが考えられます。



Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] ファイル '(不明)' が見つかりませんでした。

DSNで設定されたDBが見つからないときに発生します。DSNの登録を再確認してください。



Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] '(不明)' は既に使用されているので、使用できませんでした。

AccessのDBを開いている場合に発生します。
開いているDBがないか確認してください。



Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver]一般エラー レジストリ キー 'Temporary (volatile) Jet DSN for process 0xc8 Thread 0xbbc DBC 0x163b024 Jet' を開くことができません。

strProvider = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=test.mdb"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strProvider

などの、DBを開く構文で、DBQの指定先のDB名が間違っているか、対象となるDBが使用中の場合に発生します。
使用中のDBがないかDB名が間違っていないか確認してください。



Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver]一般エラー レジストリ キー 'Temporary (volatile) Jet DSN for process 0xe9c Thread 0xa74 DBC 0x2bc0b4 Jet' を開くことができません。

Accessにパスワードが設定されている場合に発生します。
strProvider = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=test.mdb"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strProvider

の場合は、
strProvider = "Driver={Microsoft Access Driver (*.mdb)}; password=hogehoge; DBQ=test.mdb
のように、password=でAccessに設定されているパスワードを設定します。



Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 更新可能なクエリであることが必要です。

AccessDBに対してWebのシステムアカウントがアクセス権がない場合に発生します。
NTFSのアクセス権で必要なアクセス権を追加してください。



Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] ファイル '(不明)' を開くことができませんでした。ほかのユーザーが排他的に開いているか、データを読み取る権限がありません。
Microsoft JET Database Engine エラー '80004005'
ファイル '' を開くことができませんでした。ほかのユーザーが排他的に開いているか、データを読み取る権限がありません。

・AccessDBやその他のDBに対してWebのシステムアカウント(一般的にIUSER_コンピュータ名)がアクセス権がない場合に発生します。
NTFSのアクセス権で必要なアクセス権を追加してください。

・フォルダ(もしくはファイル)に読み取り専用になっている場合に発生します。
フォルダ(もしくはファイル)のプロパティから読み取り専用のチェックをはずしてください

・ユーザーがAccessや他のソフトでファイルを開いています。
開いているファイルを閉じてください。



Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] 抽出条件でデータ型が一致しません。

SQL = "select * from test where test1 = 'test'"
set RS = Conn.Execute(SQL)

上記で、TEST1のデータ型は数値です
WHERE句で数値に対して文字列の検索を行ったりすると発生する。



Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] フィールドに必要なプロパティが True に設定されているため、このフィールド 'test.test' には Null 値は挿入できません。値を入力してください。

AccessDBで値の要求がONになっていて、Insert文で値の代入をしていない場合に発生する。
Access側で、値の要求をOFFにするかInsert文で値を代入する。



Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] フィールド 'XXXX.XXXX' には、長さ 0 の文字列を格納できません。

AccessDBで空文字列が許可されていない時にInsert文でNULLを代入しようとすると発生する。
Access側で空文字列を許可するか、Insert文で値を代入する。



Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] INSERT INTO ステートメントの構文エラーです。

SQL = "insert into test(test,test1,select) values('1',0,'2')"
set RS = Conn.Execute(SQL)

DBのフィールド名に予約語が使われている場合に発生します。
この場合は、フィールド名selectが予約語です。予約語使わないようにフィールド名を変更してください。



Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] クエリ式 'XXXXXXXXX' の 構文エラー : 演算子がありません。

「from」を「form」などの構文間違えの場合も発生します。
また、Where句で「that's」などで「'」(シングルクォーテーション)を使用すると発生します。
構文を確認し、またシングルクォーテーションを使用している場合は、事前にシングルクォーテーションを「"」などに変換して置くと良いでしょう。



Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] パラメータが少なすぎます。1 を指定してください。

SQL文でフィールド名の誤りの場合に発生します。
フィールド名を念入りに確認してください。



Microsoft OLE DB Provider for ODBC Drivers
[Microsoft][ODBC Text Driver] パラメータが少なすぎます。3 を指定してください。

schema.iniに該当するテキストファイルの設定が無い場合に発生することがあります。
SQLの構文をよく確認して問題が無い場合は、schema.iniが正しく記述されているか確認してください。



ADODB.Field (0x80020009)
BOF と EOF のいずれかが True になっているか、または現在のレコードが削除されています。要求された操作には、現在のレコードが必要です。

Select文で選択した内容が無く、そのデータを表示しようとした場合に発生します。
SQL = "select test from test where test='rrr'"
set RS = Conn.Execute(SQL)
if not RS.EOF then
response.write(RS("test"))
end if

上記のようにSELECTの後にEOFで無いかチェックすると良いでしょう。



ADODB.Recordset (0x800A0CC1)
要求された名前、または序数に対応する項目がコレクションで見つかりません。

使用しようとしたフィールド名がSELECT文で正しく指定されていない場合に発生します。
SQLのSELECT文のフィールド名の指定を確認してください。



ADODB.Recordset (0x800A0E78)
オブジェクトが閉じている場合は、操作は許可されません。

SQL = "select test from test"
set RS = Conn.Execute(SQL)
RS.Close
if not RS.EOF then
response.write(RS("test"))
end if

上記の例のようにクローズしたオブジェクトに対して何か実行しようとした場合に発生します。
クローズするタイミングを再度確認してください。
(クルーズをクローズに誤字修正>< ご指摘ありがとうございます)



Microsoft OLE DB Provider for ODBC Drivers (0x80040E09)
[Microsoft][ODBC Text Driver] データベースまたはオブジェクトは読み取り専用なので、更新できません。

JET4.0以降の制限で更新できる拡張子の制限がされているために問題が発生します。
使用するCSVファイルの拡張子を、txt,csv,tab,asc,htn,htmlに変更すると使用可能です。
もしくは、下記レジストリを変更すると使用できる拡張子を増やすことができます。
HKEY_LOCAL_MACHINE
 Software
  Microsoft
   Jet
    4.0
     Engines
      Text
       DisabledExtensions



プロバイダが指定されておらず、既定のプロバイダがありません。
800A0EA9
ADODB.Connection

DBの接続に必要なドライバがインストールされていません。
「管理ツール」の「データソース(ODBC)」で使用するドライバがインストールされているか確認してください。



実行時エラー'3265';[要求された名前、または序数---]が出る。

Function Namex(a,b)で、引数をrs.Fields(a)...rs.Fields(b)へ渡した時に発生する。

引数a,bをやめ、直にrs.Fields(1)...rs.fields(2)と現数を使って、Call Namex()とすればエラーは出ず目的を達成する。
デバッグでは、rs.Fields(a=1), rs.Fields(b=2)となっているが、この所で「実行時エラー'3265'」となる。
クエリーでなく、テーブルに変えても発生する。
(情報提供:お名前をご連絡ください)