A5:SQL Mk-2

開発のこと、日々のこと

2019/05/06
から 松原正和
0件のコメント

A5:SQL Mk-2にテーブル設計機能を追加

これまでずっと要望があったのですが、Version 2.15.0 beta 4でようやくA5:SQL Mk-2でGUIで設計できる機能を追加しました。



これまで実装していなかったのは、テーブルの作成(再作成)はGUIでやるべきではなくDDLを書いてからやるべき派だったのと、各DB製品ごとのDDLの方言を吸収するのが大変ということがあったためです。テーブルをDROP後にCREATE TABLEでエラーになったりしたら最悪ですし。

とりあえずは、直接テーブルを作成または再作成するのではなく、そのためのDDLを作成してSQLエディタに展開するだけの機能です。

なお、再作成時はテーブルデータを消さずに再作成するためのDDLを作成します。(ワークテーブルに退避してから、DROP&CREATE、ワークテーブルからデータを戻してワークテーブルを削除する)

データを引き継ぐには列定義のグリッドで右端の列(引き継ぐ値(式))に記述します。基本的には「old.列名」を指定することになると思いますが、データ型が変わったり、列の長さが短くなったりするときは、変換を行う式を指定することになると思います。

あと、現状ではまだ作りかけの機能で、以下が未実装または不完全です。

  • オプションタブの機能(DB製品ごとのオプション項目…テーブルスペースとか、ストレージエンジンとか、キャラクタセットとか)
  • 参照整合性制約に未対応
  • トリガー機能に未対応(再作成すると消える? or エラーになる?)
  • 翻訳がまだ(英語リソース無し)
  • おそらく Oracle Database, Microsoft SQL Server, IBM Db2, PostgreSQL, MySQLのみの機能になるが、画面呼び出し時に現状ではDB製品の判別をしていない。
  • その他方針等が迷い中…。

新規テーブルを作成するには、DBツリーで対象DBを選択した状態で、メニューから[データベース(D)] – [新規テーブルの作成]を選びます。

既存のテーブルのレイアウトを変更するには、DBツリーで対象テーブルを選択し、右クリックメニューから[テーブル定義の変更(テーブル設計)]を選びます。

何か、テーブル設計の画面で何かアイディアがある方はご意見などいただければと思います。

2019/04/28
から 松原正和
0件のコメント

Windows 10 でタスクバーに消せない透明アイコンが残ったときの消し方。

これまで、Windows 10 で Windows Subsystem for Linux (WSL)の一つで、WLinux というのを使っていたのですが、これがいつの間にか、Pengwinという名称に変わっていました。

それはいいのですが、タスクバーにピン止めしていると、WLinuxの名前で透明なアイコンが残ってしまいます。しかも、右クリックしても、「WLinux」と「タスクバーにピン留めする」しか出てきません。なぜか「タスクバーからピン留めを外す」が出てきません。

困っていたのですが、以下のようなページを発見!!。

https://answers.microsoft.com/ja-jp/windows/forum/all/windows10%E3%82%BF%E3%82%B9%E3%82%AF%E3%83%90/7b7de726-695d-4524-b7c1-f314a02a5395

LINEアプリでも同じようなケースがあったようですね。

単に、Shift+右クリックで「 タスクバーからピン留めを外す 」が出るようになります。

分かってしまえば、なんだって感じのことですね。

2019/04/14
から 松原正和
0件のコメント

A5:SQL Mk-2でスキーマ間データ転送するとき、テーブルを指定できるようにしました。

これまでA5:SQL Mk-2ではスキーマ間のデータ転送をするとき、送信元と送信先の両方のスキーマに存在するテーブルがすべて転送対象となり、選択することができませんでした。

なぜ今まで付けていなかったのか不思議ですが、 ようやく、Version 2.15.1 beta 1で実装してみました。

今までは以下の画面で「転送」ボタンを押下すると、すぐに処理が走っていたのですが…、


Version 2.15.0 beta 1からは、その次に次のような画面が出てテーブルを選択できるようになります。

2019/04/14
から 松原正和
0件のコメント

A5:SQL Mk-2でテーブルを編集するとき、複数行をまとめて編集してサーバーに反映する機能を実装

