JurasskPark

Созданные ответы форума

Просмотр 15 сообщений - с 961 по 975 (из 1,003 всего)
  • Автор
    Сообщения
  • JurasskPark
    Участник

    Михаил, я конечно понимаю, что версия 5 и актуальная будет 6, я собственно тоже понял, что пока я только начал делать проект нужно переходить на 6. Но раз предыдущий автор темы не прислал, то пришлю я, т.к. я сегодня это обнаружил спустя 10 дней. 😀 У меня тоже MS SQL. 🙂

    Текущие данные

    Error Number:8023,State:1,Class:16

    2022-08-18 10:35:01 Невозможно добавить текущие данные в очередь. Максимальный размер очереди 1000 превышен

    2022-08-18 10:35:01 Невозможно добавить текущие данные в очередь. Максимальный размер очереди 1000 превышен

    2022-08-18 10:35:02 Невозможно добавить текущие данные в очередь. Максимальный размер очереди 1000 превышен

    2022-08-18 10:35:02 Невозможно добавить текущие данные в очередь. Максимальный размер очереди 1000 превышен

    2022-08-18 10:35:02 Ошибка при экспорте текущих данных:

    System.InvalidOperationException: This SqlTransaction has completed; it is no longer usable.

    at System.Data.SqlClient.SqlTransaction.ZombieCheck()

    at System.Data.SqlClient.SqlTransaction.Commit()

    at Scada.Server.Modules.DbExport.Exporter.ExportCurData()

    2022-08-18 10:35:02 Ошибка при экспорте среза по триггеру «Триггер на архивные данные»:

    System.Data.SqlClient.SqlException (0x80131904): The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 6 («@val»): The supplied value is not a valid instance of data type float. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision.

    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`
    1 wrapCloseInAction)

    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)

    at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)

    at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)

    at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)

    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)

    at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)

    at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()

    at Scada.Server.Modules.DbExport.Exporter.<ExportSnapshot>g__ExportDataPoint|42_0(Int32 cnlNum, <>c__DisplayClass42_0& , <>c__DisplayClass42_1& , <>c__DisplayClass42_2& )

    at Scada.Server.Modules.DbExport.Exporter.ExportSnapshot(Srez snapshot, DbTransaction trans, IEnumerable`1 dataTriggers)

    ClientConnectionId:4532edae-6378-4afe-9cd0-a4209948e44a

    Error Number:8023,State:1,Class:16

    Архивные данные

    2022-08-18 10:35:00 Ошибка при экспорте архивных данных:

    System.InvalidOperationException: This SqlTransaction has completed; it is no longer usable.

    at System.Data.SqlClient.SqlTransaction.ZombieCheck()

    at System.Data.SqlClient.SqlTransaction.Commit()

    at Scada.Server.Modules.DbExport.Exporter.ExportArcData()

    2022-08-18 10:35:01 Невозможно добавить текущие данные в очередь. Максимальный размер очереди 1000 превышен

    2022-08-18 10:35:01 Ошибка при экспорте среза по триггеру «Tриггер на текущие данные»:

    System.Data.SqlClient.SqlException (0x80131904): The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 6 («@val»): The supplied value is not a valid instance of data type float. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision.

    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)

    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)

    at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)

    at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)

    at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)

    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)

    at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)

    at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()

    at Scada.Server.Modules.DbExport.Exporter.<ExportSnapshot>g__ExportDataPoint|42_0(Int32 cnlNum, <>c__DisplayClass42_0& , <>c__DisplayClass42_1& , <>c__DisplayClass42_2& )

    at Scada.Server.Modules.DbExport.Exporter.ExportSnapshot(Srez snapshot, DbTransaction trans, IEnumerable`1 dataTriggers)

    ClientConnectionId:4532edae-6378-4afe-9cd0-a4209948e44a

    Error Number:8023,State:1,Class:16

    • Этот ответ был изменен 2 года, 11 месяцев назад от JurasskPark.
    в ответ на: Драйвер ODBC #24483
    JurasskPark
    Участник

    Я не против, т.к. это ваш драйвер на 95% )

    в ответ на: Драйвер ODBC #24462
    JurasskPark
    Участник

    * Драйвер KpDbImport уже существует. Ваш драйвер достаточно отличается от исходного, поэтому должен называться иначе.

    Теперь он называется KpDbImportPlus 😀
    Вроде всё поправил…
    https://github.com/JurasskPark/RapidScada_v5

    в ответ на: Драйвер ODBC #24448
    JurasskPark
    Участник

    Вроде удалил. Файлы bin и obj тоже. 🙂

    в ответ на: Драйвер ODBC #24446
    JurasskPark
    Участник

    https://github.com/JurasskPark/RapidScada_v5/tree/RapidScadav5/OpenKP

    Если не сложно, можете проверить и сказать всё правильно или что-то не так сделал?

    в ответ на: Драйвер ODBC #24394
    JurasskPark
    Участник

    http://jurasskpark.magicteam.net/tmp/KpDbImport_5.1.1.0_Source.zip

    Вернул назад в ссылках путь KpImport.
    Добавил поддержку Firebird.
    Type столбца теперь беру от reader.GetFieldType, но подстраховку оставил небольшую…

    https://www.youtube.com/watch?v=0pmoqQkmXyg

    P.S.

    Вы могли бы сделать в общем доступе инструкцию по драйверу и опубликовать ссылку здесь?

    Инструкцию по драйверу я напишу чуть позже… но вот хоть GitHub есть, но ни разу в нём не публиковал ничего… Надо сначала научиться. 🙂

    в ответ на: Драйвер ODBC #24393
    JurasskPark
    Участник

    Михаил, мне очень стыдно. Я сделал опасное допущение.
    Во-первых, я не ту версию выложил, там я путь DBImport случайно заменил на ODBC.
    В новой я исправил версии. Прошу прощения.
    В-вторых, я забыл добавить версию, где есть Firebird.
    В-третьих, способ, где я смотрю на свойства таблиц — работает для MS SQL.
    Я сейчас на виртуалке поставлю все СУБД, что в драйвере, все протестирую и тогда мне будет спокойно на душе. А пока стыдно :((( Прошу прощения!

    в ответ на: Rapid SCADA 6.х #24383
    JurasskPark
    Участник

    Идея 🙂 А помимо исторических данных — сделать выгрузку таблиц конфигурации в СУБД 🙂
    Сейчас (в 5 версии) же идёт выгрузка не названий, а номеров KP, поэтому приходиться выгружать DAT файлы конфигурации в CSV, а потом их вставлять в БД, чтобы представление понимало, что под номером какой КП находится… (ну это у меня :))

    • Этот ответ был изменен 2 года, 11 месяцев назад от JurasskPark.
    в ответ на: Драйвер ODBC #24370
    JurasskPark
    Участник

    Так я и написал инструкцию. Он в помощи драйвера.
    А так это ваше детище и вы лучше знаете как он работает и что умеет. 🙂

    в ответ на: Разработка модуля #24356
    JurasskPark
    Участник

    Добрый день, не подскажите, как лучше реализовать: написать свой модуль, который будет записывать результаты дорасчетных ТИ или можно через модуль импорт делать update.

    Извините за наглость, но мне кажется, что вам нужно получше объяснить с реальными примером зачем это делается.
    Например, может проще расписание повесить на SQL, а не кнопку. А может по 1 команде создавать временную таблицу и включать триггер на запись, второй командой отключать триггер. Вариантов много. 🙂 Лично я ничего не понял из вашей задачи. 🙂

    • Этот ответ был изменен 2 года, 11 месяцев назад от JurasskPark.
    в ответ на: Драйвер ODBC #24354
    JurasskPark
    Участник

    Доделал я драйвера. Можете читать код и офигевать от ужасного кода и писать, что так писать код нельзя. 😀
    https://jurasskpark.magicteam.net/tmp/KpDbImport_5.1.0.0_Source.zip

    Видео как это всё работает здесь:
    https://www.youtube.com/watch?v=antapADVLzM

    • Этот ответ был изменен 2 года, 11 месяцев назад от JurasskPark.
    в ответ на: Драйвер ODBC #24334
    JurasskPark
    Участник

    Ок. 1 участник — не записывать.
    Остались Михаила и Romiros мнение услышать. 🙂

    в ответ на: Драйвер ODBC #24332
    JurasskPark
    Участник

    Так значение есть. Нет времени у значения, чтобы архивный срез записать. 🙂

    в ответ на: Драйвер ODBC #24329
    JurasskPark
    Участник

    http://jurasskpark.magicteam.net/tmp/030.png
    http://jurasskpark.magicteam.net/tmp/031.png

    На практике столкнулся, когда DateTime была null. Обернул это в логи и try{} catch{}.
    Дайте совет… Когда название тега, значение есть, а времени нет… То что делать? Оставлять как есть, т.е. тег не будет записан, т.к. у среза не может быть время null или ставить текущую дату?

    в ответ на: Драйвер ODBC #24321
    JurasskPark
    Участник

    Михаил, вы только не ругайтесь, но я тупой и поэтому решил не выдумывать новый плагин, а изменил ваш. 🙂
    И кстати, после того как поработал немного в системе — я полностью согласен с Romiros, что экспорт в БД не нужна. Да и от расписания я отказался в виду бессмысленности…
    Пока драйвер я еще тестирую, баги есть, небольшие, гавно-код и лапшу я старался не писать…
    Короче, вот видео. 🙂
    https://www.youtube.com/watch?v=ib3CeeEe7lA

Просмотр 15 сообщений - с 961 по 975 (из 1,003 всего)