0

このコードの何が問題になっていますか。新しいシリアル番号を挿入する前に、データベースに使用可能なレコードがあるかどうかを確認しています。使用可能かどうかに関係なくレコードを入力すると、エラーメッセージがスローされます。

「式が無効です」。(PowerBuilderClassic12.5およびSQLServer2008)

If This.GetColumnName() = "serial_No" Then
 long ll_serial
    ll_serial=dw_newrecord.find(data, 1, dw_newrecord.rowcount())
    if ll_serial>0 then
    messagebox("validation error", "The record already exists")
    return 1
end if
End If
4

1 に答える 1

1

data式に構文エラーがある可能性があります。引用符の欠落など、誤った形式のコードである可能性があります。または、列名が正しくない可能性があります。

フィルタの調整や式の検索に役立てるために、[行]/[フィルタ]メニューのデータウィンドウデザイン画面でテストできます。

長期的なコーディング設計のためのより良い解決策は、Datawindow Debug Machine(私の同僚によって作成された)をプロジェクトに統合することです。これは、データウィンドウでの動的オブジェクトの作成/変更のためだけでなく、検索、フィルタリングのためにデータウィンドウ式のプロトタイプを作成するための貴重なツールです。また、プロジェクトのデータウィンドウの祖先と正しくインターフェイスしている間は、フィルターを使用して、ここのような式のエラーを見つけることができます。

編集:RealHowToが気づいたように、ツールが更新されました。これが現在の最新バージョンです(ただし、更新されたデモスクリーンキャストはありません)。

于 2012-08-25T10:44:13.770 に答える