MSDE FunClub
Microsoft Data Engine FunClub
MSDE技術者向けメーリングリスト過去ログ[623]番
 
[TOP]>[MSDE技術者向けメーリングリスト過去ログ(623番)]>[ウィンドを閉じる]
 
SQLServer2005時代でも
開発の基本は T-SQL
上巻で T-SQL の基礎作り
 
SQLServer2005時代でも
運用の基本はバックアップ
下巻でバックアップ手法を学びましょう
PASSJ人気コンテンツで学んだ後は下巻でさらなる学習を!
 
ウィンドを閉じる
MSDE/SQLServer FAQ
MSDE / MSDE2000 
技術情報サポート
初心者向け
メーリングリスト
過去ログの表示
技術者向け
メーリングリスト
過去ログの表示
メーリングリスト
活動状況の
表示
MSDE TOP メニュー
MSDEトップメニューに移動します
 

 
Re: ビュー中での関数の使い方

Date: Fri, 25 May 2001 19:20:10 +0900
From: 丸山 宏徳 <who@example.ne.jp>



藤田(FJT)さん、こんにちは。

ん〜………繰り返しになってしまいますが、「RDBMSって何?」ということをも
う一度復習なされてください(^^;

というだけでは不親切なので、少し解説させていただきましょう。この文章は、
必要でしたら等幅フォントに切り替えて読んでください。MS P明朝、MS Pゴシッ
クなどの不等幅フォントの場合、少々見苦しいことになるかもしれません。

まず、今までの.mdbファイルを使用していた場合、クエリーは次のように処理さ
れます。

(1)クエリーデザイン画面等で「hogehoge」という名前のクエリーの実行を指示。
   ↓
(2)Accessが、現在の.mdbファイルの中から「hogehoge」という名前のクエリー
  を探し出す。
   ↓
(3)Accessのクエリー分析機能が、探し出したクエリー「hogehoge」がどの
  テーブルを参照し、どんな条件で、どんなソート順で抽出しているかを
  分析する。
   ↓
(4).mdbファイル内の必要なテーブルにアクセスしデータを取り出す。

……で、帰ってきた結果を画面に表示します。この場合、(1)〜(3)はいずれも
Access内で処理されているため、Accessで定義された関数を(3)の部分で解釈し
て処理することが出来るのです。対してMSDEの場合は

(1)ビューデザイン画面等で「hogehoge」という名前のビューの実行を指示。
   ↓
(2)Accessとは別のプログラム「MSDE」に対して「『hogehoge』という名前
  のビューの結果を私にください」という依頼を、プログラム間通信
  (と、今回は書いておきます)で送信する。
   ↓
(3)Accessとはまったく別のプログラム「MSDE」は、この依頼を受けて、
 指定されたデータベースの中から「hogehoge」というビューを探し出す。
   ↓
(4)MSDEのSQL文分析機能が、探し出したビュー「hogehoge」のSQL文がどの
  テーブルを参照し、どんな条件で、どんなソート順で抽出しているかを
  分析する。
   ↓
(5)MSDEが、データベース内のテーブルにアクセスしデータを取り出す。この際、
  他のクライアントが必要なレコードを排他ロックしていないか、トランザ
  クション処理を行うべきか、等をMSDEがチェックする。
   ↓
(6)MSDEが依頼を発信したAccessに対して、プログラム間通信(繰り返します
  が、この名称は不正確です(^^;))で検索したデータの結果を返信する。
   ↓
(7)返信されたデータを元に、Accessが結果を画面に表示する。

……という手順を踏むのです。従って、(4)を見ていただければお分かりいただ
けると思いますが、「MSDEのSQL文分析機能」が解釈できるSQLしかビューには記
述できないのです。藤田さんの「get_moji()」という関数はAccessの中にしか存
在しません。従ってMSDEのSQL文分析機能では解釈できない、というエラーが発
生しているのです。解決方法としては(とりあえず思いつく限りでは)

(1)ストアドプロシージャにパラメータを渡す形でレコードセットを得る
(2)「get_moji()」を使用したVBAを記述し、動的にSQL文を生成する

の二通りがありますが、まずその前に(繰り返しになりますが)「RDBMSとはな
んぞや?」という部分をもう少しお調べになられたほうがよろしいと思います。
MSDEを使用してクライアント=サーバを構築する場合は、、.mdbを使用していた
頃のAccessとはまったく違った考え方をしなければならないことはご承知置きく
ださい。MSDEとは、Accessとはまったく違った一つの独立した
「RDBMS=Relational Database Management System」というジャンルのプログラ
ム(システム)なのです。



丸山 宏徳

E-Mail:who@example.ne.jp



[MSDE/SQLServerに関して、今、どんなことにお困りですか?]
よろしければお困りの内容を、電子メールで教えて下さい。
質問を電子メールで作成する


[ウィンドを閉じる]

[MSDE/SQLServer FAQ ]

[MSDE / MSDE2000 技術サポート情報一覧]

MSDE TOP ページに移動する

 
 
 
 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDEを始めとする各種データベースシステムの開発、コンサルタントに関するご要望等は、
msdedev@horikawa.ne.jp までご連絡下さい。