タイトルが微妙に長いのですが、簡潔な表現が思いつかなくてこのようにしています。

これまで、A5:SQL Mk-2でテーブルエディタやSQLエディタの結果セットを編集したとき、1行ごと編集内容をサーバーに反映していました。

ただ、できれば複数行をローカルで編集して、一括でサーバーに反映したいという要望はそれなりにあったようです。このため、Version 2.15.0 beta 1でそのようなモードを付けてみました。ただし、デフォルトでは従来通りの動作で、オプションダイアログから「結果セットグリッド」タブで、「1行ごと編集をサーバーへ反映せず、複数行の編集をまとめてサーバーへ反映する」のチェックをオンにする必要があります。

この状態で編集を行うと、以下のように「サーバーへ反映」ボタンが出現します。(通常は非表示)



メニューにも「サーバーへ適用」と「ローカルの編集を破棄」が出現します。「サーバーへ適用」はCtrl+Sにショートカットを割り当てています。(SQLエディタではShift+Ctrl+S)

なお、編集した(サーバーに未反映の)項目は左上に赤の三角形を表示するようにしてみました。しかし、編集した項目には赤三角が付けられるのですが、なぜか新規登録した項目には赤三角が表示されませんでした。何とかしたいのですが難しいかもしれません。

なお、複数行の編集をまとめてサーバーへ反映するモードでエラーが起こった際は、「どの行がエラーを起こしたか」がエラーとして報告されません。ちょっと動作が微妙かなあとも思います。

2019/03/30
から 松原正和
0件のコメント

A5:SQL Mk-2 Vector版(ZIPファイル版)とMicrosoft Store版の使い分け

A5:SQL Mk-2 Version 2.14.1から従来のVectorで配布しているZIPファイル版のパッケージに加え、Microsoft Storeから直接インストールできるパッケージを用意しました。ここではその機能差と使い分けを書いてみたいと思います。

ZIPファイル版に対するMicrosoft Store版の機能差

  • ポータブルモードが利用不可
  • インストールフォルダにDMonkeyスクリプトを配置して機能拡張できない
  • 現在のところ、x64版のみの提供
  • Windows 10のみ
  • アップデートが簡単(自動的に更新されるはず…今後)
  • パッケージは署名され、実行ファイルは簡単には書き換えられない。
  • アンインストールが簡単(スタートメニューからA5:SQL Mk-2のアイコンを右クリックして「アンインストール」を選択)

これらの多くはMicrosoft Storeの制約・特性によるものです。Microsoft StoreアプリはインストールフォルダはC:\program files\WindowsApps配下等に制限され、インストールフォルダの書き込みは禁止されます。

ストアアプリは自動的に更新されるというのも注意すべきポイントです。

あとは、機能差ではないですが、リリース時の審査がMicrosoft Storeは遅くとも3営業日以内(早ければ数時間)なのに対し、Vectorは最近の傾向として2週間以上かかるようです。

これらのことからVector のZIPファイル版とMicrosoft Store版は次のような使い分けが必要です。

Vector ZIPファイル版を使うべきケース

  • ポータブルモードを使いたい
  • DMonkeyスクリプトを使い込んでいる
  • x86版が必要な場合 (32bit ODBCドライバを使うときなど)
  • Windows 10ではない
  • 不用意に更新されたくない(プロジェクトの期間中は同じバージョンを使いたい等)
  • 一度ダウンロードしてZIPファイルを会社のファイルサーバーなどで共有したい

Microsoft Store版を使うべきケース

  • 常に最新版を使いたい
  • 早く更新版を入手したい
  • セキュリティの厳しい現場での導入(Microsoft Storeが許可されていれば)
  • とりあえず試してみたい(気に入らなかったら手っ取り早く消したい)

これを参考にしてご自身の要件にあった方からインストールしていただければと思います。

2019/01/14
から 松原正和
0件のコメント

A5:SQL Mk-2のちょっとイイところ…ソースコード中から文字列リテラルを抜き出して貼り付け

アプリケーションを開発していて、SQLをプログラム中から実行する方法はいろいろありますが、プログラム中で文字列としてSQLを扱うことはよくあります。

