- - PR -
timestamp列をnullにしてInsert文を実行するには?
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-03-28 20:47
初めての書き込みになります。よろしくお願いします。
SQL Serverでtimestamp列をもったテーブルを作成し、 VS.NETのデザイナでDataAdapterなどをSQL文は何もいじらずに作成しました。 そのままで型付のDataSetを作ったので このDataSetにはbase64binaryという列ができあがりました。 プログラミング上からはこの列に何も値を代入せずに SQL ServerにInsert文をかけたいのですが、 「値はDBNullのため、取得できません」や「指定されたキャストは無効です」などの エラーが出てしまいます。 Set<Column名>Nullメソッドやこのカラムにnullを代入したり、 SQL Serverでtimestamp列をNullに許可したりいろいろ試してみたのですが、 どれもダメでした。 Insert文からtimestamp列を削除してしまえばいいというのはわかっているのですが、 できれば違う方法で実現したいと思っています。 お知恵を拝借させていただければ幸いです。よろしくお願いします。 | ||||||||
|
投稿日時: 2004-03-29 01:22
libatyさん、はじめまして。
Books Online は読まれましたか? もしまだであれば一度imestamp型についてお読みください。。。 | ||||||||
|
投稿日時: 2004-03-29 09:51
早速のご指摘ありがとうございます。
Books Onlineのtimestamp型について読んだことがなかったので、timestamp型とついでにtimestamp列のところを眺めてみました。 「自動的に更新するからいじらないで」ということを書いているのかなという印象を受けたのですが、それと今回できないことがどうしても繋がりません。 そもそも以下みたいなことはしないのでしょうが、クエリアナライザを使って、 insert into Table (ID, Name, Stamp) values (1, 'libaty', (null)) ができるのに、なんで.NETでDataSetを使うとダメなのかがどうしても理解できませんでした。 もうしわけありませんが、もう少し皆さんのお知恵を拝借できないでしょうか。 よろしくお願いします。 | ||||||||
|
投稿日時: 2004-03-29 10:41
そのSQLの実行結果をご覧になりましたか?
テーブルには期待した結果が反映されていますか? | ||||||||
|
投稿日時: 2004-03-29 10:48
上記のinsert文を実行した結果ですが、
timestamp列のStampには Enterprise Managerで見ると <binary> クエリアナライザで見ると 0x000000000012E6AD という値が入っています。 timestamp列について正しい理解をできているかわかりませんが、 このような結果が得られたのでちゃんと入っているのではないかと考えています。 そもそもこのへんの認識がおかしいのでしょうか? | ||||||||
|
投稿日時: 2004-03-29 11:05
おそらく流れは以下のようになっていると思いますが、どの場所でエラーが発生しているか
教えていただけないでしょうか? 1)新規行作成 2)新規行の各項目に値を設定 3)新規行をデータセット内のテーブルに追加 4)データアダプタのUpdateメソッドでDB更新 3)と4)だと原因が違ってくるので | ||||||||
|
投稿日時: 2004-03-29 11:20
ゆうじゅんさん、はじめまして。
最初に書きましたExceptionメッセージは全部 4)DataAdapterのUpdateメソッドでDB更新 のところで発生しています。 ご参考までに、 DataSetのbase64binary列(SQL Serverではtimestampになっているところ) はNillable = trueになっています。 どうぞ、よろしくお願いします。 | ||||||||
|
投稿日時: 2004-03-29 11:36
ユーザは変更できない。 変更できたら『データベース内で一意であることが保証』できなくなります。 蛇足: 「2004-03-29 10:48」の投稿で
ということですが、nullを放り込んだはずなのに、null以外の値が入っていることを、なぜ「おかしい」と思わずに、『ちゃんと入っているのではないか』と考えられたのでしょう? [ メッセージ編集済み 編集者: Jitta 編集日時 2004-03-29 11:46 ] |
1|2|3
次のページへ»