0

ログメッセージ用のデータベーステーブルがあり、いつでも新しい行を挿入できます。それらをグリッドで表示したいので、下にスクロールすると、このテーブル(サーバー側)からさらに行を要求したいのですが、新しく追加された行の影響を受けません。グリッド全体を更新した場合にのみ、新しい行が表示される必要があります。

JDBCを使用して範囲(from、to)の行を要求する方法がわかりません。これを行うための移植可能な(異なるデータベース間での)SQLクエリはないと思いますか?(私はMYSQLを使用しています)

このテーブルの最初のページを読んだ後、ログテーブルからクライアント側に最大IDを送信し、その後、SQLのパラメーターとしてこの最大IDを使用して新しい行を要求する必要があると思います(WHERE id <= MAXID)が、そうではありませんこのパラメーターをサーバーからクライアントに渡し、RestDateSourceを使用して戻す方法を確認してください。

どうすればこれを作ることができるか、もっと良いアイデアはありますか?

PS私はLGPLSmartGWTバージョンを使用しており、サーバー側に独自のサーブレットを使用しています。

4

2 に答える 2

1

これが私がすることです。各行に増加する番号のIDまたはタイムスタンプがあると思います。

データのクエリを開始する前に、Webサービスを呼び出して現在のIDをクエリします(たとえば、最後に挿入された行は12345です)。

次に、「rowId<=12345」というCriteriaオブジェクトをデータソースに追加します。この時点で、グリッドを自由に使用できます。新しい行が自動的に除外されるため、ページング、並べ替えなどが自動的に機能します。

(または、デフォルトのRESTdataSourceではなくパーソナライズされたデータソースを使用する場合は、基本的に、Criteriaを明示的に使用せずに同じことを行います)。

于 2010-10-19T08:42:43.817 に答える
0

SmartGWT Pro以降は、これを自動的に実行します。Proを使用したくない場合でも、評価(smartclient.com/builds)をダウンロードして、SQLクエリがログに記録されるサーバー側コンソールを監視できます。

于 2010-10-05T19:03:42.157 に答える