C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[4]: VB6 ADO DBのINT型の項目をNULLで更新
(過去ログ 82 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 5 記事 (1 - 5 表示)] <<
0
>>
■48838
/ inTopicNo.1)
VB6 ADO DBのINT型の項目をNULLで更新
▼
■
□投稿者/ Yuuta
(1回)-(2010/04/15(Thu) 11:46:41)
分類:[VB6 以前]
開発環境
VB6
MS-SQL Server 2000
ADO(Microsoft ActiveX Data Objects 2.6 Library)
ご教授下さい
データベースで、NULLが許可されたINT型の項目を
NULLで更新(UPDATE)するときに、VBではINT型に
NULLを代入する事ができないので困っております
RS:RecordSet
Count:データベースの項目名(int型:NULL許可)
注:AddNewではなく、前もってSelect文でレコードを1件読み込んだ後
RS!Count = IIf(cnt < 0, vbNullChar, cnt)
RS.Update
イメージとしては、こんな感じで行いたいのですが…
データベースはクライアント元の物なので
こちらで変更する事ができません
よろしくお願いします
引用返信
編集キー/
編集
■48892
/ inTopicNo.2)
Re[1]: VB6 ADO DBのINT型の項目をNULLで更新
▲
▼
■
□投稿者/ 魔界の仮面弁士
(1623回)-(2010/04/15(Thu) 21:17:11)
2010/04/15(Thu) 21:27:00 編集(投稿者)
■
No48838
(Yuuta さん) に返信
> RS!Count = IIf(cnt < 0, vbNullChar, cnt)
vbNullChar は「Chr(0)」を意味する『文字列』なので、今回は使えません。
使うとすれば Null でしょう。
VB6 には似たような名前のキーワードとして
(1) Empty
(2) Null
(3) vbNull
(4) vbNullChar
(5) vbNullString
などがありますが、それぞれ意味が異なるので注意してください。
それと、RS!Count の記述は避けた方が良いかと。
多少冗長的になりますが、代わりに、
RS.Collect("Count") = 〜
RS.Fields("Count").Value = 〜
などの構文を使ってみてください。
# なお上記は、「!」を使うのが悪いという意味ではなく、
# ADODB.Field 型に対して値を代入すべきでは無いという意味です。
引用返信
編集キー/
編集
■48921
/ inTopicNo.3)
Re[2]: VB6 ADO DBのINT型の項目をNULLで更新
▲
▼
■
□投稿者/ Yuuta
(3回)-(2010/04/16(Fri) 13:01:43)
魔界の仮面弁士様、初めまして
無事、下記の書式でNullを代入する事ができました
RS.Fields("Count").Value = IIf(cnt < 0, Null, cnt)
どうも、ありがとうございました
これからは、RSに値を代入するときは
今回のような明確な書式に修正して行こうかと思います
始めは、NullとしてvbNullを使用したのですが
値に1が入ってしまい、次にvbNullString→vbNullCharと
試した次第です
Nullと同意の定義、こんなにあったんですね
また、普通にNullが使えるとは思いよりませんでした
回答や貴重なアドバイス、ありがとうございました
解決済み
引用返信
編集キー/
編集
■48922
/ inTopicNo.4)
Re[3]: VB6 ADO DBのINT型の項目をNULLで更新
▲
▼
■
□投稿者/ 魔界の仮面弁士
(1626回)-(2010/04/16(Fri) 15:34:13)
■
No48921
(Yuuta さん) に返信
> 始めは、NullとしてvbNullを使用したのですが
> 値に1が入ってしまい、次にvbNullString→vbNullCharと
> 試した次第です
一応補足。
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200504/05040116.txt
解決済み
引用返信
編集キー/
編集
■48943
/ inTopicNo.5)
Re[4]: VB6 ADO DBのINT型の項目をNULLで更新
▲
▼
■
□投稿者/ Yuuta
(4回)-(2010/04/17(Sat) 10:09:10)
追加情報ありがとうございます
バリアント型等の変数により、間口の広いサブルーチンや
クラスが作れるようになった昨今
後からソースを見た人が分かりやすいように
こう言った記述をしっかりと使い分けてプログラム
して行きたいですね
解決済み
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-