ReadObject
ODBPPLib.IODBPP.ReadObject finds an object matching the search values, reads the object into the table's buffers and locks the object, this operation does not log or back-up the object.DatabaseObject ReadObject ( uint tableId, uint mode, uint index, object key, );
Parameters
| tableId | The table Id defining the table's handle. |
| mode | Valid mode operations only. |
| index | The index value, 0 for object ID hash index, 1 for the first defined index. |
| key | The key value used in any find comparison. |
Return Values
ReadObject returns the DatabaseObject with the newly found object's values.Remarks
Warning: Division by zero in /home/dclarke/public_html/content/Documentation/ODBPPLib/ReadObject.php on line 59
- ReadObject can be used before DeleteObject or RewriteObject to enable 2-phased commit protocols.
- ReadObject will attempt to lock twenty times longer if the object is above the transaction's high water mark, if the object is below the mark than ReadObject will return an error if unable to gain object lock.
- ReadObject will allow the operation of ODBPP.NO_LOCK if the object is un-important to the finial results of the transaction and locking would only block other transactions from completing.
- ReadObject will allow the operation of ODBPP.NO_WAIT and
Example Use
- C#
public static uint FIRST_TABLE = 1;
private void button1_Click(object sender, EventArgs e)
try{
ODBPPLib.ODBPP odbpp = new ODBPPLib.ODBPP();
odbpp.OpenDatabase("C:\\My\\Database\\Control\\File.odc");
odbpp.BeginTransaction(odbpp.SHARED, 60000);
odbpp.OpenTable(FIRST_TABLE);
uint objectId = 1;
result = odbpp.ReadObject(FIRST_TABLE, odbpp.GREATER_EQUALTO, 0, objectId);
if(result != null && result.readField("First") == 123)
{
MessageBox.Show("Found Object with second value as "+result.readField(1));
}
}
catch (Exception e1)
{
MessageBox.Show(e1.Message);
}
}

