Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 44 45 46 47 48 49 50 51 52 [53]
 Re: FireDAC  [new]
ъъъъъ
Member

Откуда:
Сообщений: 2717
GoldMedium
Добрый день.
Уже замучался искать причину, очень надеюсь на вашу помощь.
Есть TFDConnection подключенное под SYSDBA. Подключение постоянно открыто, обращения к нему могут идти крайне неравномерно (каждые 5 сек. по таймеру или перерыв в несколько часов - зависит от работы пользователя).
Так вот раз в несколько дней после простоя в несколько часов при открытии датасета, подключенного к этому TFDConnection, выдаёт ошибку:
Error writing data to the connection.
send_packet/send

Хотя проверяется, конечно, что TFDConnection.Connected = True. И второй TFDConnection, подключенный с правами пользователя и который активно использовался, никогда соединения не рвёт и ошибок не выдаёт. Всё работает....
[/spoiler]


Такой же глюк ловлю при работе с FB 4.0 (самый свежий снапшот), но с библиотекой FIB+ 6.9.9.
То есть глюк, то нет. 20 раз нормально, 21й - плохо.

Аналогично, при работе ч/з IBExpert. При компиляции совсем простых запросов типа select count (*) from tabl.

Вот похожий баг: https://www.sql.ru/forum/1339397/razryv-konnekta-pri-kompilyacii
Дело в fb4.0, похоже. И отчёт в багтрекер не создать: нет устойчивого воспроизведения.
19 окт 21, 10:14    [22385371]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
AK-Shah
Member

Откуда:
Сообщений: 155
Коллеги, подскажите по такому вопросу. Вот создал соединение TDBGrid -> TDataSource -> FDQuery -> FDConnection. Параметрический запрос с параметром на 6 полей (тело запроса добавлял программно) работало на-ура. Но это был пробный шар (не всем легко и просто переехать с одного ЯП на другой), ввел полный запрос, добавил поля в грид - ругаеццо, мол не связан один-единственный параметр. Я его вижу, он есть, могу тип визуально ему задать и пр. Снес программное заполнение SQL-запроса, оставил только программное присваивание параметра - опять все как часы заработало. Спрошу у гуру - ЧЯДНТ?
Стеб приветствуется - с ним освоим быстрее и веселее. ;)

Еще ссылки на формы интересуют, на Фоксе это очень просто, как и свойства назначить. Может и на Делфях все просто, но пока тяжело понимать парадигму. Но разберемся, путь у нас такой.
23 окт 21, 01:03    [22387081]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67529
Блог
AK-Shah
ввел полный запрос, добавил поля в грид

Добавил (зафиксировал) колонки в гриде или добавил (зафиксировал) поля в датасете? Это разные вещи, первую нужно делать, а вторую в 99.9% случаев лучше не делать.

AK-Shah
Снес программное заполнение SQL-запроса, оставил только программное присваивание параметра - опять все как часы заработало. Спрошу у гуру - ЧЯДНТ?

Теперь всё правильно, так и надо. Программное заполнение SQL-запроса - в 99.9% случаев удел ламеров, в 0.1% случаев - необходимость очень редкой и специализированной задачи. Запрос заполняется в дизайн-тайме, параметр присваивается в ран-тайме. Всё правильно.

AK-Shah
Стеб приветствуется - с ним освоим быстрее и веселее. ;)
Еще ссылки на формы интересуют, на Фоксе это очень просто

Существует полно неплохой литературы, позволяющей освоить Delphi. Гугль наверняка выдаст кучу топиков, где такую называют и обсуждают. Я свой вклад не внесу, потому что книги 95-го года сейчас фиг найдёшь.
23 окт 21, 01:10    [22387082]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
AK-Shah
Member

Откуда:
Сообщений: 155
softwarer,

автор
Программное заполнение SQL-запроса - в 99.9% случаев удел ламеров, в 0.1% случаев - необходимость очень редкой и специализированной задачи.


Коллега, не соглашусь. Я в СУБД не вчера, динамические запросы ОЧЕНЬ часто надо. Да, пока параметризованным вполне выкручиваюсь. Ты бы видел, какие конструкции на Фоксе пишутся БЕЗ приседаний? Да ладно, я в теме Делфи, я УЧУСЬ, может и со своей старой парадигмой. Разве за это пинают? А ручками больше разбираюсь, но тупые вопросы задаю пока. Я очень быстро Дедфи подниму, особенно если ОПЫТНЫЕ коллеги подсажут. Стеб принимаю, это весело в освоении нового.
24 окт 21, 14:44    [22387367]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
AK-Shah
Member

Откуда:
Сообщений: 155
автор
Существует полно неплохой литературы, позволяющей освоить Delphi.


Это да. Я так же и про Фокс могу сказать - достаточно Базияна, Клепинина и Шутенко. С двумя последними лично знаком. А вот сваять простое приложение - надо во многом разбиратся. Да я не против, осилим, мы с командой и биллинг под моим руководством написали, мало чем Мск уступили. По общему функционалу - да. А мне дали команду разрабов, тесьтрование??

Ну и о чем копья ?

Ты( Вы) из вменяемых. Есть вопрос передачи ссылки на родителькую форму. Как проще? Спасибо!
24 окт 21, 14:52    [22387372]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
AK-Shah
Member

Откуда:
Сообщений: 155
автор
Это разные вещи, первую нужно делать, а вторую в 99.9% случаев лучше не делать.


