'test'という名前のテーブルがあり、その中に、、、という名前test_id
の3つの列があるtest_name
としtest_age
ます。呼び出された取得引数を使用して:al_test_id
、ユーザーにIDを挿入し、データベースで対応するIDエントリを検索し、見つかった場合はそれをユーザーに表示するように求めました。ここで、エントリが見つからない場合は、ユーザーが入力したIDを取得引数として使用して新しい行を挿入できるようにします。
どうやってやるの?
'test'という名前のテーブルがあり、その中に、、、という名前test_id
の3つの列があるtest_name
としtest_age
ます。呼び出された取得引数を使用して:al_test_id
、ユーザーにIDを挿入し、データベースで対応するIDエントリを検索し、見つかった場合はそれをユーザーに表示するように求めました。ここで、エントリが見つからない場合は、ユーザーが入力したIDを取得引数として使用して新しい行を挿入できるようにします。
どうやってやるの?
したがって、この問題には多くの解決策があります。これが1つです。
ユーザーが検索を開始したときに発生するイベントの場合(ii_TestIDはインスタンス変数であり、他の変数宣言はローカルであり、ユーザーに委ねられていることに注意してください)。
ii_TestID = Integer (sle_SearchTest.Text)
ll_RowCount = dw_Test.Retrieve (ii_TestID)
IF ll_RowCount = 0 THEN dw_Test.InsertRow(0)
UIに新しいテスト結果を追加するためのボタンがないと仮定するので、一度に1つだけ処理します。保存するイベントの場合:
li_ID = dw_Test.GetItemNumber (1, "test_id")
IF IsNull (li_ID) OR li_ID = 0 THEN dw_Test.SetItem (1, "test_id", ii_TestID)
dw_Test.Update()
test_idの設定を最後まで残しておくのはなぜですか?したがって、ウィンドウのCloseQueryイベントで次のようにコーディングできます。
IF dw_Test.ModifiedCount() > 0 or dw_Test.DeletedCount() > 0 THEN
CHOOSE CASE MessageBox ("Huh?", "Would you like to save your changes before exiting?", Question!, YesNoCancel!)
CASE 1
EVENT ue_Save()
CASE 2
// do nothing
CASE 3
RETURN 1
END CHOOSE
END IF
InsertRow()の直後にtest_idを変更した場合、ユーザーがまだ何もしていなくても、ModifiedCount()は行を変更済みとしてすぐに登録します。何もしていないときに変更を保存するようにコンピューターに促されることほど迷惑なことはありません。
幸運を、
テリー。