DOBON.NETプログラミング道掲示板

No35089 の記事


■35089 / )  Re[1]: CommandBuilderによって作られるCommandTextの内容
□投稿者/ 魔界の仮面弁士 大御所(1430回)-(2022/06/28(Tue) 14:16:04)
  • アイコンNo35088に返信(Wanさんの記事)
    > UPDATE文、DELETE文のCommandTextの中の(? = 1 AND 苗字 IS NULL)の意味を教えて頂けませんか?

    データベース側では、名前や型を明示したパラメーターをサポートしているのですが、
    OleDbConnection オブジェクトからだと、無名パラメーターしか使えないんですよね…。
    ACEDAO 経由で呼ぶ場合は名前付きにできるのですが。
    https://docs.microsoft.com/ja-jp/office/client-developer/access/desktop-database-reference/parameters-declaration-microsoft-access-sql


    > 「苗字 IS NULL」は、レコードの苗字列の値がDbNullの場合はTrueを返すという事は理解していますが、「? = 1」の意味が解りません。

    空文字列と NULL を区別するための措置です。

    たとえば
     WHERE (? = 1 AND 苗字 IS NULL) OR (苗字 = ?)
    という部分を
     WHERE ([引数1] = 1 AND 苗字 IS NULL) OR (苗字 = [引数2])
    のように読み替えてみます。

    そのうえで、VB 側からは
     Dim 引数1 As Integer, 引数2 As String
     If NULLをセットしたい場合 Then
      引数1 = 1
      引数2 = Nothing '未使用
     Else
      引数1 = 0
      引数2 = TextBox1.Text
     End If
    のような引数が渡されるイメージです。
違反を報告
返信 削除キー/


Mode/  Pass/


- Child Tree -