A5:SQL Mk-2

開発のこと、日々のこと

2017/08/13
から matsubara
0件のコメント

A5:SQL Mk-2、MongoDB対応…まだまだ

A5:SQL Mk-2の最新のベータ版でMongoDBへの対応を開始してみました。

MongoDBのクライアントライブラリが64bitモードでしかビルドできない(らしい)制限から、64bit版A5:SQL Mk-2でのみの対応です。

機能的にもまだ、接続してクエリーができるくらいです。

 

内部的には、Devart社のUniDACを経由してMongoDBへ接続しています。ただ、UniDACも、最新のバージョンでMongoDBに対応し始めたところなので、少々動作が怪しげ。

ほんとうは、

db.user.find()

みたいな感じで実行したいのだけれど、どうも、db.runCommand()への引数の形でしか受け入れてくれない模様です。

使えるコマンドは、こちらを参考にしてください。

ただ、evalコマンドを使おうとして、JavaScriptを渡そうとすると、メモリアクセス違反になったりして、なんだかなという感じ。

まだまだこれから。使えるようになるかな?。

 

 

2017/07/17
から matsubara
0件のコメント

ださい。

A5:SQL Mk-2でテーブルの条件を指定して開くとき、ソート順を指定して開くことができるようにしてみました。

…でも、ダサいです。とってもださいです。

(まあ、この画面に限ったことではないですが)

まあ、A5:SQL Mk-2を使っている人は、自分にデザインセンスが無いのはすでに分かっていると思うのでOKです。

2017/07/17
から matsubara
1件のコメント

古いDelphiのプロジェクトでモーダルダイアログが前面表示ウィンドウに隠れて操作できなくなる時

A5:SQL Mk-2でいつからか起こっていた、少し怪しげな動き。

少し前のA5:SQL Mk-2で、前面表示のウィンドウ(コンソール画面とか、ER図のプロパティとか)があるときに、モーダルダイアログを表示すると、モーダルダイアログが前面ウィンドウの後ろに隠れて、前面表示のウィンドウも操作できなくなって、なにも操作できなくなるとかみたいな不具合がありました。

Delphiは昔から、秘密のメインウィンドウというのがあって、どうもこれが悪さをしているのではないかと思ってはいたのですが、どうにも解決策が分かりませんでした。

この秘密のメインウィンドウのせいで、Windows Vista以降で、タスクバー周りの動作も怪しかったのですが、以下のページの対処ではタスクバー周りの動作はともかく、前面表示ウィンドウとモーダルダイアログの問題はおかしいままで、根本対処にはならないようです。

Delphiで、Windows Vista Readyアプリケーションを作る

 

これの対処のために、A5:SQL Mk-2はいろいろトリッキーで対処療法的なコードをたくさん書いてました。モーダルダイアログを表示しているときは、前面表示ウィンドウを一時的に非表示にするとか…。

 

で、今回ようやく対処法を見つけました。プロジェクトのソースで、「Application.MainFormOnTaskBar := True;」と記述することです。新しいDelphiで新しいプロジェクトを作るとこのプロパティはデフォルトでTrueにされるようです。

TApplication.MainFormOnTaskBar プロパティ

これで、タスクバー周りの動作も、前面表示ウィンドウとモーダルダイアログの問題も解決です!!。

副作用として、「このプロパティが MainForm の Z オーダーに影響を与える点に注意してください。 」とあるようです。…多分A5:SQL Mk-2には影響ないはず…。

でも、結構前のDelphiで導入されたプロパティみたい…。Delphi 2007くらい?。10年間気が付いていなかったのですかね…。

 

2017/07/01
から matsubara
0件のコメント

A5:SQL Mk-2 から Excel 2016 にデータを貼り付けたとき、0001 が 1とかになるとき

