2015年12月7日月曜日

【SQLserver】DBテーブル内のカラムにコメントを登録する

こんにちわ、開発者のⅠです。

さて、今回はDB操作に関するお話です。
クエリ文を作成しそれをプログラム上で実行することで、新規テーブルの作成やカラム追加など、様々な操作が可能です。

その中で、今回はカラムにコメントを登録する方法を伝えします。
カラムの定義変更や追加には【ALTER TABLE】を利用することになりますが、新規にカラムを追加する場合はコメントには何もない状態です。

このコメント、カラム自身がなにを格納するものなのか、それを説明するのに結構重要なものです。コメント自体は手動で登録・編集が可能ですが、カラム作成と同時に登録できれば手間を省けますね。

それでは、早速書いてみたいと思います。
環境は、
・管理プログラム:SQL Server Management Studio
・対象テーブル:日本の観光名所を登録している「dbo.tbl_attractions」
・追加するカラム:設立した年を格納する『year』 とします。
/* カラム『year』の追加 */ 
ALTER TABLE tbl_attractions ADD year datetime

/* カラム『year』にコメントを登録する */
EXEC sys.sp_addextendedproperty  @name=N'MS_Description'
                                ,@value=N'設立した年'
                                ,@level0type=N'SCHEMA'
                                ,@level0name=N'dbo'
                                ,@level1type=N'TABLE'
                                ,@level1name=N'tbl_attractions'
                                ,@level2type=N'COLUMN'
                                ,@level2name=N'year'


これで、カラムにコメントが登録できるはずです。
登録されたかどうかを確認するには、対象のテーブルで右クリックし、デザインを開くとカラムの設定情報の一覧が表示されますから、その中の”説明”に登録したコメントが入っているはずです。

それでは、今日はこの辺りで失礼します。

2015年12月4日金曜日

そもそもWebAPIとは?

こんにちは山田です。
外部サーバとデータの受け渡しをする方法として、
APIという方法があるとわかったのでその調査をしてみました。

よくあるAPIとしてはGeogleMAPや郵便番号の検索が思いつくと思います。

日本の全エンジニアに捧ぐ!現在公開されているAPI一覧【2013年版】



■そもそもWebAPIとは

Application Program Interfaceの略
直訳すると、あるプログラムを、他のアプリケーションから利用するためのインターフェースという意味になります。

目的としては、自社で保有するデータや、システム、アプリケーション、Webサービスの機能を公開して他社で使ってもらうためです。

動きとしては
WebAPIで機能を公開しているサーバに対して、HTTPリクエストの形で送信して、
処理結果がHTTPレスポンスの形で返ってきます。

■URLの設計
方法としてサブドメインに配置する方法 http://api.example.com/
ドメイン下に置く方法 http://example.com/api/
それぞれあります。
自分でつくるサイトは小規模なので、後者でよさそうです。

■外部APIと内部APIの違い
社外の人に使ってもらうものを外部APIと呼び分けています。
社内で完結する場合は内部APIというものになります。

■データ通信形式
XMLとJSON(JavaScript Object Notation)がある
最近では可読性の観点から、JSONを使うことが一般的のようです。

■HTTPリクエストを送る際のポイント
●リクエスト形式
HTTPリクエストを送信する方法としては、大きく分けてJSONとフォームの二つがあります。

フォーム形式が一般的で、フォームでのPOST送信の場合、文字データだけではなく画像や動画などのバイナリデータも送れます。

JSON形式も最近多い形です。こちらは構造化したJSONデータなので、送る際に可読性が上がるというメリットがあります。

5分で絶対に分かるAPI設計の考え方とポイント より
http://www.atmarkit.co.jp/ait/articles/1511/19/news022.html

2015年12月3日木曜日

XMLHttpRequestとは?

こんばんわ、開発者のⅠです。

さて、今回は前々回の投稿についての補足として、APIのひとつであるXMLHttpRequestについて説明したいと思います。

以下のソースは、前々回の投稿での使用例です。
マーカーの情報が記録されたCSVファイルを読み込むための関数 getCSVFile に組み込んでいます。
 
 function getCSVFile() {
   var xhr = new XMLHttpRequest();
   xhr.onload = function () {
   createArray(xhr.responseText);
   };

   xhr.open("get", "markerlist.csv", true);
   xhr.send();
 }
 getCSVFile();

このAPIは、ブラウザ上でサーバーとHTTP通信を行うために利用します。


また、各メソッドの意味については以下の通りです。

【onload】 : レスポンスを受信完了した段階で行う処理を記述します

 【open】: 実際に送信するリクエストを生成します。リクエストの型、ファイルの存在するURL、
       非同期通信を行うか否かを指定します。

 【send】: 生成したリクエストをサーバーへ送信します。


つまり、上に記述した関数 getCSVFileを言い換えてみると、

 「markerlist.csvを対象に非同期通信を行うようGET型のリクエストを生成・送信し、
   この通信が完了した時点で、取得したファイル内のデータを引数として、
  関数createArray(xhr.responseText)を実行する」

という感じでしょうか。

思ったよりも、シンプルに外部ファイルを取得できるのですね……。

それでは、今日はこの辺で失礼します。









GetTypeで型名を見る C#

こんにちは山田です。

型名って忘れること多くないですか?
そんな時にこれさえ覚えとけば安心の、型名の出力方法の覚書です。
開発環境:ASP.NET 2.0
開発言語:C#

必要となる構文はこちらです。
 Object.GetType メソッド

例) ASPX側


 <%# Eval("AnimalName") %>


ASPX.CS側
protected void AddStatus(object sender, RepeaterItemEventArgs e)
{
  //is演算子でオブジェクトの型の確認
  if (e.Item != null && e.Item.DataItem is string)
  {
  Control ctl1 = e.Item.FindControl("ahref");
  //ct1の形名がわからないとき
  Response.Write(ctl1.GetType().Fullname);
  //出力は「System.Web.UI.HtmlControls.HtmlAnchor」となり型名を教えてくれる

  if (ctl1 != null && ctl1 is System.Web.UI.HtmlControls.HtmlAnchor)
  {
      //型名に合わせて安全にキャストできる
   ((System.Web.UI.HtmlControls.HtmlAnchor)ctl1).Href = "";
  }
}

2015年12月1日火曜日

CSVファイルとは?

こんにちわ、開発者のⅠです。

今回は、前回の投稿で触れたCSVファイルについて説明したいと思います。

CSVは「Comma Separated Values」のそれぞれ頭文字です。
”カンマ区切り文字”とでも言いましょうか。

「名前、経度、緯度」の各要素が書き込まれたCSVファイルを例にしてみると、

東京タワー, 35.658589, 139.745615
浅草 雷門, 35.711020, 139.796336
中央本線 笹子駅, 35.603862, 138.825087

という様式になっています。
カンマごとにマーカーの「各要素」が存在し、さらに「マーカー1つに一行のデータ」という対応関係になっていますね。

前回の投稿では、splitメソッドを使っていましたが、その際に区切り文字に”, (カンマ)”と”\n(改行コード)”を設定していたのはこういう理由からです。

このCSVファイルの作成・表示はMicrosoft社のExcelで実行可能ですが、若干の問題があります。
それは文字化けです。Excelでは新規ファイルを作成するときに、CSVファイルとして保存することが可能ですが、文字コードは「Shift-JIS」で固定されます。

自分の環境ではUTF-8を用いる必要があったため、このまま作成したCSVファイルを読み込むと、マーカーは表示されますが、インフォウィンドウの中身が見事に文字化けしました。
この対処法として、一旦メモ帳でファイルを開き、改めて『名前を付けて保存』で文字コードをUTF-8に設定しました。

しかし、編集するためにExcelでCSVファイルを開いてしまうと、再び文字コードが変更されるようで、文字化けが発生してしまいました……。

※Excel上で保存時に文字コードを指定できない理由わからず、自分と同じ悩みを持った人がネット上で見受けられました……。

現在は、VisualStudio上で編集を行っており文字化けは発生しておりません。

せっかく表示させたマーカーをクリックしてみたら、わけのわからない文字が羅列されていると大変残念な気持ちになります。くれぐれもご注意ください。

それではこの辺りで失礼します。