Hatena::ブログ(Diary)

tabizouの日記

2018-04-26

Windows 10 Pro + WSL + Ubuntu で PostgreSQL 10.3 のドキュメントを作成してみる

18:18

Windows 10 Pro + WSL + UbuntuPostgreSQL 10.3 のドキュメントを作成してみる

 

全文検索用の評価用のデータもかねて PostsgreSQL のドキュメントを作成してみる(そこか

※ドキュメントの作成に最低限必要なパッケージのみをインストールしているので

 本体のコンパイルには ./configure --help の内容を確認しながら、必要な

 オプションやパッケージを追加してください

※エラーが発生した場合、ubuntu パッケージ名で検索して追加 かなあ・・

※ # apt-cache search キーワード | grep キーワード もありかな

 

参考にしたサイトはこちら

pgsql-jp/jpug-doc

ドキュメントビルド手順

msgfmt エラーの解消

PostgreSQL日本語マニュアルについて

 

pgsql-jp/jpug-doc

のDownloaded ZIP よりDL後 適当なフォルダに解凍する

※自分は D:\doc\jpug-doc-doc_ja_10 と配置

 

以降は Ubuntu上で実行する

・ドキュメントビルド手順 に従い、以下のパッケージを追加する

※エラーが発生したパッケージも追加

# apt-get install libreadline6-dev

# apt-get install zlib1g-dev

# apt-get install flex

# apt-get install bison

# apt-get install libxslt-dev

# apt-get install jade

# apt-get install docbook

# apt-get install docbook-xml

# apt-get install docbook-xsl docbook-dsssl <- docbook-xml で追加される

# apt-get install gettext

# apt-get install sp <- ERROR: `osx' is missing on your system.

# apt-get install libxml2-utils

# apt-get install xsltproc

# which collateindex.pl

/usr/bin/collateindex.pl

 

# cd /mnt/d/doc/jpug-doc-doc_ja_10

Ubuntuからはこう見えるんですね # df で確認

# ./configure --enable-nls --with-libxml --with-libxslt

※正常に終了することを確認

# make html
make -C doc html
make[1]: Entering directory '/mnt/d/doc/jpug-doc-doc_ja_10/doc'
make -C src html
make[2]: Entering directory '/mnt/d/doc/jpug-doc-doc_ja_10/doc/src'
make -C sgml html
make[3]: Entering directory '/mnt/d/doc/jpug-doc-doc_ja_10/doc/src/sgml'
SP_CHARSET_FIXED=1 SP_ENCODING=UTF-8 \
/bin/sh ../../../config/missing
 osx -wall -wno-unused-param -wno-empty -wfully-tagged -wnet -D . -D . -x
 comment -x lower postgres.sgml > postgres.xml.tmp
***
ERROR: `osx' is missing on your system.
***

が発生して、エラー終了する <-パッケージ不足

D:\doc\jpug-doc-doc_ja_10\doc\src\sgml\Makefile

の46-48行目 が原因なのかな?(現在調査中・・・・)

ifndef OSX

OSX = $(missing) osx

endif

 

不足していたパッケージを追加して 無事作成終了

D:\doc\jpug-doc-doc_ja_10\doc\src\sgml\html 以下に作成されることを確認

2018-04-24

Windows 10 Pro_x64 + Excel2013_x86 VBA + DTPicker を試してみる

22:05

Windows 10 Pro_x64 + Excel2013_x86 VBA + DTPicker を試してみる

 

Excel 2013 VBA でカレンダーコントロールを使用するときに

Microsoft Date and Time picker control 6.0 (SP6) を使う

という例があるけれど、試そうと思っても見つからないのはなぜ?

と思ったんだけど、そういう事か!? と思ったのでメモ

 

参考にしたのは以下のサイト

Excel VBAでDatepicker(日付選択)コントロールを使う方法

VBA Datepickerを使うための参照設定の方法

 

Visual Basic 6.0 Service Pack 6 Runtime Set

よりDLした v6s6r135.zip v6s6r135.zip を適当なフォルダに解凍後、setup.exe

を実行してデフォルトのままインストールする。

※C:\Windows\System32 にインストールされる

Excelが64Bit版の時は、どうなるのかな??

 

VBAの画面より

ツール

  ->参照設定

   ->参照ボタンをクリック

    ->C:\Windows\System32\mscomct2.ocx を選択OKをクリック

・挿入

 ->ユーザーフォームで フォームを追加する

ツールボックスを表示

  ->ツールボックス上で右クリックして その他コントロール を選択する

   ->表示/選択された項目のみ のチェックを外す

    ->Microsoft Date and Time picker control 6.0 (SP6) をチェック後OKをクリックする

ツールボックスより DTPicker を選択して フォームにドロップする

※最低限のサンプルになるのかな?

※まぁ色々な状況で使ってみないとな

'
'DTPicker、TextBox、CommandButtonを適当に UserForm に配置した状態
'
Option Explicit

Private Sub UserForm_Initialize()
    '
    '   必要に応じてデフォルト表示を行う
    '   ・入力画面の初期設定とか
    '   ・DBから取込んだ日付とか
    '   ・あくまで例なので仕様に応じた箇所で
    '
    TextBox1.Text = "2018/04/12"
End Sub

Private Sub CommandButton1_Click()
    '
    '   TextBoxの日付をDTPickerに設定できるかの確認    '
    DTPicker1.Value = CDate(Trim(TextBox1.Text))
    
End Sub

Private Sub DTPicker1_CloseUp()
    '
    '   ドロップダウン後、指定した日付が
    '   TextBoxに出力できるかを確認
    '
    TextBox1.Text = Format(DTPicker1.Value, "yyyy/mm/dd")
End Sub

2018-04-23

Windows 10 Pro + OpenJDK10 + VsCode を少し試してみる

19:17

Windows 10 Pro + OpenJDK10 + VsCode を少し試してみる

 

VsCode+Java ってどうなんだろ?と思ったので少し試してみる

※今の自分のレベルでは・・・

 

> java -version

openjdk version "10" 2018-03-20

OpenJDK Runtime Environment 18.3 (build 10+46)

OpenJDK 64-Bit Server VM 18.3 (build 10+46, mixed mode)

 

VsCodeの設定

拡張機能より

 Java Extension Pack をインストールする(以下のプラグインインストールされる)

  Language Support for Java(TM) by Red Hat

  Debugger for Java

  Java Test Runner

  Maven Project Explorer

・ファイル -> フォルダを選ぶ より適当なフォルダを選択

・CTRL+SHIFT+D(デバッグボタン)

 ->launch.jsonの構成や修正を押下して java選択する

・Hello.java を以下で作成する

public class Hello {
    public static void main(String[] args){
        System.out.println("Hello, world.");
    }
}

[Running] cd "d:\Dev\Samp0001\" && javac Hello.java && java Hello
Hello, world.

素の状態で実行すると、"Classpath is incomplete" warning

が表示される

EclipseのようにProjectを作成するわけでもないので、当然ですか・・・

 

Eclipse で作成したProjectのフォルダを開いて、同じコードを実行した場合

[Running] cd "d:\Dev\eclipse-workspace\Samp0001\src\" && javac Hello.java && java Hello
Hello, world.

ワーニングも無く正常に実行される。

分かっている人が、ゴリゴリとファイルを追加して、使うツールって感じかな?

2018-04-20

Ubuntu 17.10 + VsCode + Perl で Windows10 + SQL Server2017 Express にアクセスする

11:34

Ubuntu 17.10 + VsCode + PerlWindows10 + SQL Server2017 Express にアクセスする

 

探し物をしていた時に、MS純正(?)のLinux用のSQLServerドライバ+unixODBCの設定のドキュメントを見つけたので試してみる

Ubuntu 17.10 + Perl + DBI::DBD + unixODBC + msodbcsql17

<-> Windows10 + SQL Server2017 Express

になるのかな?

※目的は?と聞かれても、そこに設定ドキュメントがあったから、としか言いようがないのだが(笑

CPANベースのモジュールを少し触ってみたかったからもある

Strawberry Perl では cpanm だって気が付いて、テストモジュールが入ってないけど、仕様が変わったのかな?

というのを確認したかったから、というのもある(変わったようですね)

※ただ UbuntuCPANモジュールインストールした後のレイアウトが、まだ良くわからん

※出力パネルへのエラーメッセージ文字化けは、調査中かなぁ・・

 

参考にしたのは以下のサイト

ドライバー マネージャーのインストール

接続するODBCLinux と Mac Linux および macOS に Microsoft ODBC Driver for SQL Server をインストールする

SQL Server への接続

Can not connect to MS SQL from Ubuntu sqlcmd client

LinuxからSQL ServerにODBCで接続する

Ubuntu 17.10にmonoとVsCodeとGitをインストールしてみる

Windows 10 Pro + VsCode で Strawberry Perl を少し試してみる

cpanm - CPANからモジュールを取得、アンパック、インストールする

UTF-8を使用する

 

$ perl -v

This is perl 5, version 26, subversion 0 (v5.26.0) built for x86_64-linux-gnu-thread-multi

(with 62 registered patches, see perl -V for more detail)

 

Ubuntuパッケージの追加(MSのドキュメントより)

# apt-get install unixodbc

# curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

 

#Ubuntu 14.04(バージョンに対応したもの のみ)

# curl https://packages.microsoft.com/config/ubuntu/14.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

 

#Ubuntu 16.04(バージョンに対応したもの のみ)

# curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

 

#Ubuntu 17.10(今回はこちら)

# curl https://packages.microsoft.com/config/ubuntu/17.10/prod.list > /etc/apt/sources.list.d/mssql-release.list

 

# apt-get update

# ACCEPT_EULA=Y apt-get install msodbcsql17

取得:1 https://packages.microsoft.com/ubuntu/17.10/prod artful/main amd64 msodbcsql17 amd64 17.1.0.1-1 [4,100 kB]

 

# optional: for bcp and sqlcmd (あったほうが便利)

# ACCEPT_EULA=Y apt-get install mssql-tools

 

----------------------------------------------------------------------

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc

----------------------------------------------------------------------

とあるけど .profile に適当な場所(最下行)に /opt/mssql-tools/bin を追加する

PATH=/opt/mono/bin:/usr/bin:/opt/mssql-tools/bin:$PATH

source ~/.bashrc

 

# optional: for unixODBC development headers

# apt-get install unixodbc-dev

取得:1 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 autotools-dev all 20161112.1 [39.5 kB]

取得:2 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libltdl-dev amd64 2.4.6-2 [162 kB]

取得:3 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 libtool all 2.4.6-2 [194 kB]

取得:4 http://jp.archive.ubuntu.com/ubuntu artful/main amd64 unixodbc-dev amd64 2.3.4-1 [215 kB]

インストール先の確認

# ls /opt/microsoft/msodbcsql17/lib64/

libmsodbcsql-17.1.so.0.1

 

$ which sqlcmd

/opt/mssql-tools/bin/sqlcmd

 

SQL Server との接続を確認

対象データはこちらで作成したもの

 Excel VBA での Transaction について

Windows 10ファイアウォールの確認

 windows10 + SQL Server2017 Expressでファイアウォールを設定する

SQL Serverのポートの確認

 Windows 10 Pro + JDK10 + LibreOffice 6.0.3.2 Base から SQL Server 2017 Express へ接続してみる

 

以下で接続可能であることを確認する

$ sqlcmd -S xxx.xxx.xxx.xx\SQLEXPRESS,1433 -U demo

 

DSNの設定

/etc/odbc.ini

cat /etc/odbc.ini

[MSSQLTest]

Driver = /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.1.so.0.1

Server = tcp:xxx.xxx.xxx.xxx\SQLEXPRESS

Trace = No

Database = DEMO

Port = 1433

ClientCharset = UTF-8

----------------------------------------------------------------------

・項目の説明

[MSSQLTest]

#ドライバーの説明

Description = SQL Server2017Express

#ドライバーの場所 

# ドライバーのフルパスか

Driver = /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.1.so.0.1

#トレースするかの有無

Trace = No

#データベースIPアドレス

Server = tcp:xxx.xxx.xxx.xxx\SQLEXPRESS

#データベース

Database = DEMO

#ポート番号 SQL Serverは通常 1433

Port = 1433

#クライアント(Linux側)の文字コードセット

ClientCharset = UTF-8

----------------------------------------------------------------------

# odbcinst -i -d -f /etc/odbc.ini

odbcinst: Driver installed. Usage count increased to 1.

Target directory is /etc

  -i インストール

  -d ドライバ

  -f テンプレートファイル名

  

# odbcinst -q -d

[ODBC Driver 17 for SQL Server]

[MSSQLTest]

  -q 検索

  -d ドライバ

 

# odbcinst -u -d -n MSSQLTest

MSSQLTest has been deleted (if it existed at all) because its usage count became zero

  -u アンインストール

  -n ドライバー又はDSN

 

DBI::DBDのインストール

コンソールより、以下を実行する

# apt-get install perl-doc

# apt install cpanminus

# cpanm install DBD::ODBC

# cpanm install DDP

# cpanm install DBI

# Windwows版よりドライバーの定義のみ変更
use strict;
use utf8;
use DBI;

my $dbh=DBI->connect('dbi:ODBC:MSSQLTest','demo','demo') or die $!;
my $sth=$dbh->prepare("select * from POSTAL") or die $dbh->errstr;

# 出力エラー対策
$sth->{LongTruncOk}=1;
$sth->{LongReadLen}=2000000;

$sth->execute or die $dbh->errstr;

while(my $arrayref = $sth->fetchrow_arrayref){
        use DDP;
        p $arrayref;
}

$sth->finish;
$dbh->disconnect;

[Running] perl "/home/tabizou/dev/perl/0002.pl"
\ [
    [0] "9200000 ",
    [1] undef,
    [2] "金沢市                               \0",
    [3] "以下に掲載がない場合          \0",
    [4] undef,
    [5] undef
]
〜

2018-04-19

Windows 10 Pro + VsCode で Strawberry Perl を少し試してみる

14:19

Windows 10 Pro + VsCode で Strawberry Perl を少し試してみる

 

随分前に触ったっきりのPerlなんだけど、今はどうなんだろう?と少し試してみる。

DB関連は DBI::DBD で良いのかな?というのもあるんだが

ActivePerlは商用ライセンスじゃないと使いづらい感じなので、Strawberryを試すことにする

コンパイルログは出ないのだが、CPANモジュールがわりと使えそうな感じかな?

ネットワーク系ゴリゴリだと素直にLinuxベースで行うべきだろうけどな

 

参考にしたサイトはこちら

ActivePerlを卒業して、Strawberry Perlを使用することにした

PerlからODBCでSQL Serverのデータを取得

接続するODBCWindows[SQL Server ログイン] ダイアログ ボックス (ODBC)

 

The Perl for MS Windows, free of charge!

より Recommended version:Strawberry Perl 5.26.1.1 (64bit) をクリックしてDLする

strawberry-perl-5.26.1.1-64bit.msi を実行して適当なフォルダにインストールする

※自分は C:\Dev\tools\Strawberry

 

環境変数に 以下を追加する

C:\Dev\tools\Strawberry\perl\bin

C:\Dev\tools\Strawberry\c\bin

 

コンソールを起動して以下の動作を確認する

> perl -v

This is perl 5, version 26, subversion 1 (v5.26.1) built for MSWin32-x64-multi-thread

Copyright 1987-2017, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the

GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on

this system using "man perl" or "perldoc perl". If you have access to the

Internet, point your browser at http://www.perl.org/, the Perl Home Page.

 

> gcc -v

Using built-in specs.

COLLECT_GCC=C:\Dev\tools\Strawberry\c\bin\gcc.exe

Thread model: posix

gcc version 7.1.0 (x86_64-posix-seh, Built by strawberryperl.com project)

 

VsCodeの設定

拡張機能より

 Perl Debug をインストールする

 Code Runner をインストールする

・フォルダを作成する

・ファイル -> フォルダを選ぶ より上記フォルダを選択

・CTRL+SHIFT+D(デバッグボタン)

 ->launch.jsonの構成や修正を押下して perl選択する

use strict;
use warnings;

print "Hello 日本語";

・右クリック->Run Code(Ctrl+Alt+N)で実行

 

SQL Server との接続を確認

対象データはこちらで作成したもの

 Excel VBA での Transaction について

コンソールより、以下を順次実行する

> cpanm DBD::ODBC

--> Working on DBD::ODBC

Fetching http://www.cpan.org/authors/id/M/MJ/MJEVANS/DBD-ODBC-1.58.tar.gz ... OK

Configuring DBD-ODBC-1.58 ... OK

Building and testing DBD-ODBC-1.58 ... OK

Successfully installed DBD-ODBC-1.58 (upgraded from 1.56)

1 distribution installed

 

> cpanm DDP

DDP is up to date. (undef)

 

> cpanm DBI

--> Working on DBI

Fetching http://www.cpan.org/authors/id/T/TI/TIMB/DBI-1.641.tar.gz ... OK

Configuring DBI-1.641 ... OK

Building and testing DBI-1.641 ... OK

Successfully installed DBI-1.641 (upgraded from 1.637)

1 distribution installed

use strict;
use utf8;
use DBI;

my $dbh=DBI->connect('dbi:ODBC:SQLSVODBC64','user','password') or die $!;
my $sth=$dbh->prepare("select * from POSTAL") or die $dbh->errstr;

# 出力エラー対策
$sth->{LongTruncOk}=1;
$sth->{LongReadLen}=2000000;

$sth->execute or die $dbh->errstr;

while(my $arrayref = $sth->fetchrow_arrayref){
        use DDP;
        p $arrayref;
}

$sth->finish;
$dbh->disconnect;

[Running] perl "d:\Dev\plsamp\0002.pl"
Wide character in print at C:/Dev/tools/Strawberry/perl/vendor/lib/Data/Printer.pm line 181.
\ [
    [0] "9200000 ",
    [1] undef,
    [2] "金沢市                                     ",
    [3] "以下に掲載がない場合                              ",
    [4] undef,
    [5] undef
]
〜