A5:SQL Mk-2はselect文の結果セットをExcelに貼り付けると ‘0001’ 等の文字列を ‘1’ (数字)に変換することなく貼り付けることができます。これは内部的にHTMLフォーマットでクリップボードにコピーするためですが、Excel 2016の一部のバージョンでこの機能がうまく動かないことが発覚しました。最新のアップデートでも起こるようです。

こんな感じになってしまいます。

どうも調べてみたところ、この辺が関係ありそうです。

Excel2016の書式設定で数値の文字色を指定したセルを、Word2016にコピーペーストしてもその色が反映されない

クイック実行版(C2R/Click-to-Run)だけの問題かもしれないです。

色々試してみて、16.0.7870.2038だとOKで16.0.7967.2139だとNGらしいです。なので、不具合に当たってしまったら、とりあえず(しばらく)16.0.7870.2038を決め打ちで導入することをお勧めします。

やり方は、上のリンクに書いてありますが、とりあえず以下の通り。

 

1.ファイルメニューからアカウントを選び、「Office 更新プログラム」ボタンで「更新を無効にする」を選択

 

2.コマンドプロンプトを管理者モードで開き、以下2つのコマンドを入力

> cd %programfiles%\Common Files\Microsoft Shared\ClickToRun

> OfficeC2RClient.exe /update user updatetoversion=16.0.7870.2038

 

これで、’0001’が1に変換されずにExcelに貼り付けることができます。

 

 

2017/05/21
から matsubara
0件のコメント

BINGさんはホッケがお嫌い?

なんか、ふと気が付いてしまったので書いてみます。

BINGさんを使って𩸽(ホッケ)を検索すると全くヒットしません。全力で無かったことにされてしまうようです。

「𩸽の塩焼き」で検索すると、、、

サバにアユにゴキ…衝撃的な異文化が表示された気がしますが見なかったことにします。

まあ、サロゲートペアがうまく処理されないですよってだけの話です。

ちなみにGoogleさんはホッケもいける口みたいです。

ブラウザはChromeとEdge、IEでチェックしてみました。

…BINGさんのクローラーに拾ってもらえるように?タイトルは漢字ではなくカタカナにしておきます。

2017/05/13
から matsubara
0件のコメント

英語モードでA5:SQL Mk-2を利用する。(Version 2.12系)

A5:SQL Mk-2 Version 2.12.0から英語モードを備えており、OSの言語を判断して自動で日本語と英語を切り替えますが日本語環境で英語表示する方法を説明します。

現状ではオプションなどから表示言語を切り替えることはできません。これは起動時にレジストリまたは設定ファイルを読み込むより早く言語設定が確定されるためです。(今後のバージョンではオプションから切り替えられるようにしたいと考えています)

 

日本語環境で英語表示するには以下の手順を行います。

 

1.A5M2.ENU をA5M2.JPNにリネームする

 

2.A5M2.exe を起動する。

 

3.好きなフォント設定に変更する(好みに応じて)

 

 

英語はかっこいいフォントが多くてうらやましいですね。

2017/05/13
から matsubara
0件のコメント

A5:SQL Mk-2で文字エンコーディングを追加する方法

オンラインヘルプに書いてないですが、A5:SQL Mk-2は実行ファイル(A5M2.exe)と同じフォルダに EncodingList.txtを配置することで、SQLファイルなどの読み書きで使うエンコーディングの種類を追加することができます。

EncodingList.txtの書式はCSVで次のように記述します。

コードページ(数字),エンコーディング名称,Default

コードページ(数字)は以下のページなどで調べることができます。

https://msdn.microsoft.com/ja-jp/library/aa288104(v=vs.71).aspx

3つ目の”Default”は固定値で、オプションでファイル読み込み時に優先して判別したいエンコーディングに指定します。そうでない場合、特に指定しなくても構いません。

以下は Johab, ks_c_5601-1987, BIG5, GB2312, Windows-1258を追加し、Johabをデフォルトエンコーディングとして使いたい場合のEncodingList.txtの例です。

