RUS  ENG 

Копирование значение поля из одной базы данных в другую

Страницы: 1
RSS
Копирование значение поля из одной базы данных в другую, Необходимо скопировать значение поля номера колодца из одной базы данных в другую (существующую) базу данных инженерной сети
 
Добрый день!

Для реализации задачи написал макрос на Бейсике, однако он не запускается. Макрос снабдил комментариями. Подскажите пожалуйста, что я сделал неправильно.Файл макроса прилагаю. Спасибо!
 
Dave_Murey, добрый день!
Макрос не запускается, т.к. написан на Бейсике, а не на VBScript.
VBScript не поддерживает конструкции Dim и New, т.к. все переменные в VBScript нетипизированные.
Dim просто не используйте. Вместо New используйте функцию CreateObject() (см. пример создания объекта ZbDatabase https://www.politerm.com/zuludoc/zuluax/index.html#ZbDatabase_cls.html)

UPD:
В строках
dbsource.Open "Сети старые"
dbtarget.Open "Сети существующие"
в качестве аргумента функции Open нужно указывать путь к базе данных (см. https://www.politerm.com/zuludoc/zuluax/index.html#ZbDatabase_Open.html

Строка
if (dbtarget.TechnologNumber <> NULL) and (dbtarget.Sys=dbsource.Sys) THEN dbtarget.TechnologNumber = dbsource.TechnologNumber
написана ни синтаксически, ни алгоритмически неправильно. Поля таблицы "Sys" и "TechnologNumber" вовсе не являются свойствами объекта ZbDatabase. Далее, таблица содержит множество записей и присваивание значений конкретного поля таблицы по какому-то условию (в данном случае равенство значений Sys у записей в двух таблицах) лучше выполнить через запрос SQL.
Изменено: Дмитрий Озеров - 19.11.2023 22:41:03
 
Добрый вечер, Дмитрий!

Большое Вам спасибо за оперативный и лаконичный ответ!
Согласно Вашим замечаниям, я внес соответствующие коррективы кроме последней строчки, находящейся в цикле, которая

по своему значению является определяющей в решении данной задачи. Задача состоит в копировании значений технологических номеров колодцев из одного слоя записи в другой слой записи.

Цитата
написал:
написана ни синтаксически, ни алгоритмически неправильно. Поля таблицы "Sys" и "TechnologNumber" вовсе не являются свойствами объекта ZbDatabase
Так как VBScript синтаксически отличается от Visual/Quick Basic`а, подскажите пожалуйста как реализовать это присваивание в

рамках этого макроса. С SQL-запросом не хочу связываться, так как не знаком с этим языком программирования. Поле Sys
использую как координатный признак для корректной идентификации полей в исходном классе и классе, предназначенном для записи значения технологического номера колодца.
Страницы: 1