- - PR -
AccessのSQLで条件付き連結した項目をDataSetで扱う問題
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-31 14:27
Access2000 の SQL で複数の項目を連結し、かつデータが無い場合の細工をするために replace を使ってみました。
VS2005で、DataSetに登録しようと、サーバーエクスプローラーの「関数」にある「学校の人達番号と生徒番号」から、DataSet.xsd に追加したところ、次のようなエラーがでました。
Replace を外すとサーバーエクスプローラの「ビュー」に登録され、問題なく追加できたことから、1(Warning) は、Replace だろうと推測されます。 同じ結果が得られれば Replace を使うことには拘りません。 良い方法を御存知の方は、ご教示下さいますようお願いします。 [ メッセージ編集済み 編集者: R・田中一郎 編集日時 2006-07-31 14:27 ] | ||||||||
|
投稿日時: 2006-07-31 14:32
Access2000を使って無いから大外しの可能性があるけど、
>学年 & "-" & 組 & "-" & 出席番号 学年か、組か出席番号がNULLという事は無いですか? (NULLに何をつけてもNULL) | ||||||||
|
投稿日時: 2006-07-31 14:41
あります。 しかし、この場合の正しい表記の仕方が不明なのです。 Access上では普通に表示できたので、この SQL でアリだと勝手に思っておりましたが、駄目駄目なんでしょうか? orz | ||||||||
|
投稿日時: 2006-07-31 14:47
Access の クエリとして保存しておき、
.net からはそのクエリを SELECT するだけにするとか | ||||||||
|
投稿日時: 2006-07-31 16:23
なるほど!、と思ってやってみましたが同じ結果になりました。 こんな感じです。
この二つのクエリーをAccess で登録して、VS2005 のサーバーエクスプローラーを最新の状態にした後に、DataSet.xsd に対してドラッグドロップしてみました。 しかし、全く同じエラーが表示されます。 Access側ではどちらも表示できています。 DataSet.xsd がコードを生成する時に何か起きているのでせうか・・・ #・・・更に、いろいろと調べてみます。 | ||||||||
|
投稿日時: 2006-07-31 16:38
こんにちは。
えーと、推測ですが。 replace は Access の内部関数なので、ADO.NET が replace を解釈 してくれていないのではないでしょうか。 (つまり Access に SQL を直接渡しているのではなく、ADO.NET が解釈 した後で Access に渡していると。ODBC みたいなイメージ?) ADO.NET で使える関数と言うと今すぐは出てこないのですが、Iif とか nz とかはどうでしょう。 (nz はムリかもしれません orz) replace をその辺の関数に置き換えて一度試してみてください。 # いや、orz は関数じゃないです _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||
|
投稿日時: 2006-07-31 16:57
なるほど、とても分かりやすい説明をありがとうございました。 上記の Iif を使って、次のようにしてみたところ無事DataSet.xsd に「学校の人達」を登録することに成功しました。
ありがとうございました。 |
1