• ベストアンサー

データ読込時のタイムアウト

SQL-Serverのデータ(約30万件)を関数で処理した結果、約1000件くらいを、VS2005のレポートサービスで出力したいと思います。 その際、大体50:50の確立でタイムアウトを起こしてしまいます。 エラーを起こす場所は、 Me.××TableAdapter.Fill(Me.▲▲DataSet.××) です。 SQLコマンドに対しては、CommandTimeoutで対処するのは解りますが、テーブルアダプタを介してのデータの読込に関するタイムアウトの時間設定が解りません。どうしたらよろしいでしょうか?

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

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

Fillメソッド内部で使用しているDataAtapterのSelectCommand.CommandTimeoutを設定すればよいのだが、外部からは触れない。 テーブルアダプタクラスをイジルしかない。

参考URL:
http://blog.livedoor.jp/gushwell/archives/50527778.html
gonta_256
質問者

お礼

回答ありがとうございます。 データアダプタではやはりタイムアウトは取得のみで設定はできないみたいです。 Me.×××TableAdapter.Connection.CreateCommand.CommandTimeout = 120 で、テーブルに設定したらうまくいきました。 う~む、テーブルの数だけ設定はめんどくさいですね。 ありがとうございました。

関連するQ&A

  • 【VB2005】DB接続時の一般的なタイムアウト時間

    23歳男性です。 SQL Serverに接続してデータを書き込むなどの処理を行う場合、タイムアウト時間を設定しています。 私は「1000秒」にしているのですが、これは長すぎるでしょうか?一般的にはどれくらいにすべきなのでしょうか? また、設定時間が長すぎる、短すぎる場合、どのような弊害が生じるのでしょうか? ご理解されている方がいらっしゃいましたら、ご回答願います。 ちなみに設定しているのは「CommandTimeout」です。

  • DataSetについて

    下記のようなDataSetを使用した処理質問致します。 TableAdapterのデザイン時にてSELECTCommandで SELECT 'AA' AS 名前 FROM M_マスタ と、記述してDataGridView1に反映しようとしても実際にテーブルに入っているデータがそのまま表示されてしまいます。 このように固定の値を取得する方法はどのようにしたらよろしいのでしょうか?そもそもできないのでしょうか? Dim ds As New DataSet1 Dim Ta As New DataSet1TableAdapters.M_マスタTableAdapter 'テーブルアダプタを利用してデータを読み込む Ta.Fill(ds.M_マスタ) Me.DataGridView1.DataSource = ds Me.DataGridView1.DataMember = "M_マスタ"

  • タイムアウトしてしまいます

    お世話になります。 表記の件、WndowsNT4.0上でIIS4.0とPHP3を使用してwebアプリケーション(主にデータの集計をするアプリ)を設置しております。 データ量がかなり増えたせいで、クライアントがタイムアウトしてしまい、空白のページが表示されるようになってしまいました。 はじめはPHP自体のタイムアウト設定が原因なのかと、max_execution_timeの値を増やしたのですが、効果はありません。(タイムアウトするまでの時間(180秒)も変化無し) おそらくIISのほうの設定だと思うのですが、あまり詳しくないため、かなり困っております。 どなたか、お分かりになるかたはいらっしゃいませんでしょうか?

  • VBタイムアウト

    タイムアウト、プールサイズの制限値 VB2010で業務アプリケーションの集計ツールを作成しています。 仕組みは単純で、下記の様にDateTimePicker(カレンダー)から日付を選び ボタンクリックでフォーム内のデータグリッド内に集計値が入っていく仕組みです。 'カレンダー日付選択 Sub Aggregate() '日付の取得 DateTimePicker1.Format = DateTimePickerFormat.Custom DateTimePicker1.CustomFormat = "yyyy-MM-dd 1つのフォームにデータグリッドが10個ほどあるので画面遷移までに5秒くらいかかってしまいます。 1度目の表示は問題ないのですが、日付を選択し直し2度、3度と実行すると ”タイムアウトに達しました。プールから接続を制限する前にタイムアウト期間が過ぎました。 プールされた接続がすべて使用中で、プールサイズの制限値に達した可能性があります。” と表示されてしまいます。開放も行っているつもりで原因がわかりません。 原因がわかれば教えていただきたいです。処理をスピードアップできる方法があればそれもお願いします。 接続文字は以下の通りです。 Function CONNECT(ByVal SqlText As String) As String Dim St As String Dim Cn As New System.Data.SqlClient.SqlConnection Dim SQL As New System.Data.SqlClient.SqlCommand Dim ServerName As String = "AAAAAAAAA" Dim UserID As String = "BBBBBBBBB" Dim Password As String = "CCCCCCC" Dim DatabaseName As String = "DB" Dim Adapter As New System.Data.SqlClient.SqlDataAdapter Dim Table As New DataTable Adapter.SelectCommand = SQL SQL.Connection = Cn SQL.CommandTimeout = 120 St = "Server=" & ServerName & ";" St &= "User ID=" & UserID & ";" St &= "Password=" & Password & ";" St &= "Initial Catalog=" & DatabaseName Cn.ConnectionString = St SQL.CommandText = SqlText Cn.Open() Return SQL.ExecuteScalar SQL.Connection = Nothing SQL.Transaction = Nothing SQL.Dispose() Cn = Nothing Cn.Dispose() Cn.Close() End Function データグリッドの転記は下記の様なコードをずらっと書いています。 DataGridView10(2, 3).Value = CONNECT("SELECT COUNT(*)" & _ " FROM dbo.IOTBL, dbo.APLTBL" & _ " WHERE APLTBL.APLID=IOTBL.APLID" & _ " And (APLTBL.APLTYPE='JA01')" & _ " And (APLTBL.DELETED<>'1')" )

  • ACCESS97, 2000のODBCリンクでのインポート時のタイムアウト回避

    ACCESS97, 2000のODBCリンクでのSQL6.5へデータをインポートしています。 大き目のデータをインポートする場合、タイムアウトしてしまいますが タイムアウト時間をクエリーの様に設定できないのでしょうか?  

  • VB2005のデータテーブルFillについて

    いつもお世話になります。 VB2005で開発しています。素朴な疑問なんですが、 Form1にデータソースウィンドウからデータテーブルをドラッグしてはりつけると、 'TODO: このコード行はデータを 'DataSet1.test' テーブルに読み込みます。必要に応じて移動、または削除をしてください。 Me.testTableAdapter.Fill(Me.DataSet1.test) と、自動でコードが生成されますが、「Me.」って必ずいるのでしょうか? 参考書を見てみると、データを呼び込むコードが testTableAdapter.Fill(DataSet1.test) となっており、「Me.」がありませんでした。 自動で生成されたコードの「Me.」を削除して使うと何か支障があるのでしょうか?

  • ODBCタイムアウトエラー

    WindowsXP環境でACCESS2003を使用して、ODBCリンクでSQL SERVER2005に接続し、データーを取得後ローカルテーブルにデーターを置く処理を作って運用していたのですが、 Windows7でACCESS2003に移行し、システム内容は変更していないのですが Windows7になってリンクテーブルを開くと「ODBC タイムアウトエラー」が発生します。 WindowsXPのときはタイムアウトが出ずに1分くらいで結果が返ってきます。 多分、SQL SERVER ドライバーの影響と思うのですが分かりません。 どなたか教えてください。 Windows7 SQLSERVER(ODBC)ドライバー バージョン:6.01.7601.17514 windowsXP ドライバー バージョン:200.85.1132.00

  • 長時間処理のタイムアウトの問題

    VS2005 ASP.NET SQL Server こんにちは。 現在、あるページをアクセスした時の ページロードの時に呼ばれる関数で、 DBの内容の変更を行っています. ただ、この処理が少し重い処理で、 処理中にタイムアウトしてしまい 処理が途中で止まってしまいます. この処理をサーバーの設定を変えずに解決する方法はないでしょうか? 処理だけをサーバー上に残してページを表示したり、 意図的にタイムアウトをさせないように動作させることなど なんでも構いません. お力添えをお願い致します.

  • AccessレポートのCommandTimeout

    Access レポートのCommandTimeout/QueryTimeoutの設定方法について(データリンクプロパティ) こんにちは。アべです。 Access2003+SQLServerの構成でレポート作成して運用しているシステムがあります。 徐々にデータが増えてきてついに処理がタイムアウトするようになりました。 タイムアウト値を伸ばしたいのですが可能でしょうか? 環境 ・Accessのファイルは、adpファイル形式です。(Access2003SP3) ・SQL Serverの接続先は、「データリンクプロパティ」にて設定しております。 ([ファイル]-[接続]) ・ソースの抜粋 レコードセットを、レポートのOpen時イベントで RecordSourceプロパティに直接入れているんです。 Me.RecordSource = "select * from aaa(par1,par2)" ・作りを変更するのは今更厳しい。 システムがそれなりに大きいことと、5年くらい運用している。 調べて分かったこと ・データリンクプロパティには、クエリの実行を待つタイムアウトがない。  (Connection Timeoutはあります。) ・この人が同じことで悩んでいます。  http://www.accessclub.jp/bbs2/0017/beginter05461.html 以上

  • データアダプターについて

    ASP.NETでデータアダプターを使用して、データセットに セットする部分を作成したのですが、実行すると 「SqlAdp.Fill(DataSet)」と記述した部分に差し掛かると以下のようなコンパイルエラーが発生します。 BC30390: 'WebTest.PlanMenu_ViewL.Private Dim WithEvents DataSet As System.Data.DataSet' は 'Private' であるため、このコンテキストではアクセスできません。 これはどのようなエラーなのでしょうか? 回答して頂くのにこれだけの情報で分かるのかどうかも分からない初心者ですが是非ご教授お願いします。

専門家に質問してみよう