こんな時、A5:SQL Mk-2ではSQLを含むプログラムのソースコードの中から文字列リテラルを抜き出してSQLエディタに貼り付けることができます。

やり方は以下の通りです。

・最初にプログラムのSQL(の文字列リテラル)を含む部分をざっくりコピーします。

・次にA5:SQL Mk-2のSQLエディタで、右クリックメニューから[コードストリッパー]の目的の言語を選択して貼り付けします。

・貼り付けを行うと、以下のようにコピーしたテキスト中から文字列リテラル部分が抜き出されて貼り付けされます。

これでプログラム中に記述されているSQLを手軽に抜き出し、テストすることができます。

ちなみに、コードストリッパーとはこちらから取った名前です。自分はコードストリッパーと覚えていたのですが、本当はワイヤーストリッパーというらしいです。

2019/01/14
から 松原正和
0件のコメント

A5:SQL Mk-2のダークモードとか

Windows 10 October 2018 Updateではエクスプローラにダークモードが追加されました。

まだアプリケーションは個別にダークモードに対応しなければいけませんが、A5:SQL Mk-2はテーマ機能で一応これに対応します。

オプションダイアログから「テーマ」機能を使うと様々な見た目に変更することができますが、個人的には「Carbon」あたりが、Windows 10のダークモードと見た目の親和性が高いと思います。ただ、「Windows」以外のテーマを有効にすると、ちょっとUIが重めになる気がするのでなんだか微妙だなとも思っています。

ちなみに、このテーマ機能は開発環境であるDelphiの持つ機能で、簡単にテーマ機能をアプリケーションに組み込むことができます。

ただ、個別のアプリケーションごとにダークモードに対応しなければいけない現状はあまりよろしくないですよね。白いUIのアプリケーションと黒いUIのアプリケーションを切り替えると目がチカチカしてしまいます。目に優しいはずのダークモードがこれではいけません。まあ、ブラウザとかは背景が白二しか使用がないですし、印刷前提のアプリケーションも基本白にせざるおえないですよね。

ところでWindows 7あたりまでは「Windows クラシック」に切り替えて色設定をカスタマイズすることで、割と簡単にダークモードっぽいことが全アプリケーションで有効になっていたのですが、このコードはWindows 10では残っていないのですかね。これまでずっとウインドウ背景は白とは限らず、文字の色は黒とは限らない…と気を付けながら開発してきたのですが…。

↓Windows XPで試してみた手製ダークテーマ(A5:SQL Mk-2のテーマ機能ではなく、Windowsの設定変更)

2018/12/15
から 松原正和
0件のコメント

プリウス・ドライビング・シミュレータ

今日(2018/12/15)はJJUG CCC 2018 Fallだからというわけでもないですが、ちょっとJavaネタ。

大昔、かれこれ16年ほど前に作ったプリウス・ドライビング・シミュレータ。初代プリウスのハイブリッドシステムのシミュレーション(推測含む)を行うプログラムでブラウザから実行できましたが、Javaアプレットで作っていたため、今ではほとんどのブラウザで動作しなくなりました。もう作った本人もオワコンかと思っていたのですが、今日、フランスの技術インストラクターをしている方から動かし方の質問を受けました。

ブラウザではもうほぼ動かすすべはないのですが、ダウンロードすることで今でも動作させることができます。もちろんJRE(またはJDK)は必要です。

JREのダウンロード

ThsSimulator.jar をダウンロードしてダブルクリックすれば(JREがインストールされていれば)実行されます。

実行イメージ

起動直後の状態ではモーターとエンジンのスライダを操作して動力分割機構の遊星歯車の動作を決められますが、「運転する」チェックボックスをクリックするとアクセルとブレーキの操作でプリウスの動作をシミュレーションできます。

ちなみにものすごーく細かい機能ですが、以下のような機能があります。

・ブレーキを踏むとブレーキランプが点灯する

・ギアをRレンジにすると、後退灯が点灯する

・ずっと走り続けると、燃料計のメモリが減っていき、0になると停車する。

(画像ないのでレッツトライ。アクセル全開でも4時間ほどかかる?)

