SetSQLSelect
method (DataWindows)
Description
Specifies the SQL SELECT statement for a DataWindow control or
DataStore.
Applies to
|
DataWindow type |
Method applies to |
|---|---|
|
PowerBuilder |
DataWindow control, DataWindowChild object, DataStore |
Syntax
PowerBuilder
|
1 |
integer dwcontrol.SetSQLSelect ( string statement ) |
|
Argument |
Description |
|---|---|
|
dwcontrol |
The name of the DataWindow control, DataStore, or |
|
statement |
A string whose value is the SELECT statement for the |
Return value
SetSQLSelect returns 1 if it succeeds and -1 if the SELECT statement
cannot be changed. If any argument’s value is null, in PowerBuilder and
JavaScript the method returns null.
Usage
Use SetSQLSelect to dynamically change the SQL SELECT statement for
a DataWindow object in a script.
If the DataWindow is updatable, PowerBuilder validates the
SELECT statement against the database and DataWindow column specifications
when you call the SetSQLSelect method. Each column in the
SQL SELECT statement must match the column type in the DataWindow object.
The statement is validated only if the DataWindow object is
updatable.
You must use the SetTrans or SetTransObject method to set the
transaction object before the SetSQLSelect method will execute.
If the new SELECT statement has a different table name in the
FROM clause and the DataWindow object is updatable, then PowerBuilder must
change the update information for the DataWindow object. PowerBuilder
assumes the key columns are in the same positions as in the original
definition. The following conditions would make the DataWindow not
updatable:
-
There is more than one table in the FROM clause
-
A DataWindow update column is a computed column in the
SELECT statement
If changing the SELECT statement makes the DataWindow object not
updatable, the DataWindow control cannot execute an Update method call for
the DataWindow object in the future.
Limitations to using SetSQLSelect
Use SetSQLSelect only if the data source for the DataWindow object
is a SQL SELECT statement without retrieval arguments and you want
PowerBuilder to modify the update information for the DataWindow
object:
|
1 |
dw_1.Modify("DataWindow.Table.Select='select...'") |
Modify does not verify the SELECT statement or change the update
information, so it is faster but more susceptible to user error.
Although you can use Modify when arguments are involved, this is not
recommended because of the lack of verification.
Examples
If the current SELECT statement for dw_emp retrieves no rows, the
following statements replace it with the syntax in NewSyn:
|
1 2 3 4 5 6 7 8 9 10 11 |
string OldSyn, NewSyn OldSyn = & 'SELECT employee.EMP_Name FROM employee' & + 'WHERE salary < 70000' NewSyn = 'SELECT employee.EMP_Name FROM employee' & + 'WHERE salary < 100000' IF dw_emp.Retrieve( ) = 0 THEN dw_emp.SetSQLSelect(NewSyn) dw_emp.Retrieve() END IF |
See also