Поясни. Лучше попроще. :)
24 окт 21, 15:08    [22387376]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 2657
AK-Shah
автор
Это разные вещи, первую нужно делать, а вторую в 99.9% случаев лучше не делать.


Поясни. Лучше попроще. :)
Не обращай внимания. Лучше код покажи
24 окт 21, 22:40    [22387475]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67529
Блог
AK-Shah
Есть вопрос передачи ссылки на родителькую форму. Как проще? Спасибо!

Проще всего вообще без передачи. По дефолту для каждой формы генерится глобальная переменная со ссылкой на форму, через них можно работать.

Как лучше - совершенно другой вопрос. На него коротко не ответишь.
25 окт 21, 01:58    [22387526]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Страдалецъ
Member

Откуда: Мурманск
Сообщений: 1474
Пытаюсь реализовать заливку текстовых данных в SQLite через связку FBatchMove. Таблица в SQLite такого вида:
CREATE TABLE Dictionary (Value VARCHAR (512) PRIMARY KEY ON CONFLICT IGNORE

Вставка повторяющихся данных, через SQLiteStudio проходит ожидаемо, а вот через FBatchMove получаю исключение:
[FireDAC][DApt]-400. Insert command inserted [0] instead of [1] record. Possible reasons: update table does not have PK or row identifier, record has been changed/deleted by another user
Режим базы выставлен LockingMode=Normal
ProviderFlags для поля включает pfInKey
В UpdateOptions пробовал задать KeyFields=Value; ошибка не исчезла.
Куда еще копать?
3 ноя 21, 17:20    [22391709]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54840

В логику ошибки. Insert не вставил запись в таблицу. Что делать?
Потом в исходники: вдруг эта проверка там опциональна?..

Posted via ActualForum NNTP Server 1.5

3 ноя 21, 17:33    [22391713]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Страдалецъ
Member

Откуда: Мурманск
Сообщений: 1474
Т.е. вы намекает, что я должен обработать событие OnError для TFDBatchMove. Но не слишком ли это будет затратно, вызывать это событие всякий раз как возникнет конфликт в БД? Я же это делаю на уровне БД, та зачем же дополнительно эту проверку еще и в приложении делать? Может есть возможность отключить этот механизм. У меня ожидаемый объем данных около 1 лярда и любые задержки крайне нежелательны.
3 ноя 21, 17:41    [22391716]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Страдалецъ
Member

Откуда: Мурманск
Сообщений: 1474
Что-то я не понял логики работы этого события. Почему оно у меня вызывается один раз, если конфликтов существенно больше?
3 ноя 21, 17:53    [22391720]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9993
Какой "writer" используется ?
3 ноя 21, 17:57    [22391725]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Страдалецъ
Member

Откуда: Мурманск
Сообщений: 1474
врайтер у меня TFDBatchMoveDataSetWriter
3 ноя 21, 17:59    [22391729]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9993
https://docwiki.embarcadero.com/Libraries/Sydney/en/FireDAC.Stan.Option.TFDUpdateOptions.CountUpdatedRecords
3 ноя 21, 18:07    [22391733]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Страдалецъ
Member

Откуда: Мурманск
Сообщений: 1474
О, спасибо за подсказку. Процесс экспорта явно ускорился. Событие, тоже правильно работает, это я там слегка ошибся :)
3 ноя 21, 18:42    [22391746]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Страдалецъ
Member

Откуда: Мурманск
Сообщений: 1474
Продолжаю бороться с TFDBatchMove. Что-то я не пойму, а что попадает в TFDBatchMove.WriteCount?
4 ноя 21, 14:28    [22391929]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
AK-Shah
Member

Откуда:
Сообщений: 155
softwarer,

автор
рограммное заполнение SQL-запроса - в 99.9% случаев удел ламеров


Да ладно! Все спецы моего круга как РАЗ программно все и пишут. Фамилии назову, но вряд ли вы с ними знакомы. И на Фоксе, и на Делфях советут программно создавать, а не плодить в ДатаМодуле паутину. Создал - убил. Нормально. Я и то пробовал, и то. Программный подход ближе, хотя, согласен, кодеса порой побольше. Но я за управляемость внематочно. ;)
5 ноя 21, 06:48    [22392087]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Michael Longneck
Member

Откуда: Москва
Сообщений: 2387
Если кому интересно, чтобы табличные параметры, содержащие max ((n)varchar, varbinary) заработали на x64 надо подправить TODBCVariable.UpdateFlags.

....
  else if SQLDataType = SQL_SS_TABLE then begin
    FScale := 0;
    FColumnSize := {$IFDEF CPUX64}High(UDword){$ELSE}High(SQLULen){$ENDIF};
    FDataSize := 0;
  end


Иначе будет ошибка invalid buffer or string length.
9 ноя 21, 15:44    [22393698]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9993
Спасибо !
Еще бы тикет с тестом ... Но, мечты ...
9 ноя 21, 18:30    [22393793]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Michael Longneck
Member

Откуда: Москва
Сообщений: 2387
Тикет я попозже может и заведу. Но у меня изрядно так дописано\подправлено в части табличных параметров... не на один тикет...в частности процедуры с несколькими параметрами табличными одного типа работают...а в оригинале нет..
9 ноя 21, 18:35    [22393797]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9993
Можно и одним тикетом, но хотя бы с пояснениями и/или примерами кода ...
9 ноя 21, 19:12    [22393817]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 44 45 46 47 48 49 50 51 52 [53]
Все форумы / Delphi Ответить