« 2014年5月 | トップページ | 2014年7月 »

2014年6月の6件の記事

2014年6月24日 (火)

木枯し紋次郎やってた!

時代劇が割と好きです。
ついでに言うと、西部劇とかも好きです。中世や古代だって、国を問わず好きです。

まぁ、それはさて置き。
先週までBS-TBSで「木枯し紋次郎」の1stシーズンの再放送をやってました。
原作は笹沢左保の時代小説。
TV-CMのBGMで「だれかが風の中で」( by上條恒彦)が流れる度に思い出します。
今も聴きながらこのエントリーを書いてます。

もちろんリアルタイムで観た世代ではありません。
古い時代の役者さんの事はよく分かりません。

てか、そもそも全部観た事すらありません。
でも、勧善懲悪ではない、一話完結の分かりやすさ。
何か惹かれるところがあります。

昭和時代に撮影されたはずなのに、まるで天保年間にトリップした風景。
そのノスタルジックな風景は、よく撮影できたなと感心してしまう程の映像美です。
いくら昭和とはいえ、舗装された道路や電線や飛行機雲だってあったでしょうに。
本当に屋外を紋次郎が旅する姿は感動します。

そして、再放送に気づいて録画できたのはラスト3話。
・月夜に吼えた遠州路
・無縁仏に明日を見た
・流れ舟は帰らず

残念ながら、デタラメ過ぎる毎日が続いてて、まだ観れてません。
ネットで調べてて一番観たかったラスト3話。
渡世人の話がリアルに描かれてるそうで楽しみです。

2014年6月 5日 (木)

ペインクリームすごい!

先週末、会社帰りに髪を切ってきました。

学生時代からずっと通ってる美容室。
気心知れた美容師さんが髪を切ってくれます。

なんて爽やかな感じに書いてますが、現実は一回りくらい人生の先輩の方です。
同郷のよしみ&(本業外での)経営者として、いろいろな情報を仕入れてます。

話題は仕事の愚痴に始まり、「木枯し紋次郎」「鬼平」等の時代劇で意気投合。
ブラジル人が多く集まる群馬県の大泉町の話題とか、山形旅行の話とか。
で、一番印象に残ったのが「ペインクリーム」の話。
ペインクリームって何?最初はそう思いました。

「むくみが取れるのよ!!」 えー、運動すりゃいいじゃないですか。
「マッサージいらずなのよ!!」 えー、解りません。
「じゃあ、これ塗ってみ。」 えー・・・ (チョットシンジラレナイ・・・)

渡されたコレ を左腕に塗ってみました。んー、まぁ少々スカスカするくらいだねぇ。
で、待つ事10分。あれ?血管が浮き出てきた。さっきまでは薄らだったのに。
おお?確かにむくみが引いていく!シンジラレナーイ

「あー、そういやコレって脚に塗るやつなんだよねぇ〜」 おぃ。いーのかよwww
「問題ないでしょ」 まぁ、デリケートなところじゃないから良しとする・・・のかぃ?

いつもはマッサージを入念にしてもらうのですが、今回はかなりの時短になりました。
こういうのはお互いに楽だものね。
とにかく感動する程、優秀なむくみ取りクリームでした。

エティックのペインクリーム。おすすめです。
ちなみにトルコ産です。

....

それにしても、今回は、仕事の疲れを残したまま1時間半の連続走行は辛かったです。
景色がキレイで、道路がスイスイだったのが、せめてもの救いですかね。

自宅までの帰路は平常運転。計200kmのロングドライブ。
結局、家に着いたのは23:00くらいでした。

今後もあるかもしれないけど、次回はもう少し早く会社を出る事にします。

2014年6月 4日 (水)

Qt5: 入門Qt4〜QtSqlから使ってみる

「入門Qt4プログラミング」の13章はデータベースについてです。
Qt5環境でもテキストに従い、例題を進めます。
ただし、接続するデータベースはSQLServerです。

QtCreatorで新しいプロジェクトから「Qtウィジェットアプリケーション」を選択。
適当なプロジェクト名(ここではDBTest)を付けて、ひとまず保存。
コンパイル&実行して、空ウィンドウが表示されるのを確認。

まずは、QtSqlを利用する前に、DBTest.proファイルを編集します。

QT       += core gui sql

続いて、main.cppに関連する部分を追記します。

#include "mainwindow.h"
#include <QApplication>
#include <QMessageBox>
#include <QtSql>

