デフォルトのスキーマ/インスタンスを接続文字列 (または特定のコマンド) の一部として指定しようとしているので、クエリの一部である必要はありません。
OdbcConnection conn = new OdbcConnection("Driver={IBM DB2 ODBC DRIVER}; Database=myDB; Hostname=myHostName; Port=myPort; Protocol=TCPIP; Uid=myID; Pwd=myPW;");
OdbcCommand comm = new OdbcCommand("select count(*) from customers", conn);
conn.Open();
var value = comm.ExecuteScalar();
conn.Close();
残念ながら、これはエラーで失敗します:
ERROR [42S02] [IBM][CLI Driver][DB2] SQL0204N myID .customers は未定義の名前です。SQLSTATE=42704。
スキーマ/インスタンスがあるはずのmyIDを使用していることに注意してください。スキーマ/インスタンスを明示的に指定した場合:
OdbcCommand comm = new OdbcCommand("select count(*) from mySCHEMA.customers", conn);
期待どおりに動作します。mySCHEMA
MS SQL Server を使用する場合の「初期カタログ」のように、接続文字列の一部として指定したいと思います。
たくさんの実験とグーグルの後、私はそれを理解できないようです. 何か案は?