4

FoxPro テーブルからデータをインポートし、それを SQL テーブルに書き込む方法をいくつか試しています。これは、エンタープライズ クラスのアプリケーションのごく一部に過ぎず、率直に言って、そのほとんどは私の頭の中にあります。私が問題を抱えている方法は、2 つの FoxPro テーブルを取得し、それらをデータセットに配置します。最初のテーブルは問題ありませんが、2 番目のテーブルは空になり続けます。これが私のコードです(コードの後に​​詳細があります):

public DataSet GetFoxProDelinquencyData()
    {
        DataSet bothDlqTables = new DataSet();
        DataSet DlqData;
        string selectQuery = "SELECT * FROM MasterDlqTable";

        try
        {
            DlqData = _foxProServiceAccess.ExecuteFoxProDataSet(selectQuery, 1);
        }
        catch (Exception exceptionToHandle)
        {
            throw ExceptionHelper.HandleFoxProException(exceptionToHandle,
                            "Failed to get data from FoxPro");
        }

        DlqData.Tables[0].TableName = "Master";
        bothDlqTables.Tables.Add(DlqData.Tables[0].Copy());
        string delqnum = Convert.ToString(bothDlqTables.Tables[0].Rows[0]["delqnum"]);
        selectQuery = String.Format("SELECT * FROM rvdlqhst_txps WHERE delqnum = '{0}'", delqnum);

        try
        {
            DlqData = _foxProServiceAccess.ExecuteFoxProDataSet(selectQuery, 1);
        }
        catch (Exception exceptionToHandle)
        {
            throw ExceptionHelper.HandleFoxProException(exceptionToHandle,
                            "Failed to get data from FoxPro");
        }

        DlqData.Tables[0].TableName = "History";
        bothDlqTables.Tables.Add(DlqData.Tables[0].Copy());
        return bothDlqTables;
    }

したがって、デバッグ中に両方の DlqTables の内容を最後に戻る直前に見ると、Master テーブルは完璧で、History テーブルには FoxPro と同等の正しい列がありますが、データはありません。DlqData データセットと同じです。delqnum 文字列には 000210 が含まれており、dB 担当者は、FoxPro テーブルにその延滞番号のレコードが確実に含まれていることを確認しています。彼が走るとき

SELECT * FROM rvdlqhst_txps WHERE delqnum = '000210'

データベース ビューア内から、彼は結果を取得します。その SELECT ステートメントを string.format コマンドの代わりに文字列としてハードコーディングしようとしましたが、それでも同じ空のテーブルが得られます。助言がありますか?

更新:次の最初のクエリでも断続的なエラーが発生します:

net.tcp://rdsfoxproqa.alatax.com/FoxProService_Dist に接続できませんでした。接続の試行は、00:00:01.0625340 の期間継続しました。TCP エラー コード 10061: ターゲット マシンがアクティブに拒否したため、接続できませんでした 172.19.0.105:808。

時々発生しますが、30 分ほど待ってからもう一度試してみると、クエリが機能することがよくあります。これは関係ないと思いますが、何が原因なのかわからないので、知りたいです。

4

1 に答える 1

1

DaveB の回答が役に立たない場合: WHERE 句を完全に削除すると、データが得られますか? それは問題の原因を見つけるのに役立つかもしれません。

于 2012-08-10T08:30:13.997 に答える