bool createConnetion()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    db.setHostName("DB-SERVER");  // FreeTDSで記述した<サーバ名>
    db.setDatabaseName("NorthwindJ");
    db.setUserName("sa");
    db.setPassword("sql");
    if (!db.open()) {
        QMessageBox::critical(0, QObject::tr("DataBase Error"), db.lastError().text());
        return false;
    }
    return true;
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    if (!createConnetion()) {
        return 1;
    }

    QSqlQuery qry("SELECT * FROM [社員]");
    while (qry.next()) {
        QString code1 = qry.value(0).toString();
        QString name1 = qry.value(1).toString();
        QString name2 = qry.value(2).toString();
        qDebug() << qPrintable(code1) << ": " << qPrintable(name1) << ": " << qPrintable(name2);
    }

    MainWindow w;
    w.show();

    return a.exec();
}

再度コンパイル&実行すると、表示されるのはもちろん空ウィンドウです。
肝心の出力結果は「アプリケーション出力」に表示されます。

Photo

もし、こんなダイアログが表示された場合、SQLServerとの接続環境を確認してください。

Qtsqlerror

この例では、わざとパスワードを誤って設定してみました。

ここまでくれば、テキストの続きを進められると思います。
他のQtのサンプルを触って、GUIツール作ってみるのもいいかな。

2014年6月 3日 (火)

Qt5: MSSQL用ドライバを作成

ここまでの準備で、OSXからSQLServerにアクセスできる状態になりました。
しかし、残念ながら、まだQtからはアクセスできません。
QtのためにMSSQL用のデータベースドライバを作成する必要があります。

その対処方法は公式サイトのSQL Database Drivers  に記載されています。
でも、ただビルドするだけでは動きませんので、以下にポイントを書いておきます。

1. 準備するもの

(1) Qt5環境

Qt5環境はオフライン・インストーラ(dmg)からインストールしたQt 5.3.0 for Macです。
インストール時にSrcディレクトリを展開してください。でないと作業はできません。

(2) unixODBC/FreeTDSのヘッダとライブラリ

MacPortsからFreeTDSを"+mssql +odbc +universal"オプション付きでインストールします。
関連するファイルが/opt/local/includeと/opt/local/libに生成されます。
後述のqmakeでファイルが見つからない場合は、ここでミスした可能性が大きいです。

2. ドライバの生成

まずは公式サイトに従って、qmakeでMakefileを生成します。
あっさり書いてありますが、dmgからインストールした場合、とんでもなく深い階層になります。

Qt5.3.0は既定値のままホームディレクトリにインストールされているとして、

$ cd ~/Qt5.3.0/5.3/Src/qtbase/src/plugins/sqldrivers/odbc/
$ ~/Qt5.3.0/5.3/clang_64/bin/qmake "INCLUDEPATH+=/opt/local/include" "LIBS+=-L/opt/local/lib -lodbc"
$ make
$ cd ../../../../plugins/sqldrivers/

のように、ターミナルから実行します。
makeが終われば、無事にドライバが生成されているはずです。

~/Qt5.3.0/5.3/Src/qtbase/plugins/sqldrivers配下に、
libqsqlodbc.dylibとlibqsqlodbc_debug.dylibが生成されたら、次は配置です。

Qt5.3.0の動作環境では、既に同じ名前のdylibファイルが存在しています。
そのため、(お好みで)リネーム&コピーします。

$ cd ~/Qt5.3.0/5.3/clang_64/plugins/sqldrivers
$ mv libqsqlodbc.dylib libqsqlodbc.dylib.orig
$ mv libqsqlodbc_debug.dylib libqsqlodbc_debug.dylib.orig
$ cp ~/Qt5.3.0/5.3/Src/qtbase/plugins/sqldrivers/libqsqlodbc.dylib .
$ cp ~/Qt5.3.0/5.3/Src/qtbase/plugins/sqldrivers/libqsqlodbc_debug.dylib .

これで、Qt5からSQLServerにアクセスする準備が整ったと思います。

※2014.09.17追記

すみません。qmakeの後に余計な作業を書いてました。

$ make
$ make install

これでOKです。

2014年6月 2日 (月)

Qt5: MSSQLへアクセスするために

前のエントリーで、今年の2月くらいに試してた事のまとめは終わりです。
もう少し補足してもいいのですが、その前にQt5からSQLServerにアクセスしてみます。

そもそもマルチプラットホームでSQLServerにアクセスするにはどうするのがいいのかと。
敢えてSQLServerにこだわる必要はないのですが、僕のデータ資産はMSSQLなのです。
せっかく蓄積したデータを有効活用できないのは、何か悔しいのです。

