ホチキス先生の「プログラマーと呼ばれたい」

InfoPath & SQL Server !

Microsoft Store Japan でお買いもの – しっかりしたデニム生地で利用範囲の広いトートバッグ

leave a comment »

東京品川のマイクロソフト本社にある Microsoft Store Japan でお買いもの。マイクロソフトのロゴグッズがいろいろあり、品川本社へ行ったときはお土産をここで買うのだが、その中で実用的なものをいくつか紹介している。これはしっかりしたデニム生地で応用範囲が広い、いわゆるトートバッグだ。

IMG_0268_mid_640_480

こんなかんじで、実に普通のトートバッグである。

IMG_0269_mid_640_480

マイクロソフトのロゴも控えめでさりげなくかっこいい。

IMG_0272_mid_640_480

中はこんなかんじ。大小ふたつのポケットがついている。このトートバッグを肩にかけて通勤するのもいいじゃないか。中にはもちろん Surface を入れて。

Written by Yoshio Matsumoto

2014年11月24日 at 1:34 AM

Microsoft Store Japan でお買いもの – マイクロソフトのロゴがかっこいい男性用セカンドバッグ

leave a comment »

東京品川のマイクロソフト本社にある Microsoft Store Japan で買ったセカンドバッグ。合皮だが作りがしっかりしていて、マイクロソフトのロゴもかっこいい。

IMG_0266_mid_640_480

サイズは大きめ。中をあけるとこんなかんじ。カードホルダーやペンホルダー、ファスナー付きのサイドポケットなどがあり、ちょっとした外出ならこれひとつでいい。

IMG_0267_mid_640_480

大きなカバンを持つとついつい不要なものを持ち歩きがちだが、いっそこれだけ、と割り切ると身軽でいい。このセカンドバッグと Surface を片手に通勤、というスタイルでどうだろう。

Written by Yoshio Matsumoto

2014年11月24日 at 1:24 AM

Microsoft Store Japan でお買いもの – キャスター付きスーツケースの持ち手に通せる、出張で役立つお買いものエコバッグ風のセカンドバッグ

leave a comment »

品川のマイクロソフト本社にはマイクロソフトのロゴグッズが買える Microsoft Store がある。品川本社に行ったときに時間があればお土産に何か買って帰るのだが、その中からよかったものを紹介してみる。

IMG_0273_mid_640_480

ファスナーを閉じたままではよくわからない。ポーチのようにも消えるし、主婦のお買いもの用エコバッグのようにも見える。生地は薄く、とても軽い。

IMG_0274_mid_640_480

ファスナーを開くとこんなかんじ。ここまで開けて、ああ、これは、お買いもの用エコバッグなんだ、と思った。

IMG_0275_mid_640_480

開くとこんなかんじ。サイドに小さなファスナー付きのポケットがある。マイクロソフトのロゴはバッグの底になり、表から見えなくなるのが残念。

IMG_0276_mid_640_480

サイドのポケット部分の生地は、なぜか上から下へ通り抜けている。これは、とひらめいた。

IMG_0280_mid_640_480

こうである。キャスター付きのスーツケースの持ち手に通すと、ちょうどいい具合に収まるのだ。出張時にスーツケースに入れておけば、帰りに荷物が増えてもこうして上に載せておける。もちろん生地が薄くペラペラなので、固いものや重いものは入れることができないが、着替えたシャツやタオル類などを入れるといいだろう。これは便利である。

Written by Yoshio Matsumoto

2014年11月24日 at 12:45 AM

Microsoft Azure SQL Database を使う – その1 – 概要

leave a comment »

Microsoft Azure SQL Database はクラウド上に展開する SQL Server だ。Microsoft Azure を利用すると、クラウド上にデータベースを構築することができ、サーバー管理の必要なくデータベースを利用できる。Microsoft Azure SQL Database にデータベースを構築し、Windows Form でデータベースアプリケーションを作って利用する概要は次のとおりである。

まず Microsoft Azure にユーザー登録し、SQL Database を作成する。作成した SQL Server データベースの管理は、Microsoft Azure アカウントの管理ポータルで行う。

