Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется / 25 сообщений из 63, страница 1 из 3
04.10.2018, 17:30
    #39713151
Yuki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Здравствуйте,
сразу извиняюсь за мой корявый русский.
У меня следущая проблема:
Мы используем на фирме FireBird 2.5.
Одна колонка в базе следущего типа: Kuerzel BLOB SUB_TYPE 1 SEGMENT SIZE 80
Если эта колонка привышет размер 64 КБ, и я делаю update строки из с#, то у меня программа выдает следущие ощибки:
автор Exception level #0
FirebirdSql.Data.Common.IscException("Error reading data from the connection.")
bei FirebirdSql.Data.Client.Managed.Version10.GdsTransaction.Rollback()
bei FirebirdSql.Data.Client.Managed.Version10.GdsTransaction.Dispose()
bei FirebirdSql.Data.FirebirdClient.FbTransaction.Dispose(Boolean disposing)
bei Mediaform.DBConnect.DataBaseConnect.DatabaseCommand.Dispose(Boolean disposing) in C:\BuildAgent\work\348af86f8fbebf2a\Mediaform.DBConnect\DBConnect.Command.cs:Zeile 102.
bei Mediaform.ScanTools.OrderManagerService.Database.DataTables.ORDER.Data.Save(Int32 ID) in C:\BuildAgent\work\19bfd854f2b11f13\OrderManagerService.CoreLib\Database\DataTable.ORDER.cs:Zeile 428.
bei Mediaform.ScanTools.OrderManagerService.OrderManager.sampleManagementWorker_RunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e) in C:\BuildAgent\work\19bfd854f2b11f13\Service\OrderManagerService.OrderManager.Process.cs:Zeile 372.
Exception level #1
System.IO.IOException("In die Übertragungsverbindung können keine Daten geschrieben werden: Eine bestehende Verbindung wurde softwaregesteuert
durch den Hostcomputer abgebrochen.")
bei System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
bei FirebirdSql.Data.Client.Managed.XdrStream.Flush()
bei FirebirdSql.Data.Client.Managed.Version10.GdsTransaction.Rollback()
Exception level #2
System.Net.Sockets.SocketException("Eine bestehende Verbindung wurde softwaregesteuert
durch den Hostcomputer abgebrochen")
bei System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
если я делаю INSERT или DELETE, то все замечательно, проблема только с UPDATE функцией.
Может ли мне здесь кто-то помочь, в чем может быть проблема?

Заранее спасибо
...
Рейтинг: 0 / 0
04.10.2018, 17:33
    #39713154
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Yukiв чем может быть проблема?

В реализации сетевого протокола .NET драйвера. Переходи на использование нативной библиотеки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.10.2018, 17:45
    #39713163
Yuki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Dimitry SibiryakovВ реализации сетевого протокола .NET драйвера. Переходи на использование нативной библиотеки.

какой плюс от нативной библиотеки? И почему сейчас не работает?
...
Рейтинг: 0 / 0
04.10.2018, 17:49
    #39713170
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Yukiкакой плюс от нативной библиотеки? И почему сейчас не работает?

Потому что сетевой протокол Firebird нетривиален и в нём есть пара мест, где рыбу
заворачивали. Поэтому с его эмуляцией Иржи не справился. Поэтому твоя программа не
работает. Нативная библиотека автоматически заворачивает рыбу в тех же местах, поэтому она
работает. Но это, конечно, не факт, что плюс. Возможно, тебя устраивают падения на ровном
месте. Возможно, ты огорчишься, если их не будет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.10.2018, 18:09
    #39713187
Yuki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Dimitry SibiryakovИржи

что это слово значит?

Проблема в том, что наши программа состоит из многих больших модулей и один компонент перевести на .NET Native не поличится. Нужно будет переводить весь нашей ведущей программный корпус. При этом некоторые компоненты написаны еще в Delphi. Это будет большой и трудоёмкий процесс, который возможно не захочет профинансировать начальство, если оно не увидеть от этого какой-то профит.
Это конечно круто описать о заварачевание рыбы, но мне бы больше помогло, в чем может быть конкретна проблема, где конкретно нужно мне искать и можно ли обойти проблему на данный момент при помощи с# -кода ...
Спасибо
...
Рейтинг: 0 / 0
04.10.2018, 18:13
    #39713190
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Yuki> что это слово значит?

Это слово значит имя разработчика.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.10.2018, 18:18
    #39713195
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Yuki,

попробуй описать свою проблему тут
https://groups.google.com/forum/#!forum/firebird-net-provider

Не забудь указать точную версию .net provider и Firebird (2.5 - не точная версия),
и фрагмент проблемного кода, вместе с DDL соответствующих объектов.
...
Рейтинг: 0 / 0
04.10.2018, 18:20
    #39713199
Yuki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
hvlad,
Спасибо, попробую.
...
Рейтинг: 0 / 0
04.10.2018, 18:24
    #39713204
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Yukiнаши программа состоит из многих больших модулей и один компонент перевести на .NET Native
не поличится. Нужно будет переводить весь нашей ведущей программный корпус.
Это будет большой и трудоёмкий процесс

Э-э-э... Изменить один параметр в строке подключения это "большой и трудоёмкий процесс"?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.10.2018, 18:38
    #39713213
Yuki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Dimitry SibiryakovЭ-э-э... Изменить один параметр в строке подключения это "большой и трудоёмкий процесс"?..

Похоже моего русского или моих знаний все таки недостаточно хватает, потому что я не поняла ответ.
...
Рейтинг: 0 / 0
04.10.2018, 22:03
    #39713259
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Yukiмоих знаний все таки недостаточно хватает

https://www.connectionstrings.com/firebird/
https://stackoverflow.com/questions/41980813/firebird-net-provider-and-embedded-server-3

Ключевые слова: ServerType=1; ClientLibrary="fbclient.dll"
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.10.2018, 00:06
    #39713281
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
YukiЕсли эта колонка привышет размер 64 КБ, и я делаю update строки из с#
В других компонентах обычно делается создание blobstream (а не передача в параметр именно строки), и запись в блоб идет уже через него (потому что для работы с blob в Firebird API есть специальные функции).
http://www.ibase.ru/ibx#blob
Тут, конечно, и как строка и как blob, но это пример, что в IBX работают оба варианта. В .Net, понятно, что-то может и не работать, DS уже объяснил.
...
Рейтинг: 0 / 0
05.10.2018, 00:20
    #39713284
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
kdvВ .Net, понятно, что-то может и не работать, DS уже объяснил.

Нет, вот как раз самую тупую ошибку - передачу блоба через литерал - я и не упомянул. Это
был бы перелёт даже для шарпея.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.10.2018, 10:12
    #39713386
Yuki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Dimitry Sibiryakov,
так выглядит мой ConnectionString
авторType=1
ConnectionString=pooling=false
Provider=FIREBIRD
Server=me-vmdbserver.mediaform.local
Port=3050
PortAlias=gds_db
Database=C:\Mediaform\data\SCANTOOLS.fdb
Username=sysdba
Password=masterkey
Role=

Dimitry SibiryakovНет, вот как раз самую тупую ошибку - передачу блоба через литерал - я и не упомянул. Это
был бы перелёт даже для шарпея.

вообще-то я ожидала что адаптер может с этим справиться.
я читаю из DataBase эту строку, обрабатываю ее и конечно пишу обратно. Для этого использую System.Data-oбъект. И да я не передаю строку обратно как string variable.
Если я сейчас это строку переведу в Byte Array, перед тем как я ее буду обновлять, может решить мою проблему?
...
Рейтинг: 0 / 0
05.10.2018, 10:19
    #39713391
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Yuki,

неужели в отладчике нельзя посмотреть что происходит?

Dimitry Sibiryakov,

про глупость с записью блоба как строкового литерала было с обновлением модели EF. Ну если это ещё и сюда воткнули, то это вообще ни в какие ворота не лезет. Вряд ли прям такие конкретные косяки есть в .NET провайдере.
...
Рейтинг: 0 / 0
05.10.2018, 10:24
    #39713394
Yuki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Симонов ДенисYuki,

неужели в отладчике нельзя посмотреть что происходит?

Dimitry Sibiryakov,

про глупость с записью блоба как строкового литерала было с обновлением модели EF. Ну если это ещё и сюда воткнули, то это вообще ни в какие ворота не лезет. Вряд ли прям такие конкретные косяки есть в .NET провайдере.

Конечно я продебажила до FireBird-компонента. Да, ничего не остаються как продебажить и сам FireBird компонент.
...
Рейтинг: 0 / 0
05.10.2018, 10:25
    #39713395
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Yuki,

именно. Исходник всё равно открыт. Там хотя бы ответ будет на причину ошибки
...
Рейтинг: 0 / 0
05.10.2018, 12:33
    #39713509
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Yukiтак выглядит мой ConnectionString

И чо? Я назвал два параметра, которые позволят использовать нативную клиентскую библиотеку
Firebird. Как сейчас выглядит твоя строка подключения - мне совершенно всё равно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.10.2018, 12:55
    #39713534
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Симонов ДенисТам хотя бы ответ будет на причину ошибки

Ответ ясен уже из первого поста: провайдер посылает серверу страшный пакет, тот пугается и
в панике рвёт коннект. Это знание ничем аффтарше не поможет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.10.2018, 13:28
    #39713552
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Dimitry Sibiryakov,

да я про то чтобы посмотреть что именно за запрос посылается. Хотя бы в плане снять предположение о том, что блоб поле записано как литерал в тексте запроса.

Гы... как предположение попытка засунуть весь блоб в один сегмент.

Кстати сразу не понял увидел кусок на немецком подумал, что это пользовательская ошибка, а это просто Visual Studio перевод ошибок делает. Надо было на стек внимательней глянуть.
...
Рейтинг: 0 / 0
05.10.2018, 13:46
    #39713567
Yuki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Dimitry SibiryakovСимонов ДенисТам хотя бы ответ будет на причину ошибки

Ответ ясен уже из первого поста: провайдер посылает серверу страшный пакет, тот пугается и
в панике рвёт коннект. Это знание ничем аффтарше не поможет.

Во-первых, я не знаю, чем я вас могла обидеть, что вы со мной так общаетесь.
Не хотите помогать не помогайте и все, а грубить и иронизировать не надо.
А вопрос был, почему с Insert коммандой такой поток информации проходит. И провидер замечательно пишет в базу данных, а с Update ничего не получается.

Симонов ДенисServerType=1; ClientLibrary="fbclient.dll"
Это значит что я должна использовать embedded server, что в нашем случае невозможно, так как embedded server использует Superserver архитектуру. Superserver architectire не подходит под наш продукт.
...
Рейтинг: 0 / 0
05.10.2018, 13:54
    #39713574
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
YukiЭто значит что я должна использовать embedded server
у вас remote connection, с указанием имени сервера. Откуда тут embedded???
...
Рейтинг: 0 / 0
05.10.2018, 13:54
    #39713575
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
YukiВо-первых, я не знаю, чем я вас могла обидеть, что вы со мной так общаетесь.

Глупостью. Она меня всегда выводит из себя.

Yukiвопрос был, почему с Insert коммандой такой поток информации проходит. И
провидер замечательно пишет в базу данных, а с Update ничего не получается.
Ответ был дан: потому что провайдер неправильно формирует сетевой пакет.

YukiЭто значит что я должна использовать embedded server
Нет, не значит. Будет ли использован embedded режим или коннект к удалённому серверу
зависит от строки подключения (той, что получает клиентская библиотека, а не той, что вы
скармливаете провайдеру).

Прочитайте уже, наконец, Firebird Quick Start Guide и прочую документацию.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.10.2018, 14:06
    #39713583
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Yuki,

вы не того человека цитируете. Я вам этого не предлагал.
Обычно fbclient сам решает когда работать как embedded в зависимости от строки подключения. Но что там накрутил Иржи я не знаю.
Ты уже спросила там где посоветовал hvlad?

Dimitry Sibiryakov хоть и бывает груб, но зачастую полезные вещи говорит, не стоит на него обижаться. Просто надо пропускать некоторые слова мимо ушей и фильтровать полезное.
...
Рейтинг: 0 / 0
05.10.2018, 14:09
    #39713585
Yuki
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется
Симонов Денис,
Sorry не правильно процитировала.
Я не обижаюсь, просто очень странно мне.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FirebirdSQL.Data.FirebirdClient update строки размером более 64 КБ не выполняется / 25 сообщений из 63, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]