NT4.0 SQL 6.5 に 展開している
約240フィールド、20万件のテーブルに対して
ACCESS97や2000で単純なクエリーを実行した場合でも
「ODBC--呼び出しは失敗しました。」(Error.Number 3146)
が発生しています。

 DBの存在するパソコンのスペックはCEL-666MHz MEM:320MB
ネットワークを介さずODBCリンクで自身からACCESSでクエリ
ーを実行しても同様です。
 DBの設定に問題があるのか、SQL6.5の限界なのかどちらでし
ょうか。

 また、このテーブルに対するデータのインポート作業でも同
様の現象が発生する為、データ分割をして行いました。
 
 有効なインポート手段などもあれば紹介願います。

A 回答 (1件)

こんにちは。


ODBCタイムアウトが発生してる可能性はありませんか?
実際にどんなクエリーなのかわかりませんが、20万件を対象とした
クエリーならばかなり時間がかかると思います。
Access97でクエリーを作成した場合、デフォルトのタイムアウトは
60秒に設定されていたと思いますので、それ以上反応が無い時に
タイムアウトが発生します。
クエリーのプロパティのODBCタイムアウト設定値を確認してみては
いかがですか?
    • good
    • 0
この回答へのお礼

 確かに原因はタイムアウトです。ご指摘の設定値を
変更してみます。
 インポートの方も原因は同様のはずですが、対処法
に関してご存知の方がいらっしゃれば宜しくお願い
いたします。

お礼日時:2002/04/05 23:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qタイムアウト

接続のタイムアウトとトランザクションタイムアウト以外に
タイムアウトってありますか?
教えてください。
よろしくお願い致します。

Aベストアンサー

参考になりますか、わかりませんが、、、

remote query timeout とか知ってます。
あと接続のタイムアウトも、ODBCの接続プールのタイムアウトとか。
あと、、、セッションタイムアウトとか。。。

QSQL-Server 6.5でストアドプロシージャの実行

EXECUTE procedure 'para1','para2'
で正しい結果が返ってくるストプロがあります。
これをSELECT文の中で結果を返すようにするには
どんな書き方をすれば良いのでしょうか?
ストアドプロシージャを作成したのは今回が初めてで
試行錯誤しながらなんとか結果が返せるようになった
のですが、私がISQLで試した方法ではうまく行きません。

<私の試した方法>
SELECT procedure(tabe1.para1,tabe1.para2)
FROM table1

SELECT文でストプロを実行することはできないのでしょうか?
宜しくお願いします。

Aベストアンサー

このプロシージャはテーブルの項目名を返すのでしょうか?
だとしてもこういった使い方は出来なかったと思います。

もし、そのプロシージャが結果として表(Select結果)を返すのであれば
プロシージャ内でビューを作成し、
そのビューに対して再度Selectを発行すれば良いと思います。

Qシステムエラーの回避法とタイムアウトを早める方法

ブログのRSSを取得し最新5件の記事タイトルを取得するスクリプトを作りました。
スクリプト自体は問題なく動いているのですが、RSSを発行しているサイトがダウンした場合にちょっと困った事が…

問題1:タイムアウトが長すぎる
スクリプトは2回読んでいて、RSSのサーバーがダウンしている場合、タイムアウトしないと画面が表示されません。
タイムアウトが返って来るまでの時間は約6分です。
試しにfsockopenというのを使用してタイムアウトを5秒に設定したところ、タイムアウトは2分まで短縮されました。
タイムアウトが上手く動かないのは一体何故でしょうか?
10秒くらいで接続できなかったらタイムアウトさせて画面を全て表示させたいのですが、どうすればよいのでしょうか。

問題2:エラーを回避させてもシステムエラーになる。
システムエラーがあった場合、システムエラーの画面に飛ぶようになっています。
上記のブログでタイムアウトした場合、システムエラーとなり通常のページが表示されません。
関数に@をつけるとエラーメッセージは表示されないと教えていただきましたが、メッセージが表示されないだけでエラーには変わりありませんでした。
システムエラーとして認識させないためにはどうすればよいでしょうか?

現在のソースはこんな感じです。
$fp = fsockopen("www.hoge.jp", 5);
if(!$fp) {
 return "タイムアウト\n";
} else {
 //RSSの読み込み処理
}

アドバイスお願いします。

ブログのRSSを取得し最新5件の記事タイトルを取得するスクリプトを作りました。
スクリプト自体は問題なく動いているのですが、RSSを発行しているサイトがダウンした場合にちょっと困った事が…

問題1:タイムアウトが長すぎる
スクリプトは2回読んでいて、RSSのサーバーがダウンしている場合、タイムアウトしないと画面が表示されません。
タイムアウトが返って来るまでの時間は約6分です。
試しにfsockopenというのを使用してタイムアウトを5秒に設定したところ、タイムアウトは2分まで短縮されまし...続きを読む

