Manipulating AF Tables programmatically

Discussion created by AlistairFrith on Mar 16, 2011
Latest reply on Mar 16, 2011 by philco

I am trying to implement programmatic access to a Table in the AF library.


I have a table called [User Settings] with columns called [User ID], [KVA Upper] and [KVA Lower]. User ID is a string that is supposed to be the ID of the connecting user and the other 2 are numeric fields.


I have been trying to update this using:

    AFTable t = myDatabase.Tables[tableName];

    t.Table.LoadDataRow(values, true);

 The  problem is that, because there are no key fields, if I try to change any of the numeric values, it creates a new row instead of updating the existing row. To use LoadDataRow, I think there are 2 options:

  • I need the [User ID] field to be the primary key but I can't see anywhere in AF System Explorer to set that.
  • Otherwise I will need to go through the table row by row to find the one with the matching User ID and then change that row but I can't see anything in the DataTable class to enable me to do that either!

I realise that dataTables are not OSI specific and I have been looking at which is not helping! Can anyone give me some pointers?


Also, to get the current connection, I have been using

    PISystem mySystem;
    mySystem = af[ServerName];
    string username = mySystem.ConnectionInfo.AccountName

but AccountName is blank. How should I be getting the user credentials?


--- Alistair.