Изменяет структуру таблицы (реструктурирует таблицу).
Visual Basic:
Function AlterTable([Source], TableName As String, TableDef AsIZbTableDef) As Boolean
Source - источник таблицы (необязательный параметр). Может быть объектом IZbSourceInfo, либо содержать строку - имя источника данных, либо пусто.
TableName - имя таблицы. Если параметр Source пуст, TableName должно содержать полный путь к таблице.
TableDef - объект IZbTableDef, описывающий структуру таблицы.
Метод позволяет изменить структуру таблицы. Измененная структура таблицы задается объектом IZbTableDef. Свойство FieldIndex у объектов IZbFieldDef в списке полей определяет, берется ли это поле из имеющейся структуры таблицы или добавляется как новое. Для имеющихся полей FieldIndex - номер поля начиная с единицы, для новых полей - 0.
Те же поля в существующей таблице, для которых не нашлось соответствующего индекса в новой структуре, будут удалены.
В случае успеха метод возвращает True, иначе False. Свойства LastError и LastErrorString содержат информацию об ошибке.
ВАЖНО: При выполнении метода с объектом TableDef, в котором у полей не прописаны индексы FieldIndex, все поля старой таблицы будут удалены, т.е. вся таблица целиком будет удалена и на ее месте будет создана новая с новой структурой.
Рекомендуемый порядок изменение структуры таблицы приведен на примере ниже:
'Пример Visual Basic Dim TableDef As IZbTableDef 'Получаем текущую структуру таблицы '(свойство FieldIndex у всех полей прописано) TableDef = Db.GetTableDef(Source, TableName) 'Добавляем новое поле TableDef.AddField "NewField", zbftInteger, 0, 0, False 'Удаляем старое поле TableDef.DeleteField(5) 'Изменяем поле TableDef.FieldName(4) = "NewFieldName" 'Выполняем реструктуризацию Db.AlterTable Source, TableName, TableDef