SQL_Azure_001_mid_640

<Fig.1 : Microsoft Azure アカウントの管理ポータル>

データベースを作成したら、管理ポータルから SQL Database のページへ移動し、デザインのボタンでテーブルを作成することができる。テーブル作成は SQL Server Management Studio のテーブル作成画面とほぼ同じなので、SQL Server のデータベース開発やAccessを使った経験があれば簡単に使うことができるだろう。

SQL_Azure_002_mid_640

<Fig.2 : Microsoft Azure アカウントの管理ポータルからテーブルを作成する>

Visual Studio による開発では、Microsoft Azure アカウントの管理ポータルから、SQL データベース用のスタートプロジェクトをダウンロードする、のリンクをクリックすると、Visual Studio のプロジェクトがダウンロードできる。このプロジェクトには、ここで作成した Microsoft Azure SQL Database がサーバーオブジェクトとして登録されたプロジェクトになっている。

このプロジェクトを Visual Studio Community 2013 で開くと、オンプレミスの SQL Server でデータベースアプリケーションを開発するのとほとんと同じ手順で Windows Form データベースアプリケーションを開発することができる。

SQL_Azure_003_mid_640

<Fig.3 : Microsoft Visual Studio Community 2013 による Windows Form データベースアプリケーション開発>

Microsoft Visual Studio Community 2013 では全くコードを書くことなく、数ステップのウィザードで1対1でテーブルと関連付けるデータベースアプリケーションを作ることができる。ビルドして実行すると Microsoft Aure SQL Dabase のデータを編集することができる。

SQL_Azure_004

<Fig.4 : Microsoft Visual Studio Community 2013 で作った Windows Form データベースアプリケーションを実行する>

データを追加しデータベースに保存する。Microsoft Azure SQL Database にデータがストアされたことは、Microsoft Azure アカウントの管理ポータルでクエリを発行して確かめることができる。たとえば次の SELECT 文を発行する。

——————————————————————–
select ID,sname,sbirthday from students
——————————————————————–

SQL_Azure_005_mid_640

<Fig.5 : Microsoft Azure アカウントの管理ポータルでクエリを発行する>

以上が Microsoft Aure SQL Database にデータベースを作成し、Windows Form データベースアプリケーションで利用する手順だ。Microsoft Azure SQL Database はデータベースをクラウド上にもたせることでサーバーマシンの管理コストをなくすことができ、インターネットに接続できるあらゆる場所から利用することができる。そして Microsoft Azure SQL Database を利用する WIndows Form データベースアプリケーションの作成は、Microsoft Visual Studio Community 2013 を利用するとオンプレミスの SQL Server を利用する場合とほとんど変わらない開発ができ、単にテーブルと1対1のフォームなら全くコードを書くことなく短い時間で開発できる。

クレジットカードのキャンペーンとリボ払いの落とし穴

leave a comment »

クレジットカードを取得するとき「新規ご入会キャンペーン」といった特典がもらえる場合がある。しかし何らかの特典がもらえるには、それなりの見返りが必要である。まれに、まったく何もせず入会するだけでギフトカードなどの特典をもらえる場合もあるが、たいていは何カ月以内に一定の金額の利用が必要とされているだろう。このとき気をつけなければならないのは「リボ払い」だ。

IMG_2841_mid_640_480

※写真は本文と関係ありません。

「リボ払い」というのは、毎月の支払いを一定額に抑え、額を超えた分は翌月支払いにまわし、金利がつく、という支払い方法だ。これは支払額を毎月一定に抑えることで支払いに苦労することはなくなるが、翌月回しになる支払いについては手数料として金利を上乗せした払わなければならない。ここでの金利だが、たとえば銀行にお金を預けるとき、銀行から支払われる金利は現在どのくらいの相場であるかといえば、郵貯銀行の郵便預金で1年間の定額預金金利が 0.035 %、三井住友銀行のスーパー定期預金で1年間の金利が 0.025 %だ。一方、住宅ローンで銀行からお金を借りるとき、郵貯銀行の「フラット35」の返済期間20年以内、融資率9割以内で年利 1.580 %、三井住友銀行の超長期固定金利型で20年以内が 2.24 %だ。

