2017年10月30日
2017年10月29日
【Linux】Linux Mint にSQL Serverをインストールしてみた
2017年10月29日 (日) 22:16 in Linux , SQL Server

先日、SQL ServerのLinux版が正式にリリースされたということで、試しにLinux Mintにインストールしてみました。
インストール手順
まずは下記のサイトに行きます。
https://www.microsoft.com/ja-jp/sql-server/sql-server-downloads

サイトに行ったら、Linuxのメニューから「Ubuntu Linux 16.04 にインストールする」をクリックします。
Linux Mint 18 は、Ubuntu Linux 16.04 がベースになっていますので、これをクリックします。
クリックするとインストール手順が書かれたページが開きますので、この手順にそってインストールを行ってみます。
インストール
まず、パブリックリポジトリ鍵キーをインポートします。
$ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
次に、Microsoft SQL Server Ubuntu リポジトリを登録します。
$ sudo add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"
この2つに関してはよく分かりませんが、おそらくGitか何かのリポジトリにアクセスするためのものと思われます。とりあえず書いてあるとおりに実行します。
ここまで出来たら、SQL Serverをインストールします。
つぎのようにコマンドを打ちます。
$ sudo apt-get update $ sudo apt-get install -y mssql-server
パッケージのインストールが完了したらエディションを選択します。
$ sudo /opt/mssql/bin/mssql-conf setup SQL Server のエディションを選択します: 1) Evaluation (無料、製品使用権なし、期限 180 日間) 2) Developer (無料、製品使用権なし) 3) Express (無料) 4) Web (有料) 5) Standard (有料) 6) Enterprise (有料) 7) Enterprise Core (有料) 8) 小売販売チャネルを介してライセンスを購入し、入力するプロダクト キーを持っています。 エディションの詳細については、以下を参照してください https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x411 このソフトウェアの有料エディションを使用するには、個別のライセンスを以下から取得する必要があります Microsoft ボリューム ライセンス プログラム。 有料エディションを選択することは、 このソフトウェアをインストールおよび実行するための適切な数のライセンスがあることを確認していることになります。 エディションを入力してください(1-8): 2Evaluation、Developer、Expressが無料で使えます。
今回、Developer版を選びました。
次にライセンス条項の同意を求めてきます。
この製品のライセンス条項は /usr/share/doc/mssql-server で参照できるほか、次の場所からダウンロードすることもできます: https://go.microsoft.com/fwlink/?LinkId=855862&clcid=0x411 プライバシーに関する声明は、次の場所で確認できます: https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x411 ライセンス条項に同意しますか? [Yes/No]:YYで同意します。
次に言語の設定です。
SQL Server の言語の選択: (1) English (2) Deutsch (3) Español (4) Français (5) Italiano (6) 日本語 (7) 한국어 (8) Português (9) Русский (10) 中文 – 简体 (11) 中文 (繁体) オプション 1-11 を入力: 6日本語を選択します。
次にsaのパスワードを設定します。
SQL Server システム管理者パスワードを入力してください: SQL Server システム管理者パスワードを確認入力してください: SQL Server を構成しています... Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /lib/systemd/system/mssql-server.service. セットアップは正常に完了しました。SQL Server を起動しています。
最後にサービスが実行されていることを確認し、実行されていればとりあえずインストールは完了です。
$ systemctl status mssql-server
SQL Server コマンド ライン ツールをインストール
次に、コマンドラインツールをインストールしていきます。これはsqlcmdとbcpを使えるようにするためのものです。
これも手順通りに実行します。
パブリックリポジトリ鍵キーのインポート。
$ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
Microsoft Ubuntu リポジトリを登録。
$ sudo add-apt-repository "$(curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list)"
ソースリストを更新し、unixODBC 開発者のパッケージでインストール コマンドを実行。
$ sudo apt-get update $ sudo apt-get install -y mssql-tools unixodbc-dev
パス環境変数
$ echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile $ echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc $ source ~/.bashrc
データベースの作成およびテーブル作成
では、実際にデータベースを作成して、テーブルを作成し、データを挿入してみたいと思います。まずは、データベースエンジンに接続。
$ sqlcmd -S localhost -U SA -P 'パスワード'
次に、データベースの作成
1> CREATE DATABASE MYDB 2> GO 1> SELECT Name FROM sys.Databases 2> GO Name -------------------------------------------------------------------------------------------------------------------------------- master tempdb model msdb TestDB MYDB (6 rows affected)
そして、データベースMYDBを選択し、
1> USE MYDB 2> GO データベース コンテキストが 'MYDB' に変更されました。
テーブルの作成します。
1> CREATE TABLE T_Mascots ([ID] [int] NOT NULL, [Name] NVARCHAR(50) NULL, [Type] NVARCHAR(50) NULL) 2> GO 1> SELECT Name FROM sys.tables 2> GO name -------------------------------------------------------------------------------------------------------------------------------- T_Mascots (1 rows affected)
最後にデータを挿入してみます。
1> INSERT INTO T_Mascots VALUES (1, 'あゆコロちゃん', 'ぶた') 2> GO (1 rows affected) 1> INSERT INTO T_Mascots VALUES (2, 'ぐんまちゃん', 'ポニー') 2> GO (1 rows affected) 1> INSERT INTO T_Mascots VALUES (3, 'ひこにゃん', '猫') 2> GO (1 rows affected)
SELECT文でデータを参照してみます。
1> SELECT ID, Name, Type FROM T_Mascots
2> GO
ID Name Type
----------- -------------------------------------------------- --------------------------------------------------
1 あゆコロちゃん ぶた
2 ぐんまちゃん ポニー
3 ひこにゃん 猫
(3 rows affected)
ちゃんと挿入したデータが表示できました。
まだここまでしか使っていませんが、Windows版とまったく同じ操作でデータベースにアクセス出来るのにはちょっと感動です。まあ、マイクロソフトはそのように作ったと言ってるので、当たり前と言えば当たり前ですが、けっこうすごいことだと思います。
いままで、SQL Serverを使うにはWindowsマシンが必ず必要でしたが、これからはLinuxマシンでもいいということになります。これは別の言い方をすれば、SQL ServerのためにWindowsマシンを用意しなくてもいいということになります。高価なWindows Server OS を用意できないような中小零細企業などにはかなりメリットがあると思えますね。
<関連記事>
Windows10マシンにデュアルブートでインストールしたLinux Mintを削除する方法
Windows10マシンにLinux Mintをインストールしてデュアルブート化してみた。
【Linux】Linux Mint にPowerShellをインストールしてみた。
Linux Mint にSophos Anti-Virus for Linux(Free Edition)を入れてみた
【Linux】viの使い方はとりあえずこれだけ知っていればなんとかなる
【Linux】Linux MintでGRUBのメニューの順番を変える
2017年10月28日
【PowerShell】Bloggerのフィード情報を読み込んで最新記事5件分を表示するスクリプト
2017年10月28日 (土) 21:40 in Blogger , PowerShell
Bloggerのフィード情報を読み込んで最新記事5件分を表示するスクリプトを作ってみました。
$atom = Invoke-WebRequest https://hosopro.blogspot.com/feeds/posts/default
$xml = [xml]$atom.Content
$ent = $xml.GetElementsByTagName("entry")
for ($i = 0; $i -lt 5; $i++){
#タイトル
$ent[$i].Item("title")."#text"
#投稿日時
$date = [DateTime]$ent[$i].Item("published")."#text"
$date.ToString("yyyy/MM/dd HH:mm")
#サマリー
$ent[$i].Item("summary")."#text".Replace("`n",'').Substring(0, 50).trim() + "..."
Write-Host
}
フィードの取得にはInvoke-WebRequestを使っています。サマリーは50文字分表示するようにしてみました。
実行結果
PS C:\work\PowerShell> .\Get-BloggerFeed.ps1 【Access】現在開いている全てのフォームを参照する 2017/10/27 22:13 現在開いている全てのフォームを参照するには、Formsコレクションを使った方法とAllFormsコレ... 【Access】データベース内の全てのフォームを参照する 2017/10/26 21:25 データベース内の全てのフォームを参照するには、AllFormsコレクションを使います。例たとえばこの... 【Access】フォームの背景色を変更する 2017/10/25 21:38 フォームの背景色は、各セクションのBackColorプロパティに値を設定することで変更できます。例た... 【Access】帳票フォームでRequeryを行っても画面がチラつかないようにする 2017/10/24 21:49 前回、「帳票フォームでRequeryを行ってもレコードの表示位置が変わらないようにする」方法を書きま... 【Access】帳票フォームでRequeryを行ってもレコードの表示位置が変わらないようにする 2017/10/23 21:00 帳票フォームでデータの更新などを行ってフォームのRequeryを実行するとレコードの表示が変わってし...
2017年10月27日
【Access】現在開いている全てのフォームを参照する
2017年10月27日 (金) 22:13 in Access , VBA
現在開いている全てのフォームを参照するには、Formsコレクションを使った方法とAllFormsコレクションを使った方法があります。
たとえばこのようなデータベース(accdbファイル)があるとします。

