- PR -

SQLでSELECT文の結果が返ってこない

1
投稿者投稿内容
フジー
常連さん
会議室デビュー日: 2004/06/03
投稿数: 45
投稿日時: 2004-09-13 15:36
こんにちはフジーです。
現在VisualBasic.net + ACCESS で作成したWindowsアプリをメンテナンス中(DAOからADO.NETに移行)なんですがSQLは通るのに結果が返ってこないという現象が発生しています。

DAOでは結果が返ってくるんですがADO.NETでは返ってきません。
このような現象について心当たりのある方など対策法等をご教授いただけないでしょうか。

SQLは普通に複数のテーブルからのデータを抽出し表示するためのSQLでACCESSにじかに
入力すると当然結果は返ってきます。エラーメッセージも表示されないため困っています。よろしくお願いします。
nodera
大ベテラン
会議室デビュー日: 2003/09/08
投稿数: 200
投稿日時: 2004-09-13 15:49
これだけの情報だと状況がつかみきれませんが、一番ありそうなのはテーブルマッピングができてなくて期待しているDataTableと違うDataTableに結果セットが格納されている、ってところでしょうか。

もう少し具体的に使っているクラスやメソッド、ソースコード等を記載してもらえると答え易いですね (^^
フジー
常連さん
会議室デビュー日: 2004/06/03
投稿数: 45
投稿日時: 2004-09-13 16:24
noderaさん早速のお返事ありがとうございます。
どのようなことを記載すればよろしいでしょうか?

新しくわかったことなんですが抽出条件を付け加えると結果が返ってこないというものです。
条件をつけずに全件表示するとちゃんと全件結果が返ってきます。

例)

SELECT 顧客.顧客名, (地区.地区名 & 字.字名 & 顧客.番地) AS 住所 FROM (顧客 INNER JOIN 字 ON 顧客.字ID = 字.字ID) INNER JOIN 地区 ON 顧客.地区ID = 地区.地区ID;

ならOKなんですが

SELECT 顧客.顧客名, (地区.地区名 & 字.字名 & 顧客.番地) AS 住所 FROM (顧客 INNER JOIN 字 ON 顧客.字ID = 字.字ID) INNER JOIN 地区 ON 顧客.地区ID = 地区.地区ID WHERE 顧客.顧客名 LIKE "あ*";

だったらNGなんです。

ACCESSではOKなんですがなぜでしょう・・・

[ メッセージ編集済み 編集者: フジー 編集日時 2004-09-13 16:36 ]
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2004-09-13 16:35
ADO.NETのことはよく存じませんが。

引用:

... WHERE 顧客.顧客名 LIKE "あ*";


の部分が、
引用:

... WHERE 顧客.顧客名 LIKE "あ%";


だったら通ったりするんでしょうか。
CHN
ぬし
会議室デビュー日: 2002/03/07
投稿数: 382
投稿日時: 2004-09-13 16:40
引用:

Edossonさんの書き込み (2004-09-13 16:35) より:
ADO.NETのことはよく存じませんが。

引用:

... WHERE 顧客.顧客名 LIKE "あ*";


の部分が、
引用:

... WHERE 顧客.顧客名 LIKE "あ%";


だったら通ったりするんでしょうか。


私もそう考えましたが、
なんせACCESSですから
よくわかりませんので、、、
ACCESSは結構SQLが適当なもんで、、、

_________________
フジー
常連さん
会議室デビュー日: 2004/06/03
投稿数: 45
投稿日時: 2004-09-13 16:43
Edossonさん返信ありがとうございます。
WHERE 顧客.顧客名 LIKE "あ%";

で実行すると結果が返ってきました。ありがとうございます。
見逃していました…
ADO.NETとDAOでSQLが違うんですね?
SQLは扱ったことがなかったので勉強になりました。

#CHNさん返信ありがとうございます。
これはACCESSの問題なんでしょうか??


[ メッセージ編集済み 編集者: フジー 編集日時 2004-09-13 17:00 ]
1

スキルアップ/キャリアアップ(JOB@IT)