Aベストアンサー

先ほどは触れるのを忘れていたのですが、fsockopen関数は正常にタイムアウトの設定が働いてないのかな、って思ってます。

以前、別なアプリケーションでfsockopenを使ってました。STMPのプロセスを書いていたのですが、ごく稀に相手から何の反応も帰ってこない事がありました。このスクリプトは元々処理時間が掛かるのでスクリプト自体の時間制限もナシにしていたので、fsockopenが無反応になる時は、エラーが出るどころか、永遠に処理が戻ってこないという状況でした。色々と設定を変えたりしてもダメだったので、そういうものだと思っていました。

Q「ODBC」「組み込みSQL」「DB2 CLI」

「ODBC」「組み込みSQL」「DB2 CLI」について
よく分かりません。
IBMのページ等を参照したのですが・・・
3つを絡めて考えると、どうも混乱してしまいます。
ご教授頂けないでしょうか?
当方はプログラミングを行なった事がありません。
何卒宜しくお願い致します。

Aベストアンサー

 IBMのページで、それらの説明にどれくらいページを割いていましたか?その説明がわからないのであれば、文字数の限られたここで説明できると思いますか?

 一度にすべて、と欲張るからわからないのです。順番に、1つずつ理解していけばよろしい。

Q嵐の宿題くんの番組協力をメールで応募したんですが、タイムアウトですと表

嵐の宿題くんの番組協力をメールで応募したんですが、タイムアウトですと表示されてしまいました。まだ応募時間が終了していないのになんでタイムアウトなのかわかりません。

Aベストアンサー

応募が殺到して、サーバが処理しきれずにタイムアウトしたものと思われます。

Qあるテーブルの内容を基準にして違うテーブルを更新するSQL文

教えて下さい。

あるテーブルに下記の内容があります。
ID│名称
─┼───
1│花
2│木
3│水

もうひとつのテーブルには、
ID│名称
─┼───
1│海
3│水
4│空
となっています。
最初のテーブルの全レコードを対象に、最初のテーブルのIDと同じ値がもうひとつの
テーブルにある場合、もうひとつのテーブルをUPDATEし、存在しなければINSERTしたい
です。
結果を
ID│名称
─┼───
1|花
2│木
3│水
4│空
を期待しています。

このようにするSQL文を教えていただけませんでしょうか。
よろしくお願いします。

Aベストアンサー

良く似た質問が過去に有りました。
回答2がぴったりだと思います。
参考にしてください。

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=604829

Qサーバーに接続すると発生するタイムアウトとは?

アメリカと日本にサーバーを設置、データのやり取りを行っているのですが、接続して所定のデータを引っ張り出そうとすると、タイムアウトが発生してデータ転送ができません。

ちなみに日米間の回線はVPNで20Mbpsです。

タイムアウトとはどうして発生するのでしょうか?またデータ転送の解決方法はどのようなケースがある、または考えられるのでしょうか?

タイムアウトの問題について詳しい方、どんなことでも構いませんのでご存知の方よろしくアドバイスをお願いします。

Aベストアンサー

あ、タイムアウトとは?ってことですね。

 タイムアウトはどうして発生するかというと、タイムアウトが起こるようにしてあるからです。

# 意味不明っすね。

 コンピュータからコンピュータへ接続するにも、ウィンドウズのアイコンからそのコンピュータにインストールしてあるプログラムを呼び出すにも、何かから何かに「接続」して「対象」に対して「要求」し、期待する「反応」を待ってその「反応」に対して何らかの「動作」をします。その「反応」が返ってくるまでの間、「要求」した側は「待ち」の状態になりますよね?
 もし、これらの「要求」に対して何らかの原因で「反応」が返ってこなかった場合、「要求」した側はいつまでも待ち続けなければいけません。「反応」するはずの側も実は「待ち」続けているかもしれません。これは意図的に切断してあげないと、いつまでも待ち続けてしまいますので、こういった操作には「タイムアウト」という「時間切れ」が設定してあって、「何秒以内に反応が無ければ自動的に切断する」ということになっています。

 ですので、タイムアウト自体の機能は正常に動作しているわけですが、この場合の問題は、「なぜタイムアウトが発生するほど時間がかかるのか?」ということであって、「なぜタイムアウトが発生するのか?」ということではありません。

 実際にどういう構成でその作業をしてあるのか分かりませんが、暫定的にタイムアウトの設定を長く取ってみるという手はあります。ただ、20Mbpsもあり、その帯域がしっかり取れているのであれば、何かの設定ミスなどの可能性も否めません。
 ログイン自体はできているのですよね?ログイン後、「データを引っ張り出そうとする」と、タイムアウトが発生するんですよね?そのデータを引っ張りだせる権限はあるのかな?案外そんなところに原因があったりします。

