Using Arguments in a Record Update

This example uses an argument to select records from the AlphaSports.mdb customer table. We will filter the selected records using an argument for the bill_state_region field. In the Interactive window create the AlphaDAO objects that you will need.

dim conn as SQL::Connection

dim rs as SQL::ResultSet

dim args as SQL::Arguments

DIM other variables.

dim states_qry as C

dim state_list as C

dim state_choice as C

dim update_qry as C

dim review_qry as C

Open the connection.

? conn.open("{A5API=Access,FileName='C:\Program Files\a5v8\MDBFiles\Alphasports.mdb',UserName='Admin'}")

= .T.

Get a list of states.

states_qry = "SELECT DISTINCT bill_state_region FROM customer ORDER BY bill_state_region"

? conn.execute(states_qry)

= .T.

Convert the ResultSet into a CR-LF delimited string with the .ToString() method and present it to the user. [Picture]

state_list = conn.resultset.tostring()

state_choice = ui_get_list2("Select State", "", state_list, 1)

Create an argument to hold the state_choice value using the .ADD() method.

? args.add("state", state_choice)

= .T.

The email values will be calculated using the CONCATENATE() portability function, which will combine the firstname field, "@" symbol, and lastname field. To use a Portable SQL function, you must first set the .PortableSQLEnabled property to TRUE.

conn.PortableSQLEnabled = .t.

update_qry = "update customer set email = Concatenate(firstname, \"@\", lastname) where bill_state_region = :state"

conn.execute(update_qry, args)

= .T.

To view the results, execute a new query and preview the ResultSet. [Picture]

review_qry = "select firstname, lastname, bill_state_region, email from customer where bill_state_region = :state"

? conn.execute(review_qry, args)

= .T.

rs = conn.resultset

SQL_ResultSet_Preview(rs)

Note that these two sets of statements are equivalent.

rs = conn.resultset

SQL_ResultSet_Preview(rs)

SQL_ResultSet_Preview(conn.resultset)

Close the connection.

conn.close()

Supported By

Alpha Five Version 8 Enterprise Edition

Limitations

Desktop applications only.

See Also

Working with SQL Databases, SQL::Arguments Object