RUS  ENG 

Алексей Демин (Автор тем)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Area_sph
 
Подскажите пожалуйста аналог area_sph из обычного запроса в sql запросе. Всю документацию перелистал, нашел только про Length_sph(), она то в sql запросе работает, а вот area_sph() нет.
Расчет надежности
 
Добрый день. Можете подсказать:
1)Как исходя из результата расчета надежности понять предполагаемое кол-во отказов?

2)По какой формуле для одного участка рассчитывается вероятность отказа, для какого интервала времени определяется вероятность отказа? Это год, час или tотоп.пер., которая указывается в окне настройки расчета?
DECLARE sql
 
Подскажите пожалуйста, почему не получается выполнить следующий запрос

DECLARE @t1 float, @gf float;
SET @t1 = 123;set @gf =[Расчетная нагрузка на отопление, Гкал/ч]/@t1;
sel ect
sys, @gf
fr om [тnev_term]
where typeid =3

Ответ:Type mismatch in expression.

Либо если писать


set @gf =[Расчетная нагрузка на отопление, Гкал/ч];

Ответ будет: Internal error: unpack value vt(1).
Вопрос по OutPut
 
Как сохранить в файл именно открытое [B]на текущий момент[/B] окно сообщений, без ввода в строку
Set Out = Zulu.OpenOutputChannel("Надежность") имени конкретного окна сообщений.
Вычисление площади поверхности земли. TIN
 
Доброго времени суток. История следующая: имеется TIN модель рельефа и слой в котором тысячи областей. Горная местность.
Требуется для каждой области вычислить площадь поверхности земли. Как это делать в ручном режиме вполне понятно (Карта->Рельеф->Площадь, объем). Но проблема в том, что каждую область обводить контуром ("задать регион") не хватит времени. В руководстве нужной функции я не нашел. Можете подсказать как тут можно ускорить процесс?
Bulk load data conversion error
 
Версия клиента 8.0.0.8245u. У сервера аналогичная версия.

Добрый день. В руки попал слой, который при расчетах выдает следующую ошибку
Запись результатов по потребителям...
Не удалось сформировать временную таблицу.
Ошибка доступа к данным.
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 15, column 65 (F64).
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 14, column 65 (F64).
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 13, column 65 (F64).
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 12, column 65 (F64).
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 9, column 65 (F64).
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 8, column 65 (F64).
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 4, column 65 (F64).
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 2, column 65 (F64). (Код ошибки: 0x80040E14).
Запись результатов по объектам 'Узел'

База данных SQLServer. Дополнительных таблиц не привязано. Имеются дополнительные справочники.


Ссылается на поле 64 "Hcirc" "Потери напора в системе ГВС, м", с ним ничего подозрительного не обнаружили.


В чем может быть дело?
Журнал потребителей
 
Добрый день. Имеется слой инженерной сети, потребители в котором представляют из себя отдельных абонентов, а не тепловые вводы в здание. Т.е визуально это выглядит как "куст потребителей".

https://imgur.com/tcMRitd

Задача следующая: для проведения адекватных расчетов требуется заменить каждый такой "куст" на отдельный тепловой ввод, в котором будут учтены нагрузки абонентов, НО при этом, учитывая интересы инвентаризации, не удалять и не терять информацию данных абонентов.


В данный момент у нас имеется 2 решения:
1) Просто отделить абонентов от сети, чтобы они не участвовали в расчете и "висели в воздухе" рядом со вводом.
2) Настроить базу данных потребителей следующим образом:
1. Создать дополнительную таблицу, SQLserver которая будет помимо sys иметь ID - счетчик (идентификатор), в этой таблице будет храниться информация об абонентах;
https://imgur.com/eos4A0G , https://imgur.com/AzScO0b
2. В запросе связываем таблицы sys -> sys связь много к одному. Поле связи с картой - sys основной таблицы.
https://imgur.com/feSxz6X
3. В последствии при просмотре информации потребителя появится некий журнал, в который можно будет занести всех абонентов. Т.е ставим 1 потребитель, который символизирует тепловой ввод в здание, в нем есть строки из второй таблицы (журнала), листая которые мы переключаемся между абонентами.

Нам предпочтителен второй вариант.
Вопросы:
1) Можно ли использовать второй вариант? Не возникнут ли в последствии конфликты?
2) Если второй вариант можно использовать - каким образом можно автоматически или полуавтоматически (с помощью запросов, либо макросов) просуммировать нагрузку всех абонентов теплового ввода и добавить ее в соответствующее расчетное поле?
Создание таблицы в БД слоя
 
Добрый день. Пытаюсь создать таблицу в БД.
Вот эта конструкция работает

public static void AddTable(string pathSloy)
       {
           try
           {
               var actLayer = new Layer();
               actLayer.Open(pathSloy);


               var zdb = new ZbDatabase();
               try
               {
                   //Для участков индекс 5
                   var baseName = actLayer.ObjectTypes.GetItemByIndex((int)MyZuluDBType.enItems.HeatSector).BaseName;
                   zdb.Open(baseName);

                   string tblName = "qq";
                   var source = zdb.Tables[0].Source;


                   var tbldef = new ZbTableDef();
                   tbldef.AddField("Sys", zbFieldType.zbftInteger, 0, 0, true);
                   tbldef.AddField("Descr", zbFieldType.zbftString, 50, 0, false);

                   IZbTableInfo tblinf;
                   bool res = zdb.CreateTableEx(source, tblName, tbldef, true, out tblinf);
                   if (res)
                       MessageBox.Show("Таблица добавлена");
                   else
                       MessageBox.Show("Ошибка добавления таблицы");
               }
               finally
               {
                   zdb.Save(0);
                   zdb.Close(true);
               }
           }
           catch (Exception ex)
           {
               MessageBox.Show("Сбой - " + ex.Message);
           }

       }


А вот эта почему то не работает. Хотя вроде бы как все тоже самое, не могу понять, что тут может быть не так. Подскажите пожалуйста.

' ActiveX enumeration values definitions start (do not change!)
Const zbftFloat = 6
Const zbftString = 1
Const zbftInteger = 3
' ActiveX enumeration values definitions end


Sub avar
Set Out = Zulu.OpenOutputChannel("")
Out.Clear
Out.Put "Start" + CHR(10)
Set L = CreateObject("ZuluLib.Layer")
L.Open "C:\Users\alexe\OneDrive\Рабочий стол\Сервис аварийности\testmacro\2.b00"
Set B = L.Bases
Set potr_db = B.ItemById(8).Open

tblName = "qqqq"

source = potr_db.Sources.Item(0).Name

Set tbldef = CreateObject("Zb.ZbTableDef")

tbldef.AddField "sys", zbftInteger, 0 , 6, True
tbldef.AddField "Descr", zbftString, 50, 0, false
   
potr_db.CreateTableEx source,TBLNAME,tbldef,True

potr_db.Save(0)
Out.Put "Finish" + CHR(10)
End Sub

Ошибка следующая "potr_db.CreateTableEx: несоответствие типа"
Макрос для добавления полей
 
Добрый день. Помогите пожалуйста. Нужен макрос VBScript, для добавления полей в существующую БД, слоя инженерной сети, и вывод их в запрос с пользовательскими названиями.
Изменено: Алексей Демин - 08.04.2022 16:20:35
Страницы: 1