Обновляет заданные поля базы данных значениями из текстового файла.
Visual Basic:
Function UpdateFromAscii(iDb ZbDatabase, AsciiFile As String, Fields) As Long
iDb - объект базы данных
AsciiFile - полное имя текстового файла, в котором указаны ключи объектов, для которых производится обновление, а также обновляемые значения для каждого ключа.
Fields - набор полей. Может быть задан как
а) строки, разделенные символом с кодом ASCII 10.
б) массивом строк.
в) массивом номеров полей.
г) указателем на первый элемент массива, тогда необходимо задать параметр Count - число элементов массива.
Метод возвращает объект ZbDatabase.
'********************************************************* 'Процедура пакетного обновления записей через ASCII файл '********************************************************* Sub BeginEndFromASCII 'Объект для вывода в окно сообщений Set Out = Zulu.OpenOutputChannel("") 'Очищаем окно сообщений Out.Clear 'Фиксируем начало процесса Out.Put "Start" + CHR(10) 'Создаем объект для работы с файлами Set fc = CreateObject("Scripting.FileSystemObject") 'Открываем (создаем) файл на запись в формате UNICODE Set File = fc.OpenTextFile("c:\temp\BeginEndFromASCII.tmp",ForWriting, true, TristateTrue) 'Получаем активный слой текущей карты Set L = Zulu.ActiveMapDoc.Layers.Active 'Создаем объект для базы данных Set db = CreateObject("Zb.ZbDatabase") 'Открываем базыу данных для типа с ID=2 db.Open L.ObjectTypes.Item(2).BaseName 'Получаем линейные объекты сети Set NWObjects = L.NetworkObjects(eNetworkArcs) 'По всем участкам сети For i = 1 To NWObjects.Count 'Получаем i-й участок Set NWObject = NWObjects.Item(i) 'Создаем строку для текущего участка через запятую ID участка, ID начального и ID конечного узла S = Cstr(NWObject.Key) + ",""" + CStr(NWObject.KeyBegin) + "人民共和"",""" + CStr(NWObject.KeyEnd) + "고려""" 'Записываем строку в файл File.WriteLine(S) Next 'Закрываем файл File.Close 'Запмсываем данные ASCII файла в указанные поля базы данных для указанных в файле ID L.UpdateFromAscii db, "c:\temp\BeginEndFromASCII.tmp", "Begin_uch" + CHR(10) + "End_Uch" 'Фиксируем завершение процесс процесса Out.Put "Finish" + CHR(10) MsgBox "Finish" End Sub