目录

目录... 1

システム要件... 1

ツールの概要(使命)... 1

基本機能... 1

起動... 1

DBスキーマロード.. 1

データエクスポート... 1

DB反映... 1

DB接続情報追加/編集/削除... 1

設定用DB選択... 1

接続情報エクスポート.. 1

接続情報追加... 1

DB反映... 1

SQL文エクスポート... 1

SQL文入力... 1

制限事項... 1

開発者向け... 1

スクリプトツール... 1

 

 

 

 

 

 

 

 

 

 

 

 

developWorkspace1.0

 

 

 

 

 

システム要件

Windows

.NET4.5

Excel2003以上(またはWPS2015以上)

 

インストーラなしで圧縮ファイルとして配布します、好きな場所に展開してのご利用形式とします

 

 

 

 

 

 

 

 

 

ツールの概要(使命)

このツールは、オールインワンのDB管理ツールを代替するものでなく、

普段のプログラマーの日常作業には数多くのDB製品との関わりを持つ

またそれらのDBに特化した多岐に渡るツールを利用されているのが常である。数多い機能のうち、

よく利用される機能も非常に限られている、各種ツールの使い方もまちまちであり、

一貫性を欠けることによって効率を上げることができないことがしばしば。

 

こういったような問題を少しでも解消すべく、プログラマーが親しんでいるExcelを軸とし、

開発、テスト作業で必要なデータをExcelで作成して、DBとシムレスに連携する機能を提供します

Excelは業務に沿ったデータを考えながら作って、またコメントを付けたり、色分けしたりして

優れた柔軟性を持つ、それらの特徴を生かしつつ、DBとシムレスに連携する機能を提供することで

プログラマーの皆さんにはもちろんのこと、テスト、保守などの作業に携わる方々にも

役立つことが多いがあると期待します。

 

基本機能

各種DBプロバイダ(現段階ではSqlite,MySQLPostgresqlOracleのみをサポート)に一貫とした操作手順で

エクスポート(export)機能とインポート(import)機能を提供しています。

起動

 

DBスキーマロード

指定した接続情報のDBスキーマをロード

 

下記に示すようにすべてのテーブルがロードされています

データエクスポート

エクスポートしたいテーブルを選択してエクスポート、絞り込み条件のカスタマイズが可能です

対象テーブルにデータが多いときに対象を絞るや、注目したいもののみを抜けとる場合、

ユーザーID,タイムスタンプなどを利用して抽出用のSQL文にWHERE条件を付けくわえることで絞り込みを実現します

 

下記に示すようにテーブルのスキーマ情報とデータがエクスポートされています

テーブルごとに下記のフォーマットでエクスポートされます

テーブル物理名、論理名(DBに登録がない場合論理名となる)

主キーしるし(*は主キーを意味する) 

カラム物理名

カラム論理名(DBに登録がない場合論理名となる)

データ型

サイズ

データ………………………

 

DB反映

DB接続情報追加の説明をご参照

 

DB接続情報追加/編集/削除

設定用DB選択

DB接続コンボからSetting….を選択してロード(*setting…についての設定はツールの設定情報として

利用しているDBのことであり、削除すべからず)

ConnectionHistoryテーブルを選択してエクスポート

 

接続情報エクスポート

現時点の接続情報のすべてがエクスポートされています

 

接続情報追加

DBに対して基本的に削除処理を行わないので、既存のデータが編集の邪魔になる場合があるので、

ほかのデータを削除して一件のみを残し、それをもとに実際の接続情報に合わせて修正する手順のほうが効率がよい。

 

ProviderIDの意味はテーブル:Providersで管理しています。現時点ではSQLite/PostgresSQL/MySQL/Oracleのみサポートします、

ほかのDBへのサポートは基本的に下記テーブルに追加設定を行えばできるはずですが、なにせ動作確認を行っておりません

DB反映

もう一度エクスポートして追加したデータを検証、DBへ反映されたことを確認

 

 

 

 

SQL文エクスポート

SQL文を解析して対象となるテーブルのエクスポートと絞り込み条件をヒントに補助データを作成する機能も提供します。

入れ子SQL文を含まれる複雑なSQL文をサポートします。(文法的に正しく解析できないSQLもあるのでご注意してください)

 

SQL文入力

テーブルのコンテクストメニューからか、設計書なり、プログラムなりからコピペするか、直接入力するかによりSQL文を入力できます

SQL文の実行、フォーマット、入れ子SQL文の選択、SQL文にある実テーブルをもとにエクスポートなどの機能を提供します

 

 

 

制限事項

DB反映

タイムスタンプ(Date型)にYYYY/MM/DD範囲外のデータex:2017231/12/12が入ったテーブルをエクスポートしようとする場合、例外発生します

対処法:問題のデータを修正するか、SelectClauseで除外するか、テーブル自体をエクスポート対象から除外することで対処可能です。

 

BlobClob型のようなバイナリ内容のデータ型についてはサポートしない、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 "";

 }

}