Using retrieval arguments

If you know which rows will be retrieved into the DataWindow object at runtime—that is, if you can fully specify the SELECT statement without having to provide a variable—you do not need to specify retrieval arguments.

Adding retrieval arguments

If you decide later that you need arguments, you can return to Visual SQL to define the arguments.

NoteDefining retrieval arguments in the DataWindow editor You can select View>Column Specifications from the menu bar. In the Column Specification view, a column of check boxes next to the columns in the data source lets you identify the columns users should be prompted for. This, like the Retrieval Arguments prompt, calls the Retrieve method.

If you want the user to be prompted to identify which rows to retrieve, you can define retrieval arguments when defining the SQL SELECT statement. For example, consider these situations:

StepsTo define retrieval arguments:

  1. In Visual SQL, select Design>Retrieval Arguments from the menu bar.

  2. Enter a name and select a datatype for each argument.

    You can enter any valid SQL identifier for the argument name. The position number identifies the argument position in the Retrieve method you code to retrieve data into the DataWindow object.

  3. Click Add to define additional arguments as needed and click OK when done.

Specifying an array as a retrieval argument

You can specify an array of values as your retrieval argument. Choose the type of array from the Type drop-down list in the Specify Retrieval Arguments dialog box. You specify an array if you want to use the IN operator in your WHERE clause to retrieve rows that match one of a set of values. For example:

SELECT * from employee
WHERE dept_id IN (100, 200, 500)

retrieves all employees in department 100, 200, or 500. If you want your user to specify the list of departments to retrieve, you define the retrieval argument as a number array (such as 100, 200, 500).

In the code that does the retrieval, you declare an array and reference it in the Retrieve method., as in:

Integer x[]= new Integer[3];
x[0]=new Integer(100);
x[1]=new Integer(200);
x[2]=new Integer(500);
dw1.retrieve(x);

Sybase WorkSpace passes the appropriate comma-delimited list to the method (such as if x[0] = 100, x[1] = 200, and x[2] = 500).