1361,Johab (Korean),Default
949,ks_c_5601-1987 (Korean)
950,BIG5 (Chinese)
936,GB2312(Chinese)
1258,Windows-1258 (Viet Nam)

このファイルを保存してA5:SQL Mk-2を起動すると、SQLファイルの保存ダイアログなどで、エンコーディングが次のように指定できます。

Defaultで優先として指定したエンコーディングは、BOM付きUTF-8でないファイルはDefaultで指定したエンコーディングであると判定されるようになります。

※ステータスバーにJohab(Korean)で読み込まれたことが表示されています。

エンコーディングを間違って読み込んだ場合は、ファイルメニューから読み込みしなおしできます。

ちなみに、SQLファイル保存時のデフォルトエンコーディングはオプションダイアログから[SQL]タブで「SQLファイルのデフォルトエンコーディング」で指定します。

ほかにも、BLOB型の表示のエンコーディング指定などでも追加エンコーディングが指定できるようになります。

 

2017/02/13
から matsubara
0件のコメント

A5:SQL Mk-2 SSHライブラリを更新した話

A5:SQL Mk-2 Version 2.12.0 beta 39から、SSH経由接続で使うためのライブラリをバージョンアップしました。

Devart社のSecureBridge 7.0 → 7.3 です。

Historyに「Elliptic Curve Cryptography cipher suites is supported」とか書いてあったので、ヨッシャECDSAとかED25519の楕円暗号形式とか対応したのかな?と思ってバージョンアップしてみたのですが、楕円暗号対応していたのはTLS(SSL)の方みたいでSSHでは関係ありませんでした。ぜひ、Version 7.4とかでは対応してほしいです。(春くらいに新しいバージョンでるのかな?)

あとは、TLS 1.2対応とか書かれていたのでヨシヨシと思っていたのですが、SSHプロトコルって内部的にTLSを使うわけじゃないのでこれも関係ないですね。この辺少し知識がフワフワしてます。

あと、「Support for the Diffie-Hellman Group and Key Exchange algorithm is added」とか書いてあって、多分SSHの鍵交換も何か進歩したらしいはずだけどよくわからず。

よくわからずといえば、よくあるSSH関連のソフトウエアでは、鍵交換アルゴリズムやら利用可能な暗号化アルゴリズムやらを選択できたり優先順位をつけたりできますが、この辺もやや知識がフワフワしていて、知識不足&ライブラリの使い方がよくわからないなと感じています。データベース接続のソフトウェアでSSHのあまり細かい設定ができても、なんだかなという気もしなくもないですが…。

ただ、少しうれしかったのが、7.2からのようですが、PuTTY形式の鍵ファイルを取り込めるようになったこと。これまでは、PuTTY形式の鍵ファイルを扱うときは、PuTTYに同梱のPLINKに接続して…とかやっていたので、A5:SQL Mk-2の内部で完結するのはありがたいです。

最後に、A5:SQL Mk-2で扱えるSSHの秘密鍵ファイルの形式は、OpenSSH, SecSH, PuTTY の各形式ですが、これらの形式でも扱えたり扱えなかったりするものがあるので、ここに扱える形式を書いておきます。秘密鍵ファイルのヘッダが次のうちのどれかであれば、扱えるはずです。

—–BEGIN RSA PRIVATE KEY—–
—–BEGIN DSA PRIVATE KEY—–
—–BEGIN PRIVATE KEY—–
—–BEGIN ENCRYPTED PRIVATE KEY—–
—- BEGIN SSH2 ENCRYPTED PRIVATE KEY —-
PuTTY-User-Key-File-2               ← Version 2.11系まではPLINK.exeを呼び出して処理します。

 

2017/01/22
から matsubara
0件のコメント

A5:SQL Mk-2が無料な理由…とか?(ややとりとめのない文章)

キングコング西野さんの絵本「えんとつ町のプペル」がネット上で無償で公開されていることの是非についてネット上ではいろいろ意見が交わされているようですが…。便乗気味な気もするのですがA5:SQL Mk-2が無償であること、私自身が今それについてどのように考えているのかをお伝えするのにいい機会だと考えたのでつらつら書いてみたいと思います。

