2014年6月8日日曜日

手のひらタブレット・東芝dynabook tab VT484に、SQL-Server 2014 Expressをインストールしてみました

8インチの手のひらWindows 8.1タブレットである「東芝dynabook tab VT484」に、いよいよ「SQL-Server 2014 EXPRESS」をインストールしてみました。


マイクロソフトのサイトから、32bit版のファイルをダウンロード。
東芝dynabook tab VT484は、CPUそのものは64bitなんですが、OSであるWindows 8.1は32bit版なので、ソフトは全て32bit版(x86)を選択する必要があるので若干の注意が必要です。

2014年の秋・冬くらいには、CPUもOSも64bitに揃えたバージョンが発売されるかな?

Windows 7からは64bitが標準になってるので、個人的な環境も全て64bitに揃えて行きたいところですが・・・今は関係ない話ですね。


それにつけても、SQL-Server 2012の時も思いましたけど、毎日普通に持ち歩くモバイルマシンでSQL-Server 2014が動く時代になったんですよねー。
画期的だ。

ノートPCとデスクトップPCの垣根が無くなった時もそうでしたが、大げさでも何でもなく、この「世界が確実に変わる感じ」ってのは、もう何回味わっても良いもんですね。


インストール中、照合順序の指定はバイナリにしておきました。

これでシステムデータベースの照合順序が決定されるのですが、後から作るユーザーデータベースとここの照合順序が違ったりすると、クエリーによってはエラーでコケたりする羽目にもなるんで、少し慎重にしとかんとならんです。


8インチタブレットだからって、特に引っかかる点もなく、本当にスルスルとSQL-Server 2014 Expressがインストール完了。

このアッサリ感もたまらんです。

あと、起動してからプロバイダの一覧を見ると、最初から「Microsoft.ACE.OLEDB.12.0」が出て来て地味に嬉しい。

Microsoft Office 2013プリインストールマシンだからかな? やはり良いもんですねー。

ちなみに、32bit版OSの東芝dynabook tab VT484では関係ない話ですけれど、64bit版OSで、SQL-Serverよりも先に32bit版Microsoft Officeをインストールしてしまうと、このプロバイダが(普通のやり方では)インストールできなくなるトラップ(?)「32bit Officeを消さんとアカンで!!」に引っかかるんで注意が必要です。


インストール終了すると、スタート画面にSQL-Server 2014関連のショートカットが沢山作られますね。

Windows 7のスタートメニューと比べて、全画面を使うこっちのメニューは評判悪いみたいですが、個人的には、8インチのタブレットでは断然こっち方式が良いです。


SQL-Server 2014は、スタート画面の右上に中サイズでピン留め、という特等席を用意しました。
モバイルというけど、Excel 2013、SQL-Server、PowerShellが全部揃っているのはいざという時に救いの神ですよね。

簡単な事ならいいけど、ちょっと入り組んだ事に対処しようとすると、タッチで簡単ポン的な流行のモバイルアプリは地獄的になってしまう。
素直に何でもやれるデスクトップ・アプリと共存してるWindows 8.1は、本当に作ってくれてありがとうって事が多いです。

ちなみに、GPU管理ツールのManagement Studio 2014ですが、EXPRESS用の制限版ってのは無くて(!!)、何と製品版をそのまま無償で使わせてくれるという特大ボーナスになってます

まじかよMicrosoft・・・ずっとこの路線をやって下さるとありがたいです。


とりあえず、OpenRowset()関数でExcel2013のファイルの中身を読んでみよう!!

と思うと、最初は使えないんで、お約束の以下のコマンドで読めるように変更します。
ついでに、コマンドシェルのコマンドを実行出来るように、xp_cmdshellも許可しときます。

昔はこの手の設定するのに別の設定用ツール立ち上げてやらされてたんですが、今ってもう、全部コマンド叩いて設定変更する流儀に変わってるんですよね。
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO

sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
GO



とりあえず、Excelファイルをc:\直下に置いてクエリー実行してみると、特に何の問題もなくテーブルとして読み込めました。
SELECT M.*
FROM OPENROWSET(
'Microsoft.ACE.OLEDB.12.0',
'Excel 8.0;DATABASE=C:\TEST.XLS',
'SELECT * FROM [Sheet1$]') AS M;
ちなみに、今やOSと一体化したオンラインストレージである「ONEDRIVE」に格納したExcelファイルからも、ちゃんと直接読み込む事が出来ます。
しかし、ローカルだと良いのに、ONEDRIVEだとエラーが出るって場合は、単純にアクセス拒否されている可能性が高いです。

何で自分なのにアクセス拒否食らうの?と思うかもしれないですが、Windows認証ではなく、SQL-Server認証でSQL-Serverに入っている場合は、ONEDRIVEに対するアクセスは、あくまでもSQL-Serverのサービスがバシバシかけてるんで、そっちに読み取り許可とか与えてないといけないです。

あと、MSDTC関連の設定とかもあるけど、手のひらモバイルでどこまでやるか?という問題もあるんで、まずはリソース消費を低く抑制する事を考えながら、ゆっくりやって行きたいと思います。