Показать сообщение отдельно
Старый 08.11.2007, 19:30   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Jab Straight Посмотреть сообщение
А вот как организовать 1) я не совсем представляю, что, просто найти нужные записи и удалять в цикле пока не вылезет исключение? Вроде метод Found не отражает удаление, хотя я могу и ошибаться?
Да это просто аналог такой конструкции

X++:
select salesLine where salesLine.SalesId == salesId;
while (salesLine)
{
	salesLine.delete();
	next salesLine;
}
В терминах коннекторов: через метод IAxapta::ExecuteStmt() получаем объект IAxaptaRecord(). Метод IAxaptaRecord::Found() определяет условие выхода из цикла, а переход к следующей записи выборки осуществляется через метод IAxaptaRecord::next().

Собственно в Help это все подробно описано. Вот несколько подправленный пример из Help

Example (Visual Basic)
PHP код:
Dim Axapta As Object

Dim MyRecord 
As Object

Set Axapta 
CreateObject("AxaptaCOMConnector.Axapta")
Axapta.Logon

‘ create an Axapta record

Set MyRecord 
Axapta.CreateRecord("MyTable")

‘ select a record

MyRecord
.ExecuteStmt "select * from %1 where %1.Name == ‘MyName’"

While MyRecord.Found

  MyRecord
.Call("Delete")

  
‘ get the next record
  MyRecord
.Next

Wend