あ、タイムアウトとは?ってことですね。

 タイムアウトはどうして発生するかというと、タイムアウトが起こるようにしてあるからです。

# 意味不明っすね。

 コンピュータからコンピュータへ接続するにも、ウィンドウズのアイコンからそのコンピュータにインストールしてあるプログラムを呼び出すにも、何かから何かに「接続」して「対象」に対して「要求」し、期待する「反応」を待ってその「反応」に対して何らかの「動作」をします。その「反応」が返ってくるまでの間、「要求」した側は「待ち」の...続きを読む

QODBCでDB2に接続する時に必要なもの

ODBCを使用して、PC(windows)から、AS400(OS/400)のデータベース(DB2)にアクセスすることを考えています。やりたいことは、データベースからあるデータを抽出して、PC上のファイルに格納することです。(データベースの更新は考えていません)
上記の前提で、PCからODBCによる接続を行うときに必要となるものは、何でしょうか。
(PC側とAS400側とでそれぞれ必要なものを教えて下さい。ODBC用のドライバが、それぞれ必要なのかなとは、思っていますが、未経験の為、その辺がよくわかりません。又、その必要なものは、DB2(PC側の場合はVB等の開発ツール)を購入した時、標準で提供されるものなのでしょうか。それとも、別途購入しないといけないものなのでしょうか。)

Aベストアンサー

>ありがとうございます。クライアント側が必要と言うことですね。
>サーバー側(AS400)は、必要ないのでしょうか。

ODBCが何かを理解しましょう。
理解していれば”それぞれ”なんてないはずです。
Open DataBase Connectivityなんですから。

http://yougo.ascii24.com/gh/04/000494.html
もちろん、特別なものは不要です。というか、接続できなきゃどうするの?

QIISのタイムアウト設定について

Windows2000+IIS6.0+ActivePerlで、時間がかかる処理を行うプログラムを作成しているのですが、
CGIタイムアウトが発生してしまい、最後まで実行
出来ません。

IISの設定で、ASPのタイムアウトや、セッションタイムアウトを30分とかに設定してもなぜか5分ほどでエラーになってしまいます。

どのようにすればCGIの実行時間を延ばせるのでしょうか?

Aベストアンサー

根本的な解決になるかどうか分かりませんが、以前にASPでタイムアウトを
アプリ側で回避するために用いたのは、処理を行っている間、
定期的にクライアント側にコメント文を送ってやるという方法でした。

Perl でもこれと同様の処理を行えばとりあえずは解決できるのでは
ないかと思います。

ASP版ですがその時と同じような処理を解説しているサイトが
あったので載せておきます。

参考URL:http://www.geocities.co.jp/SiliconValley/4334/unibon/asp/adoasync.html

QaccessのマクロでODBC接続で外部データをインポートしたいのですが

accessのマクロでODBC接続で外部データを自動でインポートしたいのですがうまくいきません。「ファイルから外部データの取込みでインポート→ファイルの種類でODBC DATABASES()を選択し、コンピュータデータソース指定→テーブルを指定」ではできたのですが、マクロで以下のように設定したのですがうまくいきません。
アクション・・データベース変換
変換の種類・・インポート
データベースの種類・・ODBC データベース
データベース名
ODBC;DSN=ACSKNSM1DS;APP=Microsoft&reg; Access;WSID=JYOHO08;DATABASE=ACSKNSM1;Trusted_Connection=Yes;TABLE=dbo.tbl_bank
オブジェクトの種類・・テーブル
オブジェクト名・・dbo_tbl_bank
変換先名・・銀行T
テーブルの構造のみ変換・・いいえ

※銀行Tのテーブルはアクセスのテーブルを作成しました。

どうか宜しくお願い致します。

Aベストアンサー

先にODBCレベルでテストしてみてください。
拡張子表示できる設定で始めてください。

1.デスクトップで右クリックし、新規作成をクリック。
2.新規テキストドキュメントを選択。
3.名前を<任意>.udlとする。
4.拡張子変更の確認があるが強行する。
5.アイコンが「表とPC」みないに変わるので起動。
6.認識なさっている条件で接続テストを行う。

この段階でうまく行かなければODBCパラメータ記述のどこかがおかしい。
これでうまく行くならACCESSのAP部分がおかしい。

値を見直しながら再試行ください。


リンクテーブルをローカルのテーブルにするなら、リンクテーブルを参照するクエリを作成し、SQLビューに切り替え、[from <リンクテーブル名>]の直前に「into <ローカルテーブル名>」としてもインポートは実現できます。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング