A5:SQL Mk-2

開発のこと、日々のこと

A5:SQL Mk-2のちょっとイイところ(コピー&ペースト編)

| 2件のコメント

A5:SQL Mk-2では、クエリーの実行結果やテーブルエディタのグリッドで行(単一行または複数行)を選択し、Ctrl+Cを押下するとクリップボードにコピーできます。ここまではまあ当たり前です。

ここでExcelを起動し、Ctrl+Vを押下すると、以下のように罫線・書式付きでペーストすることができます。Excelへの貼り付けの際、’0001’が’1’に勝手に変換されたりということがありませんし、文字列は文字列として数字は数値として、NULL項目については灰色で「​(NULL)​」と出力されます。(Version 2.13まで)

このように罫線・書式付きで’0001’の様なコードも正しくExcelに貼り付けられるのは他のソフトウェアにはない機能と思っています。(少なくとも私は他に知りません。)

貼り付け例(貼り付け後にセルの幅を調整しています。)

また、この貼り付けた結果セットをExcelで編集して範囲選択してCtrl+Cでコピーし、A5:SQL Mk-2でCtrl+Vを押下すると再度貼り付けることができます。(あらかじめ一意制約違反にならないように該当行は削除する必要があります。)

このとき、「​(NULL)​」の項目は正しく、NULLで貼り付けされます。

ちなみに、「(NULL)」という文字列データとNULLを区別するために、これまでのバージョンでは「​(NULL)​」には見えない文字コードが付加されていました。文字列の両サイドにU+200B (Zero Witdth SPace)が付加されていました。実際のところ、このU+200Bのコードを付けたのは不評だったようです。幅0なので見えないですし、エンジニアでもあまり知らないことが多い文字コードです。…”(NULL)”を””に置換して色々操作したときにいろいろ弊害があったようでした。…言い訳をするなら、「​(NULL)​」は置換など編集しなければそれほど悪さをすることもないはずなのですが…。

Version 2.14系(開発中)からはNULLは「« NULL »」で表現します。U+200Bなどの記号は付きません。”«”と”»”はU+00ABとU+00BBです。やはりあまり使われない文字コードですが「実際にその文字列をデータとして使っていた!!」という事態を極力避けたいのでやや特殊な文字を使用しなければいけないのは仕方ない気がします。

ところで、Excelに貼り付けを行ったとき、なぜ罫線や書式つきで貼り付けが行われるのでしょうか?。A5:SQL Mk-2はコピーを行う際に、「A5:SQL Mk-2内部形式」・「HTML形式」・「タブ区切りテキスト」の3つのフォーマットでコピーします。貼り付け側のアプリケーションでは自身の扱えるフォーマットで貼り付けを行います。ExcelではHTML形式で書式のついた状態で張り付けしますし、テキストエディタなどでは、タブ区切りで張り付けられます。A5:SQL Mk-2自身への貼り付けでは、A5:SQL Mk-2内部形式で扱うので、改行やタブの含まれるデータも正しく扱うことができます。

あと、グリッドで右クリックして、「レコードのコピー(その他のフォーマット形式)」を選ぶことで通常以外の形式でコピーすることもできます。

SQLエディタでは、マークダウン・CSV・HTMLソース形式で、テーブルエディタではそれに加えて、Insert文・Update文でもコピーできます。

 

 

2件のコメント

コメントを残す

必須欄は * がついています