
2008です。
有給休暇の使用日(複数)を文字列として、一つのフィールドに入れる
仕組みを作ろうとしています。
(4/1、6/20、6/21 8/30・・・・・てな感じです)
動的SQLでパラメータに値を代入する方法によって結果が変わってしまいます。
現象1
パラメータに代入(Set)するときに「'A0'」をセットすると正常に動きますが、
「(Select Max(コード) From テーブル Where コード='A0')」にすると
パラメータの入力を求められます。
しかし後者をIf文の中で代入するとパラメータの入力は求められません(下記)
if Select Max(コード) From テーブル Where コード='A0' = 'V0'
set @para = 'V0'
else
begin
set @para = (Select Max(コード) From テーブル Where コード='A0')
end
**********@paraを使う動的SQL***********
現象2
上記のIf文でパラメータを代入後、動的SQLの直前に@paraの値を確認の為
テーブルに書き込む(Insert)と動的SQLの結果が無くなってしまいます。
動的SQLの後にも書込を入れてみましたが、同じ値が書き込まれています。
当然、直前の書込を無くせば正常に表示されます。
何とか動作するのですが納得できず、将来に禍根を残しそうな現象であり
どうするべき(スルーするべき)か悶々としています。
No.2ベストアンサー
- 回答日時:
レガシーADOのように結果セットを複数受け取れない場合には、「○行更新されました」というメッセージ自体を1つの結果セットとして先に受け取ってしまうため、後続の結果セットが受け取れない可能性があります。
少なくとも、私の読解力では「動的SQLの結果が無くなってしまいます」はそのように読めたということです。
いずれにしても、質問者さんのようにMSのサポート体制が微妙な組み合わせ(Access ADP 2003 & SQL Server 2008でしたよね)で開発をしていて、不明な現象をどうしても追求したい場合、少なくともトラブルシューティングのための検証ステップが3つは足らないと思います。
・クエリアナライザでの単体検証
・Access 2003(MDB)でデータソースのプロバイダを「SQLOLEDB(SQL Server)」にした環境
・Access 2003(MDB)でデータソースのプロバイダを「SQLNCLI10(SQL Native Client 10.0)」にした環境
今の方法では、SQL Serverが悪いのか、データプロバイダが悪いのか、組み合わせが悪いのか、切り分けできませんよね。
No.1
- 回答日時:
なんだかやっていることに関する記述がかなり端折られている感じで、読解力がいりますね。
。5回読んで考えましたが、現象1は内容が理解できません。
現象2はたぶん「SET NOCOUNT ON;を切ってないのでは?」
この回答への補足
すいません、端折りすぎですね、長くなると見にくいと思ったのですが、
これでは意味不明ですね・・・
月曜日にきちんとしたストアドと画面のハードコピーを載せますので
よろしくお願いします。
「SET NOCOUNT ON;を切ってないのでは?」は試してみます、ありがとうございました。
「SET NOCOUNT ON」を入れても結果は変わりませんでした。
「SET NOCOUNT ON」は行数を返さない為、効率が良くなると理解しましたが、
効率UP以外にどんなことが期待できるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
重複するキーから一番古い年月...
-
商品コード番号を入力すると商...
-
ACCESS2000です。
-
「マスタ」と「テーブル」の違...
-
このようなview書けますか?
-
SQL文について(片方のテーブル...
-
ACCESS インポート時の重複チ...
-
【Access】順位を付けたい
-
Microsoft Access 2010の初心者...
-
SI Object Browserのテーブルス...
-
Access VBA [リモートサーバー...
-
SQLServerで同一条件レコードの...
-
アクセスのテーブルからエクス...
-
時系列データの抜けの調べ方
-
既に使用されているので、使用...
-
SQLスクリプトを自動生成する方法
-
bcpインサートでのフォーマ...
-
DBMAGICのプログラム解析
-
ACCESS-リンクテーブルの設定で...
-
sqlplusでバックスペースが効か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
2つのテーブルから条件に一致...
-
重複するキーから一番古い年月...
-
主キーの変更
-
update文で質問です。 下記の条...
-
ACCESS 一つのフィールドに複...
-
続.ORACLEのSELECTのソートに...
-
accessで移動平均する方法
-
行方向のデータを横に並べる
-
Accessでフィールドを比較した...
-
PLSQLの識別子エラー
-
商品コード番号を入力すると商...
-
ACCESSのデータシート形式のフ...
-
複数InnerJoin時の処理落ち回避法
-
Accessのテーブル設計について...
-
正規化・リレーションシップに...
-
Accessのコンボボックスの使い...
-
データベースの問題
-
ACCESSのコンパイルエラーについて
-
SQL結合条件
おすすめ情報