ソフトウェアの業界ではパッケージソフトウェアが無料というのはずっと昔から当然のように行われてきました。利用料が無料であるだけでなく、そのソースコードまで無償であることも当然のように行われているわけです。

A5:SQL Mk-2は20年近く歴史のあるソフトウェアです。開発当初は私自身実家暮らしをしており、収入は多くなかったものの比較的金銭的には余裕がありました。単に趣味として、あるいは自分自身の技術力の向上のため、あるいは功名心のようなもので開発してきたわけです。

対して現在は結婚し子供もでき、はっきり書くと「カツカツ」です。特に育児にこんなにお金がかかるものだとは思ってもみませんでした。

なのでまあ、A5:SQL Mk-2で少しでも家計の足しにできるならばしたいのが本音です。

とはいえ、シェアウェア化というのはあり得ません。A5:SQL Mk-2は「無料だから」使ってもらえていると考えています。フリーソフト・オープンソースなど、無料で使える代替はいくらでもあるからです。

特にER図の機能ですが「無料であるから使っていたのに突然シェアウェア化しました」というのも梯子を外すような行為なわけです。

別の視点として、資本主義経済の中でそれなりに価値のあるもの(と少なくとも自分では思っています)を無償で公開するのはそれなりの問題を持ちえます。

おそらく、利用料ライセンスで「稼げている」データベースクライアントは国内では株式会社システムインテグレータさんのObject Browserシリーズ位でしょうか?。海外を含めてもそう多くはないと考えています。(JetBeansさんの DataGripとか?)

もしかするとA5:SQL Mk-2を含む無償のデータベースクライアントが本来あるべき「市場」を壊してしまっているのではないか?、などと考えてしまうこともあります。

いろいろ検討はしていて、フリーミアムモデル(基本機能無料・一部機能有料のモデル)ならばある程度いけるのではないか?とは考えていますが、有償部分として実装する機能のアイディア(お金払おうと考えられるレベルのもの)も考えなければいけないので具体的には進んでいません。

もしかして商売の上手い人ならばもっとやりようはあるのかもしれません。利用料は無料のまま、何かしらの方法で稼ぐ方法も見つけられるかもしれません。でも残念ながら、自分には商売の才能は全くありませんでした。

…現在は多少の広告収入・寄付はあるのですが、概ね毎年数万円以上の赤字です。まあ、年間数万円程度の費用が掛かる趣味などいくらでもあるといえばそうなのですが…。

取りとめもないことを書いてきて読んで下さる方も何言いたいのか分からないと思うので、もうぶっちゃけて書きますがまあ、A5:SQL Mk-2使ってみていいと思ったら多少でもご寄付を頂けると嬉しいですということです。

2017/01/09
から matsubara
0件のコメント

N-BOXのサイドミラー色変更とか

たまに A5:SQL Mk-2じゃないことも…。

昨年11月にホンダN-BOXを買ってみたのですが、ドアミラー(とルームミラー)を赤い色に変えてみました。

 

カラーリングに異論はあるかと思うのですが、何でこんなものくっつけたかというと、自宅での駐車時にサイドミラーを壁にコスってしまって悲しかったからです。修理ついでに色変えてみました。

一応言い訳すると、N-BOXのサイドミラーは湾曲が強く、下1/3くらいがさらに湾曲していてなんだか距離感が変に見えるのです。サイドミラーではまだ余裕があると思っていたら、直接見てみると壁がすぐそこだったりして、あれれ?車庫入れ下手になった?みたいな感じになってしまいました。うちは駐車場が狭いので助手席側をギリギリまで壁に寄せなければならないのです。

いい車なのですが、ここはちょっとどうなんだろう?と…。

あとは、イエローハットで(安い)アルミホイール付けてみました。黒っぽいやつで足元が引き締まったかなと思っています 。