さて、病欠明け、仕事わんさか(笑)
色々とプログラムくみつつ、データ入れて動かして、テスト結果まとめて、成果物チェックをお願いして……と言う流れで、実は「お願いして」の後でぶっ倒れたため、戻ってくるとフィードバックが山積みでした(汗)
っていってもさぁ……
- CSVファイルで、0.00009 と書かれたデータをデータベースへ格納する処理の確認で、ユーザーがSQLServer Management Studioで確認用SQL(フツーのSELECT *)を使って抽出すると 9E-05 と表示される、よって値が違うのでNG
- CSVファイルで、1.30 と書かれたデータをデータベースへ格納する処理の確認で、ユーザーがSQLServer Management Studioで確認用SQL(フツーのSELECT *)を使って抽出すると 1.3 と表示される、よって値が違うのでNG
- CSVファイルで、04 と書かれたデータをデータベースへ格納する処理の確認で、ユーザーがSQLServer Management Studioで確認用SQL(フツーのSELECT *)を使って抽出すると 4 と表示される、よって値が違うのでNG
- CSVファイルで、”” と書かれたデータをデータベースへ格納する処理の確認で、ユーザーがSQLServer Management Studioで確認用SQL(フツーのSELECT *)を使って抽出すると NULL と表示される、よって値が違うのでNG
と言われても……どぉせぇと?
ユーザーいわく、CSVファイルの値と同じ値が出てこないのはおかしい。0.00009といれたんだから、9E-05なんて文字列が入っているのはプログラムのバグ。同様に1.30、04といれたんだから、1.30、04と表示されるべき。それにファイルからNULLなんて文字列は入れていない。おかしい
ということらしい(^ー^;;; うーん、気持ちは判るんだけどね(大汗)
これは指数表示といって、文字列ではないんですよ。画面上そう見せているだけで、実際に値は0.00009で入ってるんですよ。同じように、数値型になっている列で小数点以下で後ろ全部が0の場合や頭0の場合には、画面上で出てこないんですよ、列の値は1.30で入ってますから。NULLというのは「値が何もない」と言う意味で、「NULL」という文字列が入っているわけではないのですよ、なんてツラツラっと説明したら
SQLで確認して違う値である以上、同じ値を格納しているという担保にはならない。SQLを動かしている部分の表示の不具合だというのか?だとしたら、その根拠をきちんと説明しろ!
と譲ってくれなかった。まぁ気持ちは判るんだけどね(さらに汗)
それはつまり、SQLServer Management Studio では、0.00009 は 9E-05 と表示されるのだ、1.30は1.3 と、04は4 と、表示されるのだ、データが入っていない列の値はNULLと表記されるのだ、NULLという文字列が入っているわけではない、ということを根拠となる資料と共に説明しなくちゃならんというわけなのだろうなぁ……面倒だな(笑)
さて、どう、料理してやろうか。つか、どっかにそういうの明記した場所ってありましたっけ? できればMSサイト、もしくはSQL-92関係公式サイトなんかが望ましいんだけれど(^^;
→って書いてたら、午後に進展
んーなの、しかたないんじゃねーの?
最終の集計データがあってるってことはデータはあってるってことなんだから、それでいーじゃん!
という上のお偉い方の一言により、解決(^^;;;;
危険回避……できたんだと思う。でも、実際、前述の件を真面目に説明しようとしたらどれだけの労力が必要だったのだろうか……むずかしいよね、人に判ってもらうのって……。