m_pixyさんの「テストデータ作成ツール」の話、前後の文脈は、わからないのですが、CSE、いいですよね!!
便利便利、フリーだし、SQL文でいろいろ操作できるし、データをみて更新かけることも出来ましたよね(「データ編集機能」って、webには、かいてありますね)。
Accessでも、クエリで、「表示」→「SQLビュー」にすると、クエリ以外のInsertとかUpdateでも、SQL文を入れて、実行させることが出来ます(くわしくは、こちら)。
たぶん、これで、テーブルをリンクしたりすると、CSEみたいなことができるのかな?
(そこまでは、やったことがない。そういう必要のあるときはCSEを使うからだ)。
ということで、CSEでもAccessでも、データ見ながら操作したり、insert文を自動生成して、テストしたりっていうことができる。
これで、どんなRDBでも、(多少のSQL文の違いはあっても)
CSEやAccess使えば、簡単にテストできるね。
めでたしめでたし。
といいたいところなのだが、ひとつだけ、insert文なんかを自動生成して、テストするのに厄介なRDBがある。
富士通の出しているDB、SymfoWAREだ!
このやっかいさ、私がテストの準備をしたときのお話で、振り返りましょう。
まず、Excelの仕様書から、自動編集で、Create Table文を書いたDDLを作成(このときは、ここみたいにjavaでやるんじゃなくって、Excelマクロを使ってやりました)。
で、Excelにテストデータをつくって、自動生成でInsert文のSQLを作成(これも、ここのようにJAVAでやったんじゃなくって、Excelマクロで、ただしデータの入れ方は、同じようなかんじ)。
あ、そうそう、別件になっちゃいますが、Excelマクロでinsert文を作成するマクロを公開している人がいますね。この方です。
で、実際にテーブルつくって、データ入力です。
たしか、CSEのODBC接続で、うまくいかなくって(私の設定が悪いんだと思うけど)、DDLはrdbddlex、InsertのSQLは、rdbexecsqlという、このDB独自のツールを使って、入れようとしましたが。。。
はいりません。エラーっす!
ここで、いただいたサンプルにもどる。
なんだ、DSIって?DSOって。。。??
どうにか理解し、表のDSI、DSOをExcelで自動生成。実行。
まだだめだあ。。。
なになに、インデックスにもいるのお???
インデックスのDSI、DSOをExcelで自動生成。実行。
なんか、ここまでで、いろいろおかしくなったので、消したり作ったりを繰り返す。
で、データを入れてみる。
はいらない。
また、サンプルにもどる。
ncharのところは、insertのとき、N'値'とか、しないと入んないみたいだ。
修正。
やっと入ったときには、疲れまくりで、「今日はここまで」でした。
(テストする前に疲れたよ!)
SymfoWAREは、他のmysqlやpostgreSQLなどと違い、DSI,DSO(ディスクスペースの宣言)が必要だったり、insert文のところで、Nが必要になる時があったり、ちょっとちがいます(また、日本語のところに、英語半角入れちゃったりすると、怒られたり)。
まあ、日付の書き方が違うくらいなら、そんなに問題ないけど、ここまで違うとSymfoWAREの自動生成や、データ作りには、注意が必要。新人研修なんかで使うと、混乱するかも(売られているSQLの本には、そんなこと、書いてないから)。
あ、でも、富士通の人が、このブログ、見てるかもしれないので、その人のためにフォローすると、SymfoWAREも、いいデータベースだと思いますよ!
富士通以外の人に、「どこがいいの?」って聞かれると、答えられないけど(^^;)。。。