開いている全てのフォーム名を取得するにはそれぞれ次のように記述します。
Formsコレクション
Public Sub GetOpenFormsInfo()
Dim frm As Form
Dim msg As String
For Each frm In Forms
msg = msg & frm.Name & vbCrLf
Next
MsgBox msg
End Sub
Formsコレクションは、現在開いているフォームのコレクションになります。AllFormsコレクション
Public Sub GetOpenFormsInfo()
Dim frm As AccessObject
Dim msg As String
For Each frm In CurrentProject.AllForms
If frm.IsLoaded Then
msg = msg & frm.Name & vbCrLf
End If
Next
MsgBox msg
End Sub
IsLoadedは、AccessObjectが現在ロードされているかを示します。すなわちIsLoaded=Trueならフォームが開いているということになります。2017年10月26日
【Access】データベース内の全てのフォームを参照する
2017年10月25日
【Access】フォームの背景色を変更する
2017年10月24日
【Access】帳票フォームでRequeryを行っても画面がチラつかないようにする
2017年10月24日 (火) 21:49 in Access , VBA
前回、「帳票フォームでRequeryを行ってもレコードの表示位置が変わらないようにする」方法を書きましたが、この方法だとレコード件数が多くなってくると画面のチラつきが気になってきます。
このような場合、フォームのPaintingプロパティを一時的にOFFにして描画を止めることによって画面のチラつきを抑えることが出来ます。
Private Sub buttonRequery_Click()
Dim headerHeight As Long
Dim curTop As Long
Dim curRecNum As Long
Dim topRecNum As Long
Me.ID.SetFocus
curRecNum = Me.CurrentRecord
headerHeight = Int(Me.Section("フォームヘッダー").Height / Me.Section("詳細").Height)
curTop = Me.CurrentSectionTop
topRecNum = curRecNum - (Int(curTop / Me.Section("詳細").Height) - headerHeight)
'フォームの描画をOFF
Me.Painting = False
'再表示
Me.Requery
'表示の復元
DoCmd.GoToRecord acActiveDataObject, , acLast
DoCmd.GoToRecord acActiveDataObject, , acGoTo, topRecNum
DoCmd.GoToRecord acActiveDataObject, , acGoTo, curRecNum
'フォームの再描画をON
Me.Painting = True
End Sub
Requeryの前に「Painting = False」で描画をOFFにして、レコードの表示位置を復元したあとに「Me.Painting = True」で再描画をONにしています。
少ないレコード数では、この処理を入れるのと入れないのであまり違いがみられませんが、レコード数が多くなってくると明らかに違いが出てきます。
登録:
投稿 (Atom)
