developWorkspace1.0
インストーラなしで圧縮ファイルとして配布します、好きな場所に展開してのご利用形式とします
このツールは、オールインワンのDB管理ツールを代替するものでなく、
普段のプログラマーの日常作業には数多くのDB製品との関わりを持つ
またそれらのDBに特化した多岐に渡るツールを利用されているのが常である。数多い機能のうち、
よく利用される機能も非常に限られている、各種ツールの使い方もまちまちであり、
一貫性を欠けることによって効率を上げることができないことがしばしば。
こういったような問題を少しでも解消すべく、プログラマーが親しんでいるExcelを軸とし、
開発、テスト作業で必要なデータをExcelで作成して、DBとシムレスに連携する機能を提供します。
Excelは業務に沿ったデータを考えながら作って、またコメントを付けたり、色分けしたりして
優れた柔軟性を持つ、それらの特徴を生かしつつ、DBとシムレスに連携する機能を提供することで
プログラマーの皆さんにはもちろんのこと、テスト、保守などの作業に携わる方々にも
役立つことが多いがあると期待します。
各種DBプロバイダ(現段階ではSqlite,MySQL、Postgresql、Oracleのみをサポート)に一貫とした操作手順で
エクスポート(export)機能とインポート(import)機能を提供しています。
指定した接続情報のDBスキーマをロード
下記に示すようにすべてのテーブルがロードされています
エクスポートしたいテーブルを選択してエクスポート、絞り込み条件のカスタマイズが可能です
対象テーブルにデータが多いときに対象を絞るや、注目したいもののみを抜けとる場合、
ユーザーID,タイムスタンプなどを利用して抽出用のSQL文にWHERE条件を付けくわえることで絞り込みを実現します
下記に示すようにテーブルのスキーマ情報とデータがエクスポートされています
テーブルごとに下記のフォーマットでエクスポートされます
テーブル物理名、論理名(DBに登録がない場合論理名となる)
主キーしるし(*は主キーを意味する)
カラム物理名
カラム論理名(DBに登録がない場合論理名となる)
データ型
サイズ
データ………………………
DB接続情報追加の説明をご参照
DB接続コンボからSetting….を選択してロード(*setting…についての設定はツールの設定情報として
利用しているDBのことであり、削除すべからず)
ConnectionHistoryテーブルを選択してエクスポート
現時点の接続情報のすべてがエクスポートされています
DBに対して基本的に削除処理を行わないので、既存のデータが編集の邪魔になる場合があるので、
ほかのデータを削除して一件のみを残し、それをもとに実際の接続情報に合わせて修正する手順のほうが効率がよい。
ProviderIDの意味はテーブル:Providersで管理しています。現時点ではSQLite/PostgresSQL/MySQL/Oracleのみサポートします、
ほかのDBへのサポートは基本的に下記テーブルに追加設定を行えばできるはずですが、なにせ動作確認を行っておりません
もう一度エクスポートして追加したデータを検証、DBへ反映されたことを確認
SQL文を解析して対象となるテーブルのエクスポートと絞り込み条件をヒントに補助データを作成する機能も提供します。
入れ子SQL文を含まれる複雑なSQL文をサポートします。(文法的に正しく解析できないSQLもあるのでご注意してください)
テーブルのコンテクストメニューからか、設計書なり、プログラムなりからコピペするか、直接入力するかによりSQL文を入力できます
SQL文の実行、フォーマット、入れ子SQL文の選択、SQL文にある実テーブルをもとにエクスポートなどの機能を提供します
DB反映 |
タイムスタンプ(Date型)にYYYY/MM/DD範囲外のデータ(ex:2017231/12/12)が入ったテーブルをエクスポートしようとする場合、例外発生します 対処法:問題のデータを修正するか、SelectClauseで除外するか、テーブル自体をエクスポート対象から除外することで対処可能です。 |
|
Blob、Clob型のようなバイナリ内容のデータ型についてはサポートしない、SQLから除外しています。 |
|
|
|
|
|
|
|
|
|
|
コンパイルなど透過的にツールで行っているので、C#のコードのSnippetをこの場でスクリプトぼく実行させる機能を提供します。
・活用法としてはExcelからモデル情報を取得して、Vecolityなどのテンプレートエンジを通すことでソースコードを自動生成する、
・サンプルコードを手軽に動かして動作を検証する
初版にはCodeLibraryフォルダをC#ソースファイルを検索して画面で選択できるようになったものの、入力したものを保存するとか、コンパイル済みのものをキャッシュするとか、細かいところに改善の余地が盛り沢山です。
提供サービス
Outputビュー出力 |
DevelopWorkspace.Base.Logger.WriteLine |
C#オブジェクトダンプ機能 |
DevelopWorkspace.Base.Dump.ToDump(object); |
エラーメッセージ表示 |
DevelopWorkspace.Base.Services.ErrorMessage("hello
world!"); |
XmlファイルC#オブジェクト変換 |
XmlToGenericObject.Parse(root,
xDoc.Elements().First()); |
Excelオブジェクト取得 |
dynamic xlApp = DevelopWorkspace.Main.XlApp.Excel; |
Excelセル値取得(例) |
var targetSheet = xlApp.ActiveWorkbook.ActiveSheet; object[,] value2_copy =
targetSheet.Range(targetSheet.Cells(1, 1),
targetSheet.Cells(targetSheet.UsedRange.Rows.Count, targetSheet.UsedRange.Columns.Count)).Value2; DevelopWorkspace.Base.Logger.WriteLine(value2_copy[7,
3].ToString()); |
コードテンプレート |
//参照アセンブルを記述 using
System; public
class Script { //startup routine public static string
Main(dynamic view) { //この位置でスタートアップコードを記入する必要がある return ""; } } |