【一般】Sharperlightをお手持ちのデータベースに繋ぐ

このようにあるMicrosoft SQL データベース(SLDemoJPN01)がローカルに存在します。
![Qiita 2022-02-22 Database Sample.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/575ac2ae-e329-7247-80ae-eb24f0a5eca0.png)
このデータベースにSharperlightを接続してデータの抽出を行います。

### データモデルを作る ###
Sharperlightアプリケーションメニューから「スタジオ」を選択します。
![Qiita 2022-02-22 Application Menu - Studio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/b6be4ba8-9a2e-5881-0477-710e830c0f0d.png)
`スタジオ`ダイアログが表示されます。新規作成なので、Newアイコンをクリックします。
(スタジオは日本語化されていません。:bow_tone1:)
![Qiita 2022-02-22 Studio - New.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/656ea11a-8cf8-4003-a322-a1e9ae4f1156.png)
新しい製品(New Product)ダイログが表示されたら、説明とコード、対象データベースエンジンを選択し、OKをクリックします。
コードは、既存の製品と重ならないようにします。またレポート等を作成した後は変更できないので、あらかじめよくお考えのうえ、短くてもこの製品を認識し易いコードを設定しましょう。
![Qiita 2022-02-22 Studio - New Product Dialog.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/07cfc0fb-fc92-5997-50bc-e1e2d3ee90fe.png)
データベースの接続用ダイアログが表示されるので、対象データベースを設定して接続の正常動作を確認しましょう。確認が済んだらOKを押します。
![Qiita 2022-02-22 Studio - New Product Dialog 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/feb64367-aa9a-2e6c-ef4e-6dcd7e659824.png)
![Qiita 2022-02-22 Studio - New Product Dialog Connection.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/ab4d81aa-3987-c246-e181-403f876a4b40.png)
メッセージが表示されるのでYesをクリックします。
![Qiita 2022-02-22 Studio - New Product Import Tables 3 Notice.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/f633efb1-6742-7b12-6095-0e8459f74c6a.png)
オブジェクトのインポートダイアログが開くので、フィルター条件等は初期状態のままでテーブルの取得(Get Tables)ボタンをクリックします。
![Qiita 2022-02-22 Studio - New Product Import Tables 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/0f51d03a-ef26-c631-1ce8-cadf189519b5.png)
接続しているデータベースからテーブルとビューが取得されます。
今回は全て必要ということで、すべてのオブジェクトが選択されている状態でOKをクリックします。
![Qiita 2022-02-22 Studio - New Product Import Tables 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/f62f0763-785f-3560-9a40-2ad9085e652a.png)
n個のテーブルが作成されましたというメッセージが表示され、データモデルへのスキーマ情報の作成が完了します。
![Qiita 2022-02-22 Studio - New Product Import Tables 4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/853a243e-31fd-3758-0c48-3228696cbd8f.png)
上記メッセージでOKをクリックすると、作成されたテーブルおよびフィールド情報が拝見できます。
Sharperlightエンジンは、この情報を元に動的にクエリ文を作成し発行します。これらは基本的な初期設定ですが、より高度なレポーティングや分析を行う場合は、各種プロパティを設定することで対応できるようになっています。
![Qiita 2022-02-22 Studio - New Product Tables Imported.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/46c7b435-48cc-f9de-81a1-2a6c2b110682.png)
ではこのデータモデルを保存します。保存(Save)アイコンから保存を実行することができます。
![Qiita 2022-02-22 Studio - Save 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/75c41cd6-8e72-e81b-0098-80dbc0ef8305.png)
通知ではOKを押して次に進みます。
![Qiita 2022-02-22 Studio - Save 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/f1f4c528-955e-e6b6-9255-7a5043752a4d.png)
C:\ProgramData\Sharperlight\MetaData\QiitaDemo.metaがSharperlightデータモデルの所定の保存場所です。保存(Save)ボタンを押して保存しましょう。
![Qiita 2022-02-22 Studio - Save 3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/69de0a9e-bf9f-6973-7f41-73b5ca9b8704.png)
保存が終了すると、”クライアントのセットアップ”でデータベースへの接続設定を行ってくださいというメッセージが表示されます。Yesをクリックして次に進みます。
![Qiita 2022-02-22 Studio - Save 4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/ba0f3799-4baf-a96b-afb3-e36572e11054.png)
`クライアントのセットアップ`が開くので接続詳細を設定します。接続テスト行いOKをクリックして終了です。
![Qiita 2022-02-22 Studio - Save 5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/4d0d16d3-28f6-7a33-19f8-91780b2f635e.png)
スタジオは開いたままですが、保存済なので閉じて大丈夫です。
保存の確認メッセージが再度表示されますが、YesでもNoでも大丈夫です。

### 新しい製品でクエリを作成 ###
Sharperlightアプリケーションメニューから「クエリビルダ」を選択します。
![Qiita 2022-02-22 Application Menu - Query Builder.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/c90c589a-adfe-1130-8dd9-0ca596e0a21b.png)
`クエリビルダ`ダイアログは開きます。先ず製品を選択しましょう。
![Qiita 2022-02-22 Query Builder 1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/50fa55e6-9e22-9fab-ee5d-b535eaebe80c.png)
次にテーブルを選択します。ここでは、プロダクト(Products)テーブルを選択します。
![Qiita 2022-02-22 Query Builder 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/eae60a1d-6034-7b8c-9f18-c39d69c9adf8.png)
`選択`階層表示にプロダクトテーブルのフィールド一覧が表示されます。ここではすべてのフィールドを単純に出力するということで、右クリックメニューから”すべてを出力”を選択します。
![Qiita 2022-02-22 Query Builder 3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/414fd609-d85a-8a2a-6062-d1b4eb6f5207.png)
`出力`領域にフィールドが設定されました。
![Qiita 2022-02-22 Query Builder 4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/7f983ea7-d0ac-b778-d99e-e0f849554430.png)
では早速、プレビューをしてみましょう。プロダクト(Products)テーブルからデータが返ってきました。
![Qiita 2022-02-22 Query Builder 5 Preview.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/04a68eb7-c3fd-0417-24be-2e46214144d6.png)
Sharperlightエンジンが、データモデルを元にどのようなＳＱＬ文を作成し実行したのか見てみましょう。左から2番目のアイコンのサブメニューから、”ＳＱＬステートメント”を選択します。
![Qiita 2022-02-22 Query Builder 6 Preview SQL Statement.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/03ceda00-24b8-5d3c-ea2f-cf13738262db.png)
このようにＳＱＬ文が確認できると思います。この機能は、データモデル設計時などのデバッグツールとしても活用できます。
![Qiita 2022-02-22 Query Builder 7 Preview SQL Statement.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/0fd9f6e0-ba36-fd36-34d7-137938a9c563.png)
尚、別の記事で紹介しますが、このようにデザインしたクエリはファイルに保存でき、SharperlightのパブリッシャーやExcekアドイン等で使用することが可能です。
保存機能は、クエリータブのフィルター領域の右クリックメニューからアクセスできます。
![Qiita 2022-02-22 Query Builder Save.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2530698/571b6c8d-2a42-1f2c-abce-2c9bc848b200.png)