- PR -

データ再抽出のやり方

1
投稿者投稿内容
会議室デビュー日: 2006/07/20
投稿数: 9
投稿日時: 2006-10-05 19:58
Windows XP Pro
Visual Studio 2005(Windows Form)
SQL Server 2005
でMS AccessのプログラムをVB.NETに移行しています。

いつも拝見させていただいております。

ひとつ、ご質問があります。

Accessでは、まず、データをクエリで抽出し、それをもとに、他のテーブル+抽出したクエリを使って、再度データを抽出しているところがあります。

それを、VB.NETで再現しようと思っています。

現状

sql_Cmd.CommandText = "CREATE VIEW V_データ……"
sql_Cmd.ExecuteNonQuery()

と、上記のように、ビュー作成しています。

ビューを作成してから、

str_Sql = "SELECT Tb_テーブル.名前 FROM V_データ INNER JOIN Tb_テーブル ON V_データ .コード = Tb_テーブル.コード"

Cmd.CommandText = str_Sql
adp.SelectCommand = Cmd
adp.Fill("データセット", "テーブル10")

と、データセットに格納しております。

現状、このやり方で、抽出を行っているのですが、他にいい方法があればと思い、書き込みいたしました。

ご教授おねがいいたします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-10-05 20:03
ビューの定義を明らかにしてください。

ビューを、毎回作らなければならないのですか?
ビューを作る必要がないような気がします。
_________________
会議室デビュー日: 2006/07/20
投稿数: 9
投稿日時: 2006-10-05 20:33
Jittaさん返答ありがとうございます。

ビューの定義は、
CREATE VIEW V_データ AS SELECT * FROM テーブルA WHERE テーブルA.コード=1
です。

SELECTするテーブルは同じなのですが、コードを指定して抽出したかったため作成しています。

毎回作成しなくてもいいのでしょうか?
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-10-05 21:36
引用:

SELECTするテーブルは同じなのですが、コードを指定して抽出したかったため作成しています。

毎回作成しなくてもいいのでしょうか?


はい。そうです。
テーブルやストアドプロシージャのように、データベースに先にストアしておくものです。
一通りざっと基礎的な本を一冊よんでから始めたほうが何かと良いと思います。
_________________
囚人のジレンマな日々
ぷさいくろう
ぬし
会議室デビュー日: 2006/08/30
投稿数: 1034
投稿日時: 2006-10-05 22:45
インラインビューにすれば
ハニワ祭り
大ベテラン
会議室デビュー日: 2005/11/15
投稿数: 115
投稿日時: 2006-10-05 23:53
SELECT Tb_テーブル.名前
FROM テーブルA
INNER JOIN Tb_テーブル
ON テーブルA.コード = Tb_テーブル.コード
WHERE テーブルA.コード=1

でいいのでは?
会議室デビュー日: 2006/07/20
投稿数: 9
投稿日時: 2006-10-06 20:15
みなさん返答ありがとうございます。

色々と調べてみた結果、データベースに先にビューを作成することにしました。
これからSQL Serverについて勉強しようと思います。
1

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