すいません、VB4しかやってないんです、VBAはやったけど(ぼそ) チラシの裏だって立派な書き込み空間なんだからねっ!資源の有効活用なんだからねっ!とか偉そうに言ってるけど、実は色々と書き残したいだけ

だからなに? どうしろと? くるみサイズの脳みそしかないあやしいジャンガリアンベムスターがさすらう贖罪蹂躙(ゴシックペナルティ)

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  632  : 記事  35  : コメント  11686  : トラックバック  143

ニュース


片桐 継 は
こんなやつ

かたぎり つぐ ってよむの

大阪生まれ河内育ちなんだけど
関東に住みついちゃったの
和装着付師だったりするの
エセモノカキやってたりするの
VBが得意だったりするの
SQL文が大好きだったりするの
囲碁修行中だったりするの
ボトゲ好きだったりするの
F#かわいいよF#

正体は会った人だけ知ってるの

空気読まなくてごめんなさいなの


わんくまリンク

C#, VB.NET 掲示板
C# VB.NET掲示板

わんくま同盟
わんくま同盟Blog


WindowsでGo言語
WindowsでGo言語


ネット活動


SNSは疲れました

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

イベント活動

プログラムの活動

さて、病欠明け、仕事わんさか(笑)
色々とプログラムくみつつ、データ入れて動かして、テスト結果まとめて、成果物チェックをお願いして……と言う流れで、実は「お願いして」の後でぶっ倒れたため、戻ってくるとフィードバックが山積みでした(汗)

っていってもさぁ……

  • 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関係公式サイトなんかが望ましいんだけれど(^^;

→って書いてたら、午後に進展

んーなの、しかたないんじゃねーの?
最終の集計データがあってるってことはデータはあってるってことなんだから、それでいーじゃん!

という上のお偉い方の一言により、解決(^^;;;;

危険回避……できたんだと思う。でも、実際、前述の件を真面目に説明しようとしたらどれだけの労力が必要だったのだろうか……むずかしいよね、人に判ってもらうのって……。

投稿日時 : 2008年3月4日 0:06

コメント

# re: これは、NGなのか? そうなのか? 2008/03/04 9:13 はつね
お偉方、GJ!


# re: これは、NGなのか? そうなのか? 2008/03/04 10:06 ゆーち
しょっちゅうそんな目に遭ったことのあるあちきが来ました。

つ_;)

でも、よ~くわかりました。

そんなときは、「鶴」を探すようにすればいいんですね。

# re: これは、NGなのか? そうなのか? 2008/03/04 16:29 Mr.T
Mr.Tです、こんにちは。

>SQLで確認して違う値である以上、同じ値を格納しているという担保にはならない。

内部形式が同じである必要性はない!
人参は、どこを切ってもにんじんだ!
花形に切ったからといって、人参でなくなることではない!

といってみるテスト(^^;



# re: これは、NGなのか? そうなのか? 2008/03/05 0:56 片桐
一喝してくださった「鶴」なお方には感謝感謝ですよ

花形に切られた人参が人参である、という証明を
成分分析表と第三者機関による証明書を担保して
説明しろ、といわれたようなもんですもん

ちなみに、SQL-92にも指数表記や0表記の記載はありませんでしたw

# re: これは、NGなのか? そうなのか? 2008/03/05 1:56 THREE-ONE
> CSVファイルで、”” と書かれたデータをデータベースへ格納する処理の確認で、ユーザーがSQLServer Management Studioで確認用SQL(フツーのSELECT *)を使って抽出すると NULL と表示される、よって値が違うのでNG
SQL Server なら null と空文字って別じゃなかったですか?
対象列の型が文字列型なら、バグっちゃあバグだと思います。
どちらで格納するか事前にきちんと決めておくべきことではないでしょうか?
列の型が文字列じゃないってのなら関係ありませんけど。

# re: これは、NGなのか? そうなのか? 2008/03/05 2:15 やまだ
> さて、病欠明け、仕事わんさか(笑)

とにもかくにも、お体は大事になさってくだせぃ。
#人のことは言えんが。

# re: これは、NGなのか? そうなのか? 2008/03/06 0:20 片桐
>TREE-ONEさん

ユーザーも、""がデータベース上で「NULL値」として格納される、という仕様においては合意してるんですよ。問題は、自分が今見ている画面上で表示されている「null」がNULL値のNULLなのか、nullという文字列なのか、どちらか判らないから担保にならない、で思考停止してしまっている、というのがポイントだったりします(汗)
で、「これがNULL値をあらわすんだという担保を」を言い出した、と。ふぅ。

>やまださん

うん、私、生きてるよー(と手を振ってみる)

# re: これは、NGなのか? そうなのか? 2008/03/15 1:03 やまだ
> うん、私、生きてるよー(と手を振ってみる)

……。
へんじがない。ただのしかばねのようだ。

#いや、こっちの話。

マーズアタック! MARS ATACK!

Post Feedback

タイトル
名前
Url:
コメント