初めて自分の家と他人の家が違う、と意識した時

よろしくお願いいたします。

VB2008Express+SQLServer2008Expressを勉強しております。

Date型にNULLをセットする方法についてお聞きします。
定義ではDate型で「NULLを許容」にしております。

http://oshiete1.goo.ne.jp/qa1047427.html?ans_cou …
この質問を参考に、
INSERT INTO tbl_Main(dteDate) VALUES (DBNull.Value)
このようにしてみましたが、
「不適切な構文があります」というエラーが起きます。

空文字「"''"」にすると「1900/01/01」がセットされてしまったり、
「vbTab」に変えてみたりとやってみましたが、うまく行きません。

お時間がありましたら、アドバイスよろしくお願いいたします。

A 回答 (1件)

混乱があるかな、と思うのは、


「DBNull.Value」はVB内で解釈されるもので、「INSERT INTO ...」という構文はSQL Serverで解釈されるものです。

したがって、SQL Serverが「INSERT INTO tbl_Main(dteDate) VALUES (DBNull.Value)」というSQLを受け取っても、
「DBNull.Value」が何なのかSQL Serverには判断できないです。

「INSERT INTO tbl_Main(dteDate) VALUES (NULL)」でいいでしょう。
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。
おかげさまで解決いたしました。

「VB内で解釈されるもの」と「SQL Serverで解釈されるもの」の違いも理解することができました。
このアドバイスのおかげで、他のつまずいていた部分も解決しました。

本当にありがとうございます。

お礼日時:2009/12/04 00:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報

このQ&Aを見た人がよく見るQ&A