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);