| | | StrataFrame Beginner
       
Group: Forum Members Last Login: 11/16/2006 1:23:18 PM Posts: 40, Visits: 85 |
| When creating a business object there are properties for the Insert, Update, and Delete sprocs. Am I correct in the following assumptions...- Save without a Primary Key sent through will use the Insert Sproc
- Save with a Primary Key sent through will use the Update Sproc
- DeleteByPrimaryKey will use the Delete Sproc
I looked through the help and the forum and hope that this isn't easily spelled out somewhere and I am missing it. Since my db will not have any reader/writer permissions, its important that I get this right from the start. Thanks! Clay |
| | | | 
StrataFrame Developer

Group: StrataFrame Developers Last Login: 12/09/2008 3:36:08 PM Posts: 2,686, Visits: 1,891 |
| | That's almost it... Save of a DataRow with an Added state uses the Insert sproc Save of a DataRow with a Modified state uses the Update sproc Save of a DataRow with a Deleted state uses the Delete sproc The business objects use DataTables internally, so we use the DataRowState from the rows within the table to determine which sproc to use.
www.bungie.net |
| | | | StrataFrame Beginner
       
Group: Forum Members Last Login: 11/16/2006 1:23:18 PM Posts: 40, Visits: 85 |
| | Thanks To change the state for Add and Edit I assume it o.Add and o.Edit respectively. What is the command for Delete? |
| | | | 
StrataFrame Developer

Group: StrataFrame Developers Last Login: 12/09/2008 3:36:08 PM Posts: 2,686, Visits: 1,891 |
| To add a new row, you can either call Add() or NewRow(). Add() calls NewRow() internally, but also changes the editing state of the business object to Adding, which updates the bound controls. To change a record to Modified, you can call Edit(), or just set one of the field properties, which will change the data within the current row, and the row will automatically change state to Modified. To delete a row, you can call DeleteCurrentRow() when you have the row you want to delete selected. To delete a row that is not in the business object, you can also call DeleteByPrimaryKey() and pass the pk of the record you want to delete.
www.bungie.net |
| | | | StrataFrame Beginner
       
Group: Forum Members Last Login: 11/16/2006 1:23:18 PM Posts: 40, Visits: 85 |
| | Does DeleteByPrimaryKey use the sproc listed under DeleteStoredProcedureName or does the user have to have db_writer priveledges? |
| | | | 
StrataFrame Developer

Group: StrataFrame Developers Last Login: 12/09/2008 3:36:08 PM Posts: 2,686, Visits: 1,891 |
| It uses the sproc if the DeleteUsingStoredProcedure property is set to True, same as a Save() with Deleted rows.
www.bungie.net |
| | | | StrataFrame Beginner
       
Group: Forum Members Last Login: 11/16/2006 1:23:18 PM Posts: 40, Visits: 85 |
| Ok...I think I have this straight.  To do an update would look something likethis - dim t as bo
- bo.fill... (I would fill my Primary Key)
- bo.edit
- bo.field1 = "X"
- bo.save()
To do an insert would be - dim t as bo
- bo.add
- bo.field1 = "Y"
- bo.save()
To do a delete would be - dim t as bo
- bo.deletebyprimarykey(z)
|
| | | | 
StrataFrame Developer

Group: StrataFrame Developers Last Login: 12/09/2008 3:36:08 PM Posts: 2,686, Visits: 1,891 |
| Yes, those will all work. However, the semantics might be a little different. When you have a UI and controls bound to a business object, you usually use Add(), Edit(), and DeleteCurrentRow(). However, if you're just modifying records programmatically, you can use NewRow(), [nothing] (since you can just change fields without calling Edit()) and DeleteByPrimaryKey as they are slightly faster since they circumvent the UI.
www.bungie.net |
| | | | StrataFrame Beginner
       
Group: Forum Members Last Login: 11/16/2006 1:23:18 PM Posts: 40, Visits: 85 |
| | | | |
|