- 表題の通り。下記VB6ソースは実行時にDB側でSQLエラーとなる
'NG Dim query As String query = "SELECT" query = query & "colA" query = query & "FROM" query = query & "tableA"
- 理由はあたりまえで変数queryが
SELECTcolAFROMtableA
となり
ステートメントとカラム名等の区別がつけられず
SQLクエリとしてDB側が認識できない。 - 上記のようなソースは半角スペースを両端に入れてガードする。
'OK Dim query As String query = " SELECT " query = query & " colA " query = query & " FROM " query = query & " tableA "
TODO
- 今回のようなソース保守を任せれた場合どう自衛するか。
- クエリベタ打ちにならない仕組みを考える>Enumとかで定数化する