Algumas vezes é necessário se fazer um select em uma tabela tendo em mãos apenas o tableId, para isso, a solução abaixo atende bem.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public Common findRecord(TableId _tableId, RecId _recId, Boolean _forUpdate = false) { Common common; DictTable dictTable; ; dictTable = new DictTable(_tableId); common = dictTable.makeRecord(); common.selectForUpdate(_forUpdate); select common where common.RecId == _recId; return common; } |
Se você quiser, você pode até mesmo atualizar campos neste registro. Você pode acessar/editar estes campos usando seus nomes ou fieldNum. O método seguinte irá atualizar um campo específico na tabela.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public void updateValue(TableId _tableId, RecId _recId, str _field, AnyType _value) { Common common; Int fieldId; ; ttsbegin; common = findRecord(_tableId, _recId, true); fieldId = fieldname2id(_tableId,_field); if (fieldId && _value) { common.(fieldId) = _value; common.update(); } ttscommit; } |
[]s
Pichler
Fonte: http://www.doens.be/2009/07/select-a-record-from-a-table-when-you-only-have-the-tableid/
2 Responses
André dos R. Santos
28|Aug|2009 1Pichler meu querido, tem uma falhazinha de tradução no meio do post…
Abraços!!!
Ricardo Pichler
30|Aug|2009 2aff, obrigado meu bem!
Leave a reply