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 分ほど待ってからもう一度試してみると、クエリが機能することがよくあります。これは関係ないと思いますが、何が原因なのかわからないので、知りたいです。