PowerBuilder:使用数据窗口插入数据

时间:2010-06-16 05:29:52

标签: powerbuilder datawindow

假设我有一个名为'test'的表,其中有三列名为test_idtest_nametest_age。我使用了一个名为:al_test_id的检索参数来提示用户插入一个id并在数据库中搜索相应的id条目,如果找到,则将其显示给用户。现在,如果没有找到条目,那么我希望用户能够使用他/她输入的id作为检索参数来插入新行。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

因此,这个问题有很多解决方案。这是一个。

在用户启动搜索时触发的事件中(注意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中没有按钮来添加新的测试结果,因此我们将一次只处理一个。如果要保存:

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()也会立即将该行注册为已更改。没有比让计算机提示我保存我的更改更令人讨厌的事情。

祝你好运,

特里。