技術的なことをちょっと書くと、今はもう存在しないBorland JBuilder (JBuilder 6 Professional)で作られています。自分が初めて書いたJavaプログラムでもあります。

ソースコードはライセンスは特に明確になっていませんが、こちらのページからダウンロードできます。

2018/11/30
から 松原正和
0件のコメント

お家の外壁塗装しました。

我が家も建っておよそ10年、そろそろ外壁やコーキング材の痛みなどが見え始めてきました。

そろそろかなあと思っていたところに、株式会社あらたさん(東京都足立区)の営業が訪問されたので、見積を取ってもらい最終的に外壁塗装の工事をお願いしました。

あらたさんに見ていただいた問題のある所は大体以下の箇所

  • コーキングの劣化(複数個所…全般的に。前から気になってた)
  • サイディング材の破損(こすれによる表面のはげ)
  • 軒天の破損(劣化によるひび割れ)
  • サイディング材にコケ発生(日当たりの悪い部分にちょっと)

あらたさんは2018年10月にできたばかりの小さな会社さんですが、スタートアップの方が気合入れてやってくれるかなと判断し、お任せしました。大きな会社と違い、職人さんが下請け孫請けなどにならないのもまあ、よいところかも。

もとは、茶色地にアイボリーのアクセントカラーの家でしたが、思い切って色を変えてみて白地にアクセントカラーで黒に近いグレーにしてみました。デザインセンスは自信ないですがモノトーンにしておけば何となくモダンな感じになると思ったので。白地はかなり明るくニュートラルな白です。屋根も明るめのグレーで太陽光の反射率(遮熱)優先です。

ちなみに、お値段は実のところかなり予算オーバーでした。小さな(安い)家なので、補修費用もそれほど掛からないだろうとの目論見だったのですが、そうもいかないようです。しかし、耐久性の高い塗料を使うことで何とか期間当たりのコストは当初の予定通りにすることができました。ちゃんと想定通り(17~18年ほどは)長持ちしてほしいです…。

(塗料の銘柄は壁はアステックペイントリファイン1000SQLi-IR、屋根は同じくアステックペイントのスーパーシャネツサーモFです。)

仕上がった感想は…なかなか良いかなと思っています。なんとなく?モダンな感じになった気がしますし、新築時のワクワク感というか、嬉しさが少しよみがえった感じがしました。

 

 

 

2018/10/07
から 松原正和
0件のコメント

A5:SQL Mk-2のちょっとイイところ(SQL整形編)

A5:SQL Mk-2はSQL成形機能も持ちますが、多彩なオプションを指定可能です。

  • キーワードの大文字/小文字変換(変換しない・大文字・小文字)
  • 識別子の大文字/小文字変換(変換しない・大文字・小文字)
  • カンマの位置(式の前・式の後ろ)
  • and, orの位置(式の前・式の後ろ)
  • from, where, having, group by, order by等のインデント
  • SELECT句内のカラム名や式及び、エリアス(AS以降)の位置を揃える
  • インデントにタブ文字を利用する
  • インデント桁数
  • ブロックコメントを独立した行に整形する
  • 1行コメントを独立した行に整形する
  • 1行コメントの位置
  • ブロックコメントの後に空白を付けない(S2JDBC向けオプション)
  • 標準SQLでない識別子の処理(ブラケットで括るなど)
  • SQL区切りのセミコロン”;”を独立した行に配置する

 

標準では、カンマやand, orの位置は「式の前」に整形されます。どちらかというとこれは「式の後ろ」よりもマイナーな気がしますが、自分が「式の前」派なので…。

SQLに限らず、カンマなどの位置は「式の前」に追加したほうがリストの後ろに項目を追加したときに前の行(の末尾)にカンマを追加したりする必要がなく、ソースのバージョン管理ツールで等での差分がすっきりします。リストの先頭に項目を追加するより、リストの最後に項目を追加することが圧倒的に多いですよね。

このSQL成形機能は次バージョンで従来のA5:SQL Mk-2と同時期にリリース予定のコマンドライン版のツールからも利用できるようになる予定です。これはSQLファイルの整形をサポートしますが、標準入出力に対しても整形できるようになる予定です。