Qt5からQSqlDatabaseクラスを利用するにあたり、色々と準備しないとです。
僕に適した環境を、僕が最も簡単に構築するために、MacPortsを利用します。
そして、MavericksからSQLServerにアクセスするにはFreeTDSとunixODBCが必要です。
以降、MacPortsのインストールは済んでる前提で進めます。

## /usrや/usr/local等が汚されるのは耐られないので・・・。Homebrew派の方ごめんなさい。
## OSXの初期状態はiODBC/MySQLなので、これはスルー。
## プロプラかつ有償ならこれでもいいのかな。

今回のキモはFreeTDSのインストールにあると言っても過言ではありません。
初期インストールの方はそのまま。既にインストールされた方は必ずオプションを付けて!

$ sudo port info freetds  ←ここでオプション確認
$ sudo port install freetds +mssql +odbc +universal

絶対に!絶対に!"+mssql +odbc +universal"を指定するのを忘れないでください。
これしないと、dylibが生成されません。これを忘れると、きっとハマります。
ちなみに、僕はPHP環境との併用でハマりました。

さて、目的のSQLServerにはNorthwindJがあるとします。
Windows環境から、osql -S <サーバ名> -U sa -P sqlでアクセスできるとします。
同様にMacのターミナルから、tsqlやisqlで接続する事を目指します。

でも、すみません。後述の内容は約2年前に構築済みなので、誤りがあるかもです。
手順は確かこんな感じ。まずはドライバー。

$ vi /opt/local/etc/freetds/tds.driver.template

[TDS]
Description = FreeTDS Driver for OSX & MSSQL
Driver      = /opt/local/lib/libtdsodbc.so
Setup       = /opt/local/lib/libtdsodbc.so

そしてDSN。

$ vi /opt/local/etc/freetds/tds.dsn.template

[NorthwindJ]
Driver          = TDS
Description     = DSN for NorthwindJ
Trace           = No
ServerName      = <サーバ名>
Database        = NorthwindJ
Port            = 1433
TDS_Version     = 8.0

これらをインストール。

$ sudo odbcinst -i -d -f tds.driver.template
$ sudo odbcinst -i -s -l -f tds.dsn.template

で、freetds.confを確認。

$ vi /opt/local/etc/freetds/freetds.conf

(行末に追加)
[<サーバ名>]
        host = 192.168.xxx.xxx  ; ← ここはSQLServerのIPアドレス
        port = 1433
        tds version = 8.0
        client charset = UTF-8
;       charset = CP932
;       charset = sjis
;       language = japanese

環境変数ODBCINIやFREETDSCONF辺りも調整が必要だったかも。
もう何を調整したか覚えてません。すみません。
最終的にこれがエラーにならなければ環境はOKです。

$ odbcinst -j
$ odbcinst -q -s
$ odbcinst -q -d

$ tsql -S <サーバ名> -U sa -P sql
 とか
$ isql -v NorthwindJ sa sql

以前にExcel2011のiODBCと格闘してたので、勘違いしてなきゃ良いけど。
とにかく、これでMacからODBC接続はできると思います。
SQLAllocEnv();からコツコツ書いてもいけるハズですよ。

2014年6月 1日 (日)

Qt5: 入門Qt4〜QtCreator3.1.1にて

「入門Qt4プログラング」に記述されているRADデザインツールはQt Designerでした。
Qt5.3の現在、このツールはQt Creator 3.1.1になってます。

2章で説明されている様に、Qtだとスクラッチから書いてもそんなに苦じゃありません。
それでもIDE環境から色々できたら、それはそれで便利です。

ただ、テキストの記述が随分と古く、メニュー・バーからの説明が英語表記のまま。
プラットホームの差もあるので、初期起動した直後は違和感を持つ方もいるのでは。

しかし、Qt4 → Qt5では、そんなに変化してない、って事は各所で説明されてます。
「外見が変化するダイアログ」節の内容も、よく読むとそんなに変わってないです。

Qt Creatorを起動→新しいプロジェクト→「Qtウィジェットアプリケーション」を選択。
・プロジェクト名: Sort
・クラス名: MainWindow → SortDlg
って感じで進めて、実際にデザインしてみた状態がコレ↓。

Qtdesigner

メニュー・バーが日本語表記になっているので、テキストを流してると、ちょっと迷うかも。
実際、編集メニューはこんな感じなので、

Qtdesigner_2

"Edit → Edit Widgets"って書かれても、最初はどれ?って思いました。
メニュー操作に躓かなければ、2章は大丈夫だと思います。

« 2014年5月 | トップページ | 2014年7月 »

2014年11月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
サイト内検索
ココログ最強検索 by 暴想

Twitter

開発Twitter

無料ブログはココログ