• 締切済み

SQL文の関数らしいのですが、意味を正確に調べたいとき。

Visual Basic で組んだ業務ソフトのソースを見ているところなのですが…。データベースは SQL Serverを使っています。その中のコードとして SQL = "SELECT * FROM MPGSUB " _ & "WHERE 端末ID = " & Conv_DBValue(Client_ID, DB_String) というのがあります。これは、《"端末ID"列から、DB_Stringの型に変換した値をClient_ID という列名にして取得する》ということで良いのでしょうか。 Conv_DBValue やDB_String は、手元の辞典にも載っていないし、ネットで検索しても解説しているところがありません。このようなときは、プログラムで参照すべき他のモジュールが足りないと考えた方が良いのでしょうか。 ときどき調べがつかない関数があるので困ってしまうので、そのような時はどうすべきか教授願いたいです。(^^;

みんなの回答

noname#25230
noname#25230
回答No.3

文字列をよく見てください。SQLの関数であれば、VBにおいては単なる文字列であり、ダブルクォートの中にあるはずです。これは、Conv_DBValue関数が「&」で繋がっていますよね。ということは、「VBで定義されたConv_DBValue」関数の結果を、SQL文の文字列に繋いでいるだけです。 関数はVBのソースのどこかにあるはずです。

回答No.2

vbでConv_DBValueを右クリック→定義を選択してもそのファンクションにとびませんか?

  • kagep
  • ベストアンサー率23% (171/721)
回答No.1

>《"端末ID"列から、DB_Stringの型に変換した値をClient_ID という列名にして取得する》ということで良いのでしょうか。 いえ、違うと思います。 Conv_DBValue(Client_ID, DB_String) というのは、VBの関数(プロジージャ)では? Client_IDとDB_Stringという変数に格納されている値を引数にして、 Conv_DBValueの戻り値が、MPGSUBテーブルの端末IDフィールドの値と一致するものを検索しているのでしょう。 列名はテーブルの列名のままかと思います。 にしても、この変数名といい関数名といい、 ネーミングルールなんてあったものぢゃないですねぇ。 品質も「それなり」ではないかと・・・。 SQL文の*使用も、やめた方がいいと思います。 って、解析元のソースなので、既存システムには関係ない、ということなら安心ですけどね。

関連するQ&A