銀行などの金融機関は、集めるお金に対する金利は小さく、貸し出すお金の金利は大きく設定することで利益を得る。これが 0.025 %や 0.035 %と、1.58 %や2.24 %の違いになる。ではリボ払いの金利はいくらなのか。

IMG_2842_mid_640_480

※写真は本文と関係ありません。

クレジット会社によって違いはあるが、おおよそリボ払いの金利は年 10 ~ 15 %である。これは住宅ローン金利の 5倍から 10倍くらいの金利だ。この金利が適用されるのは、基本的に毎月の返済額の上限を超えた、翌月以降に繰り越される支払いに対してなので、いくら使ったのかと同時に、毎月の返済額上限はいくらなのかが重要になる。

加入するクレジットカード会社の様々なシステムの違いがあり正確な総返済額の計算は難しいが、利用額、毎月返済額、金利、からシミュレーションできるサイトを JCCA 日本クレジットカード協会が作っている。仮にリボで10万円利用し、月々の支払金額が5,000円、実質年利が 15 %だとしよう。シミュレーションでは総支払額が 111,841円となった。

http://www.jcca-office.gr.jp/consumer/revolving/
JCCA 日本クレジットカード協会

リボ払いの計算_mid_640_480

JCCA 日本クレジットカード協会のページによるシミュレーション

「新規ご入会キャンペーン」といった特典があるときに気をつけなければならないことは、それが「リボ払い専用カード」になっていることがあり、そのことがわかりにくくなっていることである。高額の特典が目についてクレジットカードを申し込むと、リボ払いという意識なく会員契約されてしまうことがある。

たとえばクレジットカードに新規に加入し、3か月以内に10万円利用すれば7,000円のギフトカードがもらえる、といったキャンペーンがある。10万円の利用で7,000円も特典を受けられるなら結構なことだ、と思うかもしれないが、いざカードを申し込むとリボ払い専用カードで、自動的にすべてリボ払いになり、しかも当初の設定が月5,000円の支払い額となっている。そのまま10万円の買い物をすると、仮に7,000円のギフトカードはもらえても、支払総額は111,841円、つまり手数料に1万円以上とられることになるかもしれない。

IMG_2843_mid_640_480

※写真は本文と関係ありません。

リボ払いであっても、月あたりの支払額上限を変更することができる。しかし10万円以上利用すれば、といったキャンペーンのクレジットカードのリボ払い月額上限が、最大5万円であったりする。増額しようとおもってもできない仕組みになっている。

クレジットカードの会員になったら、まず自分が契約した内容を正確に理解し、必要ならばリボ払いをやめる、月あたりの支払額を増額する、ショッピング利用枠を下げる、などの手続きをしよう。また不正利用を防ぐため、キャッシング利用枠を下げたり無効にすることも考えたい。またショッピングの利用枠とは別に割賦枠の制限を下げることもできる。よくわからずに「得になりそう」という直感だけで手を出さないようにしたい。

つまりは「この世においしい話はない」ことを常識と思っておくことだろう。コンピュータやインターネットが普及し、このような様々な金融サービスが身近になった現在、教科「情報」でもこのようなことを正確に知識として教え、正しい判断ができる態度を身に付けさせたい。

Written by Yoshio Matsumoto

2014年10月5日 at 2:10 PM

ポケモンカードゲームはフェアでない

leave a comment »

子供が好きなので一緒にやっているが、ポケモンカードゲームはつくづくフェアではない。ゲームと名のつくものは一定のルールがあり、共通普遍のルールの中で競い合うものではないか。しかしポケモンカードゲームは違う。新しいカードが出るたびにルールが変わる。カードにルールが書いてあるからだ。しかも使えるカードが平等でない。カードは自由に選択できず、欲しいカードが出るまで何が入っているかわからない拡張パックを買い続けなければならない。

IMG_2804_mid_640_480

