"SQL書き方" の一覧

AS400とのODBC接続時に円マークを使ったフィールドを正しく処理できない時

i5(AS400)とODBCで接続した場合に列名に円マークを含むテーブルを参照できない現象が以前から確認していましたが、あるとき全く気にしないで処理していることに気付きました。

確認したところ、原因はIBM System i Access for Windowsのバージョンでした。V5R4(詳細バージョン確認忘れ)ではだめでしたが、V6R1では問題ないです。

image

うまくODBCで参照できない時は、列名に円マークを使っていないか確認してみるといいかも知れません。

AS400とのiDB2Connectionで接続時にSQL0666エラー(タイムアウト)

よく対処方法を忘れているのでメモ。「iDB2Connection SQL0666」で検索して辿りつくのはいつもここ。ありがとうございます。

接続文字列にタイムアウトを0(無制限)としても自動で30に変更されていまうから、コードで再設定する事で解決します。

ちなみにODBCの場合はAS400のデフォルトの設定値によって同様のエラーが発生する時パターンあり

 

public void TestFunction()
{
    try
    {
        using (iDB2Connection cn = new iDB2Connection("DataSource=AS400;USERID=FOO;PASSWORD=BAR;CONNECTION TIMEOUT=0;"))
        {
            cn.Open();

            using (iDB2Command cmd = cn.CreateCommand())
            {

                cmd.CommandText = "SELECT * FROM HURGETBL";
                cmd.CommandTimeout = 0; // ←ここが無いと接続文字列でTimeout=0と定義しても30で上書きされてエラーになる。

                iDB2DataReader dr = cmd.ExecuteReader();
                if (dr.HasRows)
                {
                    dr.Read();
                }
            }
            cn.Close();
        }
    }
    catch (Exception ex)
    {
        throw ex;
    }

}

WindowsCE用SqlClient

すっかりCEの開発をしていなかったら、SQL Serverに繋ぐ為に.Net Compact Framework以外にSqlClientをインストールしないと行けない事を忘れていた。

VS2005に付属のラインタイムは↓

C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Client\v2.0\