teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

5

文章の改善

2016/11/09 07:03

投稿

piarokaren
piarokaren

スコア16

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,10 @@
1
1
  SQL Server 2008のSSIS開発を行っています。
2
2
 
3
+ 【お答えいただきたいこと】
4
+ ・Equals()と比較演算子の違い
5
+ ・常に比較演算子ではなく、Equals()を使用するべきなのか
6
+
7
+ 【現象】
3
8
  スクリプトタスク内にて、データベース(SQL Server)から取得したデータを、
4
9
  ```ここに言語を入力
5
10
  Obj = ResultSet("列名").Value

4

追加

2016/11/09 07:03

投稿

piarokaren
piarokaren

スコア16

title CHANGED
File without changes
body CHANGED
@@ -19,6 +19,9 @@
19
19
  値の比較においては、違いがなく、
20
20
  参照型の比較において違いがでるのは認識しております。
21
21
 
22
+ Equals()で比較対象がNullであってもエラーとならないのであれば、
23
+ 常にEquals()を使用すべきなのでは・・・とも思ったりしますが、間違いでしょうか。
24
+
22
25
  調べたところ、比較演算子は内部的にはEquals()を呼んでいるとの記事もあり、
23
26
  いよいよわからなくなってきたため、質問させていただきました。
24
27
 

3

誤字の修正

2016/11/09 07:01

投稿

piarokaren
piarokaren

スコア16

title CHANGED
File without changes
body CHANGED
@@ -15,7 +15,9 @@
15
15
  If Obj.Equals("aaa") Then
16
16
  ```
17
17
 
18
- ではエラーにならないのは、どういう違いがあるからなのでしょうか。
18
+ ではエラーにならないのは、Equalsと比較演算子にのよ違いがあるからなのでしょうか。
19
+ 値の比較においては、違いがなく、
20
+ 参照型の比較において違いがでるのは認識しております。
19
21
 
20
22
  調べたところ、比較演算子は内部的にはEquals()を呼んでいるとの記事もあり、
21
23
  いよいよわからなくなってきたため、質問させていただきました。

2

文法の修正

2016/11/09 06:11

投稿

piarokaren
piarokaren

スコア16

title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  スクリプトタスク内にて、データベース(SQL Server)から取得したデータを、
4
4
  ```ここに言語を入力
5
- Obj = ResultSet("列名")
5
+ Obj = ResultSet("列名").Value
6
6
  ```として受け取ったとき、DB上で該当データがNULLだった場合、
7
7
 
8
8
  ```ここに言語を入力

1

情報追加要請頂いたので、追加させていただきました。(Nullの詳細、Option Strictの設定)

2016/11/09 06:10

投稿

piarokaren
piarokaren

スコア16

title CHANGED
File without changes
body CHANGED
@@ -1,12 +1,15 @@
1
+ SQL Server 2008のSSIS開発を行っています。
2
+
3
+ スクリプトタスク内にて、データベース(SQL Server)から取得したデータを、
1
4
  ```ここに言語を入力
2
- Obj = Null
5
+ Obj = ResultSet("列名")
3
- ```とした場合、
6
+ ```として受け取っとき、DB上で該当データがNULLだった場合、
4
7
 
5
8
  ```ここに言語を入力
6
9
  If Obj = "aaa" Then
7
10
  ```
8
11
 
9
- ではエラーになりますが、
12
+ 比較を行った場合、DBNullとStringの比較によるエラーになりますが、
10
13
 
11
14
  ```ここに言語を入力
12
15
  If Obj.Equals("aaa") Then
@@ -17,5 +20,6 @@
17
20
  調べたところ、比較演算子は内部的にはEquals()を呼んでいるとの記事もあり、
18
21
  いよいよわからなくなってきたため、質問させていただきました。
19
22
 
23
+ Option StrictはOffになっています。
20
24
 
21
25
  宜しくお願いします。