これはたとえば将棋ならば、飛車も角もないプレイヤーと、飛車と角が4駒ずつ持っているプレイヤーが戦うことに等しいのではないか。あるいは飛車と角と桂馬と香の全部の動きをもっているスペシャルな駒があって、金を出せばその駒が買える、といったことに等しいとも言えないか。これがフェアでないと思う理由だ。

しかし考えてみれば、実際の世の中では完全にスタートラインが同じであったり、一定の共通ルールが決まっている争いなどないともいえる。スポーツであっても、全く平等な条件などないのではないか。テニスやゴルフなど使う道具に違いがあるし、マラソンでもシューズによって違いが出るだろう。水泳ではウエアの素材開発にしのぎを削っているようだ。受験、就職試験、企業間の競争、戦争などまったくそうだろう。最新の武器をつぎ込む経済力。そしてルールは勝者が決めると言っていい。

だからこそ、将棋や碁、チェスのような普遍の共通ルールに基づくゲームは美しい。だからポケモンカードゲームも拡張パックを買いあさってレアなカードを手にすることに血道をあげるのではなく、両者が同じ構築デッキを使って対戦するのがいい。そうでなければ自由に好きなカードを買えるようにするべきだ。

世のポケモンカード好きのために、そう、言いたい。

Written by Yoshio Matsumoto

2014年9月28日 at 12:09 PM

カテゴリー: 未分類

Tagged with ,

郵便番号データを SQL Server で利用するには(1) – SQL Server 2012 Management Studio でデータ変換サービス DTS を使って CSV データを SQL Server に取り込む

leave a comment »

データ変換サービス DTS はSQL Server 2000 の頃からよく使っていた。Excel や Access 、CSV 形式のテキストファイルなどを SQL Server にウィザードで取り込むことができる便利なツールだ。だが DTS は無償版の SQL Server 2012 Management Studio のメニューからは利用できない。

SQLSV_MS_2012_DTS_003_mid_640

<Fig.1 : SQL Server 2012 Management Studio の「ツール」メニューからはデータ変換サービス DTS が使えない>

データ変換サービス DTS を利用するには、Windowsのスタートメニューで Microsoft SQL Server 2012 から「データのインポートおよびエクスポート」を実行するか、以下のフォルダにある DTSWizard.exe を直接実行する。フォルダ名はインストールしている SQL Server や Management Studio のバージョンによって異なる場合もある。

C:\Program Files\Microsoft SQL Server\110\DTS\Binn

SQLSV_MS_2012_DTS_004_mid_640

<Fig.2 : Windowsのスタートメニューから「データのインポートおよびエクスポート」を実行する>

SQLSV_MS_2012_DTS_005

<Fig.3 : C ドライブの Program Files フォルダから直接 DTS ウィザード DTSWizard.exe を起動する>

データ変換サービス DTS を起動する前に、日本郵便の Web ページから最新の郵便番号データをダウンロードしておく。データは CSV 形式で、ZIP 形式の圧縮になっている。ファイルをダウンロードし、適当なフォルダに保存して展開しておく。展開すると次のように KEN_ALL.CSV というファイルができる。これは全国の郵便番号を一括でダウンロードしたファイルだ。

ちなみにこのファイルは、Excel をインストールしているコンピュータなら下のように Excel との関連付けがされており、ダブルクリックすると Excel で開くことができる。しかし Excel のバージョンや保存形式によって最大行数の制約を受けることがあるので、くれぐれも上書き保存しないように。うっかり上書き保存するとデータが切り捨てられてしまう場合がある。

SQLSV_MS_2012_DTS_006_mid_640

<Fig.4 : 日本郵便の Web サイトから郵便番号データをダウンロードする>

SQLSV_MS_2012_DTS_007

<Fig.5 : 日本郵便からダウンロードした ZIP 圧縮形式の郵便番号データを解凍した>

郵便番号データの準備ができたら、データ変換サービス DTS を起動する。次の起動画面が表示されるだろう。

SQLSV_MS_2012_DTS_008

