- - PR -
VWD2005のクエリビルダで作成したSQL文がエラーになる
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-09-19 16:07
いつもお世話になっております。
Visual Web Developer 2005 Oracle10g にて開発を行っております。 SQLDataSourceをデザイナ上にドラック&ドロップして、「データソースの構成」を選択し、クエリビルダにてSQL文を作成&実行確認したのですが、クエリのテストの段階でエラーになってしまいます。 クエリビルダ画面において、テーブルを追加し、生成されたSQL文は以下のようになります。 SELECT YOSAN.NO FROM YOSAN INNER JOIN KESSAI ON YOSAN.NO = KESSAI.NO クエリビルダ内の「クエリの実行」において実行出来たことが確認できたため、そのまま 「次へ」ボタンで画面を進み、クエリのテスト画面で再度「クエリのテスト」ボタンを押してみたところ 「構文エラー: '.'、識別子または引用符で囲まれた識別子が必要です。」 というエラーが表示されて、SQL文を実行することができませんでした。 生成されたSQL文をコピー&ペーストしてみると、何の問題もなくSELECT結果が出力されているので、SQL文自体には間違いはないと思うのですが・・・。 クエリビルダで作成したSQL文は、そのまま使用することができない場合があるのでしょうか? (どうもINNER JOINを追加すると、エラーになってしまいます。) | ||||||||
|
投稿日時: 2006-09-19 17:09
MSDNフォーラムにも同じ問題がありました
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=663253&SiteID=7 僕は未検証なのですが、 inner join などを使わずに結合するとうまく行くようですね。。。 プロバイダーは何を使用していますか? | ||||||||
|
投稿日時: 2006-09-20 09:38
かるあ様、ご返答ありがとうございます。
MSDNフォーラムにあった問題とまったく同じです。 あちらにも書かれているとおり、たしかにINNER JOINをはずしてみたら、エラーを出力しなくなりました。 (LEFT JOINなどで回避) INNER JOINを使わずにやってみて、何とか回避はできました。 「一応、エラーが発生しても [完了] すれば良さそうです。」 とのことが書いてありましたが、エラーでも問題なさそうですけれども、エラーのままで使うというのも怖い。(^^; プロバイダーとは、ConnectionString内にて使用しているものでしょうか? であれば、web.config内にて以下のように設定しております。 <add name="ConnectionString" connectionString="Data Source=ora***_***.***.***.***;Persist Security Info=True;User ID=TEST;Password=TEST;" providerName="System.Data.OracleClient" /> | ||||||||
|
投稿日時: 2006-09-20 15:50
確かにエラーのまま使うというのは気持ちが良くありませんね、 .NET Framework が問題なのか Oracle が問題なのか。。。 MSDN フィードバックにも似たような問題は無いみたいですね、 フィードバックをあげてみてはどうでしょうか。
ODT.NET だと Oracle 純正のビルダーなどが使えるので、 こちらでやったらどうかな、と思いました。 あいにく、現在は調査できる環境に無いのでどうなるかわかりませんが。。。 | ||||||||
|
投稿日時: 2006-09-20 18:02
試してみました。
WHERE 区に結合条件を書くことでもうまく行きますが JOIN でもうまく行くみたいですね。
↓
他に OUTER JOIN とか CROSS JOIN, NATUAL JOIN は問題ないですね。 何で INNER JOIN だけ駄目なんだろう | ||||||||
|
投稿日時: 2006-09-21 11:27
>>かるあ様
・結合条件を書くこと ・INNERをはずす ということで、回避可能なわけですか・・・試験結果につきましては、大変参考になりました。 ありがとうございました。 Oracle上ではなんら問題なく INNER JOIN が動いておりましたので、.NETの問題なのかもしれませんね。 |
1