DataWindow INSERT statement

When DisableBind is set to 0 (using bind variables), and if the application user inserts a new row in the DataWindow, the SQL INSERT statement generated by PowerServer includes all updatable columns, even those without explicitly set values.

When DisableBind is set to 1 (not using bind variables), and if the application user inserts a new row in the DataWindow, the SQL INSERT statement generated by PowerServer only includes updatable columns with explicitly set values, ignoring columns without an explicit value.

For example, if a table named Order_T contains three columns: Order_ID, Order_Date, & Customer_ID, and when the user inserts a new row and sets the value for the first two columns Order_ID & Order_Date:

  • When inserting a new row with DisableBind = 1

    • PowerBuilder does not use bind variables. Instead, it directly passes the inserted values. The INSERT statement would appear as follows:

      Insert into Order_T(Order_ID, Order_Date) 
      Values (1, '2024-04-12');
    • PowerServer ignores the value of DisableBind, and always uses bind variables.

      The INSERT statement includes the first two columns: Order_ID & Order_Date whose values have been explicitly set, and does not include the Customer_ID column because it has no explicit value:

      Insert into Order_T(Order_ID, Order_Date)
      Values (@pp0, @ppl);
  • When inserting a new row with DisableBind = 0

    Both PowerBuilder and PowerServer use bind variables.

    The INSERT statement includes all three columns:

    Insert into Order_T(Order_ID, Order_Date, Customer_ID)
    Values (@pp0, @ppl, @pp2);