Assuming you are using the Command object from the OTA API, is the user making the connection through the API a member of the TDAdmin group for the project?
Yes I'm using command object from the OTA API .
Yes I'm very sure that the user connecting thjrough the API is member of TDAdmin group. As I said earlier the same user of TDAdmin can execute a delete query against the same table using command object from the OTA API.
Here is the piece of code which is used to update the table.
private void moveLock(IConnection qcc, String artifactId, boolean isDefect) { int newLockId = -75 String sql = String .format("UPDATE LOCKS SET LK_OBJECT_KEY='%s' WHERE LK_OBJECT_KEY='%s' AND LK_OBJECT_TYPE='%s'", newLockId, artifactId, artifactTypeString(isDefect)); IRecordSet rs = null; try { rs = qcc.executeSQL(sql); } finally { if (rs != null) { rs.safeRelease(); rs = null; } } } public IRecordSet executeSQL(String sql) { ICommand command = null; try { command = getCommand(); command.setCommandText(sql); IRecordSet rs = command.execute(); return rs; } finally { command = null; } } public ICommand getCommand() { if (command == null) { command = new Command(getPropertyAsComponent("Command")); } return command; } public IRecordSet execute() { Variant rsv = Dispatch.call(this, "Execute"); return new RecordSet(rsv.getDispatch()); } public void setCommandText(String cmd) { setProperty("CommandText", cmd); }