• ベストアンサー

CSV出力時、件数によりエラーとなってしまいます。

はじめまして IISの問題か、SQL Serverの問題なのかわからないので、両カテゴリーに同様の質問をさせていただいております。 OS:2003Server、DB:SQL Server2000 WEBサーバ、DBサーバは別サーバです。 CSVを出力するASPを実行させているのですが、出力件数が多い時に下記エラーとなります。 (数十件の場合は、問題ありません。) 【エラー内容】  Microsoft OLE DB Provider for SQL Server エラー '80004005'  [DBNETLIB][ConnectionOpen (Connect()).]SQL Server が存在しないか、アクセスが拒否されました。  /daityo/CsvOut.asp,行168 エラー箇所としては、SQLを実行しDBにアクセスする命令時に発生します。(実行毎に、エラーとなる行が変わります。) どこかで、タイムアウトしているのかと思い、'MetaBase.xml’の下記部分の値を変更しましたが、改善されませんでした。 AspMaxRequestEntityAllowed="102400000" 現在、手詰まり状態です。 皆様のお力をお貸しいただけないでしょうか? 宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

.Netフレームワークとしてのコマンド待機時間ですので、 SQLServerに設定するのは今回はなしかなと。 MSDNのサンプルコードを参考にしてください。 プロパティですので、SQLを実行するたびに・・は必要ないですが、プログラムの起動時には必要な前処理になります。No.3 さんの回答で、Connectionは1回しか実行していない、と書かれていますよね。同じことです。

margon0721
質問者

お礼

お礼が遅くなって申し訳ありません。回答、ありがとうございます。 現在、同環境が社内にないため、客先にて確認しなければなりません。 近々、確認を行う予定です。 現在、下記の様にfunctionでDBに接続しているものに、ConnectionTimeout、CommandTimeoutを追加してみようと思います。 以前は、Win2000Serverで動いていたものを、今回2003Serverに移設したのですが、IIS5とIIS6では、この辺の設定をしてあげないとエラーになるんでしょうか? また、お手数おかけしますが、ご確認お願いします。 **************************************** function DB_Open() 'DBOPEN strcon="server=***;uid=***;pwd=***;database=***" set currdb=server.CreateObject("adodb.connection")    currdb.ConnectionTimeout = 300    currdb.CommandTimeout = 300    currdb.Provider="SQLOLEDB"    currdb.ConnectionString=strcon    currdb.Open end function ****************************************

その他の回答 (3)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.3

プログラムがどのように組まれているかわからないので何とも言えませんが、SQLServerへのConnection数が限度を超えているとかないですか? 例えばレコードを1件取得するたびにConnectionを作っているなど・・・ 一回プログラムを見直してみるといいかもしれません。

margon0721
質問者

お礼

回答ありがとうございます。 ソースを添付できるとよいのですが・・・ Connectionは、asp実行時に一回しか行っておりませんので問題ないかと思われます。 でも、そういった問題も考えられるということで、勉強になりました。 ありがとうございます。

回答No.2

ぬおっ、参考URLが入りきらなかったらしい。。。 すいませんが、ご自分で SqlCommand.CommandTimeout をググってください。

margon0721
質問者

お礼

早速の回答ありがとうございます。 確かに実行時にCommandTimeoutの初期設定である30秒前後でエラーとなります。 asp初心者の為、追加で質問させてください。 set cdrs=currdb.Execute(sqlstr) という様に、SQLを実行しているのですが、その度に SqlCommand.CommandTimeout=60 という様に命令しなければならないのでしょうか? それとも、SQL Serverの環境設定等あるのでしょうか? お手数おかけしますが、宜しくお願い致します。

回答No.1

SQLがタイムアウトを起こしているので、IISは関係ないでしょ。 SqlCommand.CommandTimeout で調べてみてください。

参考URL:
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemDataSqlClientSq

関連するQ&A

  • CSV出力時、件数によりエラーとなってしまいます。

    はじめまして OS:2003Server、DB:SQL Server2000 WEBサーバ、DBサーバは別サーバです。 CSVを出力するASPを実行させているのですが、出力件数が多い時に下記エラーとなります。 (数十件の場合は、問題ありません。) 【エラー内容】  Microsoft OLE DB Provider for SQL Server エラー '80004005'  [DBNETLIB][ConnectionOpen (Connect()).]SQL Server が存在しないか、アクセスが拒否されました。  /daityo/CsvOut.asp,行168 エラー箇所としては、SQLを実行しDBにアクセスする命令時に発生します。(実行毎に、エラーとなる行が変わります。) どこかで、タイムアウトしているのかと思い、'MetaBase.xml’の下記部分の値を変更しましたが、改善されませんでした。 AspMaxRequestEntityAllowed="102400000" 現在、手詰まり状態です。 皆様のお力をお貸しいただけないでしょうか? 宜しくお願いいたします。

  • このエラーの解決は?

    「Microsoft OLE DB Provider for SQL Server エラー '80004005' [DBNETLIB][ConnectionOpen (PreLoginHandshake()).]一般的なネットワーク エラーです。ネットワークのマニュアルを調べてください。 /inc/chkuser.inc, 行 41」 どうしたらいいでしょうか?

  • ODBC Drivers エラー

    クリックありがとうございます。 先日、先行でチケットをとるページでチケットの予約をしました。 そのときはまったく問題がなくページにアクセスできたのですが 2日ほどまえから Microsoft OLE DB Provider for ODBC Drivers エラー '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]構文エラー。varchar 値 '*****' から int データ型に変換できませんでした。 /*****/****/****/**/logon_p.asp, 行 22 というエラー文がでてアクセスできなくなりました。 チケットのあたりはずれも同じページでの確認なので困っています。 どうすればいいでしょうか?

  • 価格comで以下のメッセージが出てフリーズします

    出たり出なかったりですが、最近頻繁に出ます。 何か設定変更で直るのでしょうか。 Microsoft OLE DB Provider for ODBC Drivers エラー \'80040e31\' [Microsoft][ODBC SQL Server Driver]時間切れになりました。 /bbs/Main.asp, 行 420

  • SQL Serverのエラーについて

    サーバーの環境 OS:MS Windows NT Server 4.0 DB:MS SQL Server6.5 SQL Server 6.5 Service Pack 5a Windows NT 4.0 Service Pack 6a Internet Information Server 4.0 Internet Explorer 5.5 SQL Serverにクエリーを実行すると以下のエラーが発生します。 解決方法をご存知の方いましたらご教授願います。 Microsoft OLE DB Provider for ODBC Drivers エラー '80040e14' [Microsoft][ODBC SQL Server Driver][SQL Server]行のサイズが 2107 になり、作業テ-ブルの作成に失敗しました。テ-ブル 2014 内の 1 行の許容サイズを超えます。

  • ASPからACCESS2000でエラー"80004005"

    ASPプログラミング初心者です。 ASPを使ってACCESS2000へ接続しようとしてますが、一番最初のDB OPENするところで、下記エラーが出てどうにも前に進めません。 どなたかアドバイスよろしくお願いします。 ちなみに、データソース名やその使用には問題ないと思ってます。 「Provider エラー '80004005' 特定できないエラーです xxxx/xxxx/xxxx.asp, 行 42」

  • (素人の質問) SQL Server エラー '80040e57' の原因の所在

    私は、データベースなどの知識は全くありません。 下記のエラーの原因は、WEBサイト側にあるのでしょうか? それとも閲覧に使用するパソコン・ブラウザに原因があるのでしょうか? IEやSleipnirだとこのエラーが表示されますが、Apple Safariだとエラーは起きませんでした。 Microsoft OLE DB Provider for SQL Server エラー '80040e57' STRING または BINARY データは切り詰められました。 E:\WEB\MODULE\FRAME\../../common/lib/parts/database.asp, 行 105

  • SQL文が実行できません

    単純なSQLの実行命令なのですが、 下記のエラーメッセージが出て実行できません。 解消方法をご存知の方がいらっしゃいましたら、 教えてください。よろしくお願いします。 エラーメッセージ: Microsoft OLE DB Provider for ODBC Drivers (0x80040E10) [Microsoft][ODBC Microsoft Access Driver] パラメータが少なすぎます。1 を指定してください。 /x_db/1.asp, line 12 (Set RS = db.Execute(SQL)のラインがエラーです) ソースです。 <% Set db = Server.CreateObject"ADODB.Connection") db.Open "x_db" SQL = "select * from x_db where w_xpc ='" & Request.Form("F01") &"'" Set RS = db.Execute(SQL) Response.Write(RS.Fields("氏名")) RS.close set RS = nothing db.close set db = nothing %> 環境:WIN200server IIS5.0 access97

  • オブジェクト名 '<table>' が無効です

    システムの改修をしています。 新規テーブル、SERVER_CHECK を作成しました。 このテーブルにアクセスすると、下記エラーが発生します。 ===== Microsoft OLE DB Provider for ODBC Drivers エラー '80040e37' [Microsoft][ODBC SQL Server Driver][SQL Server]オブジェクト名 'SERVER_CHECK' が無効です。 ===== 既存のテーブルにはちゃんとアクセスできます。 'SERVER_CHECK' の名前も管理ツールからコピー&ペーストしたので、間違っていません。 SQL Server Management Studio からは結果を出力できます。 プログラムからアクセスするとエラーになります。 ===== Set conServer = ConnectDB() SQL = "SELECT * FROM SERVER_CHECK" 'SQL = "SELECT * FROM PLAN_DB" こちらは正しく出力を得られます。 Set dbServer = conServer.Execute(SQL) ===== どこかの設定が間違っていると思うのですが、見当がつきません。 どなたかご教示よろしくお願いします。

  • ASPからSQLサーバーへ接続できない

    色々な質問を見たのですが 環境などの違いもあり解決できず 困っています。 環境は1台のPC(W2000)にIIS+SQLサーバー2005デベロッパーエディションとか言うテスト用のバージョンをインストールしています。 また SQLサーバーはWindows認証を使っています。 SQLサーバーにマネジメントエキスプレスで接続して システムデータベースにPLEMIAというデータベース名を作り テーブルのシステムテーブルにpure_kihonというテーブルを作っています。 ASPにて試験的につないでみようと思い Dim objCon Set objCon = Server.CreateObject("ADODB.Connection") objCon.ConnectionString = "Provider=SQLOLEDB;" & _ "Data Source=(local);" & _ "Initial Catalog=PLEMIA;" & _ "Integrated Security=SSPI;" objCon.Open strSQL = "SELECT * FROM [pure_kihon]" objRS.Open strSQL, objCon, 3 こうした場合  objCon.Open のところで引っかかり Microsoft OLE DB Provider for SQL Server (0x80004005) [DBNETLIB][ConnectionOpen (Connect()).]SQL Server が存在しないか、アクセスが拒否されました。 と出てしまいます。 SQLサーバー自体は稼働しているようなんですが 何がいけないのか よく分かりません。 どなたか解決策などご教授頂けると幸いです。 よろしくお願いします。

専門家に質問してみよう