• 締切済み

実行時エラー 3035 メモリ不足です。

お世話になります VB6+SQL Server+DAO 3.5(3.6かも)で、開発を行っているプログラムがあります。 (OS:Windows2000 、Vista 双方で確認) VB6でSQL ServerのとあるテーブルにSelectを実施したいのですが、 Where区に大量の条件を記述すると、件名のようなエラーがおきます。 具体的には以下のようなSQLです SELECT aaa,bbb FROM table_c WHERE col in '1234567890','xxxxxxxxx','xxxxxxxxxx' … in区のあとに、10文字の文言を、何個か指定するのですが、 その件数が多いと件名のようなエラーになります。 テスト環境で実行した際には、 in区のあとに、5000件を指定=OK、5500件を指定=エラー となりました。 質問させて頂きたいのですが、 1:このエラーの原因は何なのでしょうか? マイクロソフト サポート オンライン などで、その原因について載っているサイトがあれば 教えてください 症状としては、↓が近いのですが、これはAccess 2007なので、 もしかしたら、ちょっと違うのかなと思っています。 http://support.microsoft.com/kb/918814/ja 2:このエラーが起こった際は、単純にin区の中の件数を減らせばOKなのでしょうか ご存知の方がいらっしゃいましたら、ご教授の程、よろしくお願い致します。

みんなの回答

  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.2

SQL Serverのバージョン書いてないから なんともいえませんけど、 SQL文の長さに上限があるのはご存知ですか? 例えば、 http://msdn.microsoft.com/ja-jp/library/ms143432(v=SQL.90).aspx の 「SQL ステートメントが含まれた文字列の長さ (バッチ サイズ)」参照。 SQL ServerおよびDAOのマニュアル見てみてください。 SQL Server2000かDAOか どっちかが64Kが上限だったような記憶が。 (SQL Server2005以降は設定しだい。) 1件毎に'xxxxxxxxx',だから13文字。 5000件では、 5000*13=65,000 5500件では、 5500*13=71,500 64K=65,535なので。。。 あやしいと思うけど。

回答No.1

SQL Server のバージョンがわからないですが、もしかすると↓かなぁ? http://support.microsoft.com/kb/288095

関連するQ&A