<Fig.6 : データ変換サービス DTS を起動する>

「次へ」をクリックしてウィザードをすすめると「データソースの選択」画面になる。ここでは CSV 形式のテキストファイルを読み込みたいので、「データソース」を「フラットファイルソース」にし、先に保存した郵便番号の CSV ファイルを「ファイル名」のところで「参照」ボタンをクリックして選択する。

「ロケール」と「コードページ」には文字コード体系がデフォルトで設定されているはずだ。「形式」では「テキスト修飾子」がデフォルトで<なし>になっているが、この郵便番号ファイルはテキストデータをダブルクォーテーション「”」で囲んでいるので、「テキスト修飾子」に「”」を入力する。またデータにフィールド名はないので「先頭データ行を列名として使用する」のチェックを外す。

SQLSV_MS_2012_DTS_009

<Fig.7 : データ変換サービス DTS でデータソースの選択をする>

左側の「データソース」で「全般」から「列」のビューに切り替えると、データをプレビューで確認できる。

SQLSV_MS_2012_DTS_010

<Fig.8 : データ変換サービス DTS のデータソースの選択で「列」のビューに切り替える>

次に左側の「データソース」で「全般」から「詳細設定」のビューに切り替える。ここで重要なのは、OutputColumnWidth の設定で、この値を読み込むデータの最大サイズ以上に指定しておかなければならない。

そこであらかじめ Excel で郵便番号データの各フィールドの要素と最大データ長を調べておく。フィールドの要素は次のようになっている。

列0 : 何かの管理番号(最大5桁の数字)
列1 : 郵便番号の前から3~5桁を切り取った数値
列2 : 郵便番号(7桁の数字)
列3 : 都道府県の半角カナ(最大文字長7)
列4 : 市区町村の半角カナ(最大文字長22)
列5 : 市区町村以降の半角カナ(最大文字長73)
列6 : 都道府県(漢字、最大文字長4)
列7 : 市区町村(漢字、最大文字長10)
列8 : 市区町村以降(漢字、最大文字長37)
列9~14 : 住所データを管理する何らかの記号(1桁の数値)

デフォルトで OutputColumnWidth の値は50に設定されている。ここで問題になるのは、列5の半角カナ73文字と列8の漢字37文字だ。漢字は2バイト文字なので、文字数の2倍、74以上のサイズを必要とする。そこでこの2つのフィールドは、それぞれサイズを増やしておかなければならない。

SQLSV_MS_2012_DTS_011

<Fig.9 : データ変換サービス DTS のデータソースの選択で「詳細設定」のビューに切り替える>

あらかじめデータの最大サイズがわかっていれば手作業でOutputColumnWidth の値を変更するが、わからないときは「型の推測」ボタンをクリックし、実際のデータをスキャンして自動的に調べることもできる。

SQLSV_MS_2012_DTS_012

<Fig.10 : データ変換サービス DTS で列の型の推測をする>

SQLSV_MS_2012_DTS_013

<Fig.11 : データ変換サービス DTS で型の推測をした>

ここまでで入力データの設定ができた。次は変換先の設定をする。変換先はデフォルトの SQL Server Native Client とし、サーバー名をドロップダウンで選択する。そしてデータベースをデータをインポートしたいデータベースに変更する。

SQLSV_MS_2012_DTS_014

<Fig.9 : データ変換サービス DTS で変換先を選択する>

次の「コピー元のテーブルおよびビューを選択」では、元データとインポートするテーブルとのデータマッピングを編集することができる。「マッピングの編集」ボタンをクリックする。

SQLSV_MS_2012_DTS_015

<Fig.10 : データ変換サービス DTS でコピー元のテーブルおよびビューを選択する>

「列マッピング」のビューでは、変換元と変換先のフィールド名、フィールドの型、サイズが自動的に設定されている。設定値は「型の推測」で元データから得られたものだ。

SQLSV_MS_2012_DTS_016

<Fig.11 : データ変換サービス DTS で列マッピングを編集する>

