2016-04-18 5 views
0

私はQBApiWrap.QuickbaseApiWrapper.DoQueryをC#で使用してテーブルからレコードを取得しています。以前は正常に動作していました。今、レコード数が30,000に増加していると私は、次のエラーを取得しています:レポートの最大バイト数を超過QuickbaseでAPI do_queryを使用しているときにエラーが発生しました

Errcode : 75

Errtext : Report too large

Errdetails : Maximum number of bytes in report exceeded

私は1つのデータセット内のすべてのレコードを取得できますか?

は、私は方法の下で照会しています:

 DataSet dsEmployee = My_Integration.QBApiWrap.QuickbaseApiWrapper.DoQuery(dbIdEmployee, ticket, "","3.6.7.8.21.15"); 

答えて

0

Quickbaseはあなたのクエリが超過している単一の応答の大きさの記録の制限があります。このエラーを回避するには、クエリによって返されるレコードの数を減らす必要があります。実際にプログラムで返されたレコードをすべて使用していない場合は、使用していないレコードを除外するようにクエリを構造化する必要があります。実際には、そのテーブルのすべてのレコードが必要な場合は、それらをバッチでダウンロードしてからデータセットをマージする必要があります。

残念ながら、私は構文を助けることはできませんが、バッチでレコードをダウンロードするには、API_GetSchemaをテーブルのDBIDに使用して次のレコードID(table.original.next_record_id) 。この番号は、作成される次のレコードのレコードIDとなります。つまり、あなたのレコードIDはすべてその番号よりも小さいことが分かります。 0の下限と20,000の上限を使用すると、レコードIDが下限より大きく、上限よりも小さいレコードを照会することができます。結果を既存のデータセットとマージし、両方の境界を20,000ずつ増やし、下限が次のレコードID番号を超えるまで繰り返す。最後に、Quickbaseテーブルに合わせて1つのデータセットとコードを用意する必要があります。

関連する問題