「型の推測」で列0から列2までは数字と判断されている。SQL Server でどのような処理をしたいかによるが、数字であってもコードとして処理したい場合は、文字列にしたほうが扱いやすい場合がある。また住所のデータは varchar ではなく nvarchar にしたい。そこで型やサイズを手作業で変更する。

SQLSV_MS_2012_DTS_017

<Fig.12 : データ変換サービス DTS で変換先の型とサイズを編集する>

またデフォルトで「変換先テーブルを作成する」のラジオボタンが選択されており、SQL Server に新しくテーブルを作成することができるが、「SQL の編集」ボタンをクリックすると「テーブル作成 SQL ステートメント」のウィンドウが表示され、SQL Server に生成するテーブルのテーブル名やフィールド名を編集することができる。テーブル名を「郵便番号住所」とし、各フィールド名を設定する。

SQLSV_MS_2012_DTS_018

<Fig.13 : テーブル作成 SQL ステートメントを編集する>

テーブル作成 SQL ステートメントの編集を終了すると「列マッピング」のビューに戻る。このビューに戻っても「変換先」のフィールド名は変わらず「列 0」や「列 1」といったデフォルトのままであるので、手作業で「変換先」のフィールド名を書き換える。ドロップダウンリストには表示されないので、手作業で書き換える必要がある。

SQLSV_MS_2012_DTS_019

<Fig.14 : データ変換サービス DTS の列マッピングで変換先のフィールド名を編集する>

列マッピングの編集が終わると「コピー元のテーブルおよびビューを選択」画面に戻る。このときも戻ったときは「変換先」のテーブル名がデフォルトで与えられたままなので、「テーブル作成 SQL ステートメント」で変更したテーブル名に手作業で書き換える必要がある。

SQLSV_MS_2012_DTS_020

<Fig.15 : データ変換サービス DTS のコピー元のテーブルおよびビューを選択で変換先のテーブル名を書き換える>

次に「データ型マッピングの確認」になる。変換先のテーブル名やフィールド名、データの型やサイズを変更したので、データの切り捨てなどがおこる可能性があるとの注意がされるが、間違いがなければこのまま次にすすめてよい。

SQLSV_MS_2012_DTS_021

<Fig.16 : データ変換サービス DTS でデータ型マッピングの確認をする>

ここまでで設定は終了し、最後の「パッケージの実行」では、いますぐ実行したい場合は「すぐに実行する」のチェックボックスを入れたままにし、次へすすむ。

SQLSV_MS_2012_DTS_022

<Fig.17 : データ変換サービス DTS でパッケージの実行をする>

SQLSV_MS_2012_DTS_023

<Fig.18 : データ変換サービス DTS でウィザードを完了する>

ウィザードを完了すると、データ変換サービス DTS が変換元のデータを読みとり、SQL Server に送信する。変換のプロセスがわかり、レポートが表示される。

SQLSV_MS_2012_DTS_024

<Fig.19 : データ変換サービス DTS で変換プロセスとレポートを表示する>

SQL Server Management Studio でテーブルとデータを確認する。すべてのデータが変換されたかどうかは、ビューを作って確かめる。

——————————————————————-

SELECT COUNT(*) AS Expr1 FROM dbo.郵便番号住所

——————————————————————-

SQLSV_MS_2012_DTS_025_mid_640

<Fig.20 : SQL Server Management Studio でテーブルとデータを確認する>

SQLSV_MS_2012_DTS_026_mid_640

<Fig.21 : SQL Server Management Studio でデータの件数を確認する>

データ変換サービス DTS では、変換元のフィールドサイズの最大サイズがわかっていれば手作業で OutputColumnWidth の値を変更し、わからなければ「列の型の推測」でデータサイズを調べ、自動的に適用させればよい。その場合は、変換先のフィールドが設定したい型やサイズにならない場合があるので、そのときは手作業で編集する。

データ変換サービス DTS でエラーがおこったときは、まずフィールドサイズが OutputColumnWidth の設定値を超えていないかを確認しよう。

フォロー

新しい投稿をメールで受信しましょう。

現在1,412人フォロワーがいます。