powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FireDAC
25 сообщений из 1 332, страница 53 из 54
FireDAC
    #40105341
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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, похоже. И отчёт в багтрекер не создать: нет устойчивого воспроизведения.
...
Рейтинг: 0 / 0
FireDAC
    #40106237
AK-Shah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, подскажите по такому вопросу. Вот создал соединение TDBGrid -> TDataSource -> FDQuery -> FDConnection. Параметрический запрос с параметром на 6 полей (тело запроса добавлял программно) работало на-ура. Но это был пробный шар (не всем легко и просто переехать с одного ЯП на другой), ввел полный запрос, добавил поля в грид - ругаеццо, мол не связан один-единственный параметр. Я его вижу, он есть, могу тип визуально ему задать и пр. Снес программное заполнение SQL-запроса, оставил только программное присваивание параметра - опять все как часы заработало. Спрошу у гуру - ЧЯДНТ?
Стеб приветствуется - с ним освоим быстрее и веселее. ;)

Еще ссылки на формы интересуют, на Фоксе это очень просто, как и свойства назначить. Может и на Делфях все просто, но пока тяжело понимать парадигму. Но разберемся, путь у нас такой.
...
Рейтинг: 0 / 0
FireDAC
    #40106238
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AK-Shah
ввел полный запрос, добавил поля в грид

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

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

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

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

Существует полно неплохой литературы, позволяющей освоить Delphi. Гугль наверняка выдаст кучу топиков, где такую называют и обсуждают. Я свой вклад не внесу, потому что книги 95-го года сейчас фиг найдёшь.
...
Рейтинг: 0 / 0
FireDAC
    #40106431
AK-Shah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

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

Коллега, не соглашусь. Я в СУБД не вчера, динамические запросы ОЧЕНЬ часто надо. Да, пока параметризованным вполне выкручиваюсь. Ты бы видел, какие конструкции на Фоксе пишутся БЕЗ приседаний? Да ладно, я в теме Делфи, я УЧУСЬ, может и со своей старой парадигмой. Разве за это пинают? А ручками больше разбираюсь, но тупые вопросы задаю пока. Я очень быстро Дедфи подниму, особенно если ОПЫТНЫЕ коллеги подсажут. Стеб принимаю, это весело в освоении нового.
...
Рейтинг: 0 / 0
FireDAC
    #40106434
AK-Shah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСуществует полно неплохой литературы, позволяющей освоить Delphi.

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

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

Ты( Вы) из вменяемых. Есть вопрос передачи ссылки на родителькую форму. Как проще? Спасибо!
...
Рейтинг: 0 / 0
FireDAC
    #40106436
AK-Shah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЭто разные вещи, первую нужно делать, а вторую в 99.9% случаев лучше не делать.

Поясни. Лучше попроще. :)
...
Рейтинг: 0 / 0
FireDAC
    #40106502
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AK-Shah
авторЭто разные вещи, первую нужно делать, а вторую в 99.9% случаев лучше не делать.


Поясни. Лучше попроще. :)Не обращай внимания. Лучше код покажи
...
Рейтинг: 0 / 0
FireDAC
    #40106527
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AK-Shah
Есть вопрос передачи ссылки на родителькую форму. Как проще? Спасибо!

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

Как лучше - совершенно другой вопрос. На него коротко не ответишь.
...
Рейтинг: 0 / 0
FireDAC
    #40109036
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь реализовать заливку текстовых данных в SQLite через связку FBatchMove. Таблица в SQLite такого вида:
Код: sql
1.
CREATE TABLE Dictionary (Value VARCHAR (512) PRIMARY KEY ON CONFLICT IGNORE


Вставка повторяющихся данных, через SQLiteStudio проходит ожидаемо, а вот через FBatchMove получаю исключение:
Код: plaintext
[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; ошибка не исчезла.
Куда еще копать?
...
Рейтинг: 0 / 0
FireDAC
    #40109037
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В логику ошибки. Insert не вставил запись в таблицу. Что делать?
Потом в исходники: вдруг эта проверка там опциональна?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireDAC
    #40109038
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. вы намекает, что я должен обработать событие OnError для TFDBatchMove. Но не слишком ли это будет затратно, вызывать это событие всякий раз как возникнет конфликт в БД? Я же это делаю на уровне БД, та зачем же дополнительно эту проверку еще и в приложении делать? Может есть возможность отключить этот механизм. У меня ожидаемый объем данных около 1 лярда и любые задержки крайне нежелательны.
...
Рейтинг: 0 / 0
FireDAC
    #40109041
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то я не понял логики работы этого события. Почему оно у меня вызывается один раз, если конфликтов существенно больше?
...
Рейтинг: 0 / 0
FireDAC
    #40109046
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой "writer" используется ?
...
Рейтинг: 0 / 0
FireDAC
    #40109049
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
врайтер у меня TFDBatchMoveDataSetWriter
...
Рейтинг: 0 / 0
FireDAC
    #40109053
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
FireDAC
    #40109065
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, спасибо за подсказку. Процесс экспорта явно ускорился. Событие, тоже правильно работает, это я там слегка ошибся :)
...
Рейтинг: 0 / 0
FireDAC
    #40109210
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Продолжаю бороться с TFDBatchMove. Что-то я не пойму, а что попадает в TFDBatchMove.WriteCount?
...
Рейтинг: 0 / 0
FireDAC
    #40109334
AK-Shah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

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

Да ладно! Все спецы моего круга как РАЗ программно все и пишут. Фамилии назову, но вряд ли вы с ними знакомы. И на Фоксе, и на Делфях советут программно создавать, а не плодить в ДатаМодуле паутину. Создал - убил. Нормально. Я и то пробовал, и то. Программный подход ближе, хотя, согласен, кодеса порой побольше. Но я за управляемость внематочно. ;)
...
Рейтинг: 0 / 0
FireDAC
    #40110345
Michael Longneck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если кому интересно, чтобы табличные параметры, содержащие max ((n)varchar, varbinary) заработали на x64 надо подправить TODBCVariable.UpdateFlags.

Код: pascal
1.
2.
3.
4.
5.
6.
....
  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.
...
Рейтинг: 0 / 0
FireDAC
    #40110421
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо !
Еще бы тикет с тестом ... Но, мечты ...
...
Рейтинг: 0 / 0
FireDAC
    #40110424
Michael Longneck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тикет я попозже может и заведу. Но у меня изрядно так дописано\подправлено в части табличных параметров... не на один тикет...в частности процедуры с несколькими параметрами табличными одного типа работают...а в оригинале нет..
...
Рейтинг: 0 / 0
FireDAC
    #40110437
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно и одним тикетом, но хотя бы с пояснениями и/или примерами кода ...
...
Рейтинг: 0 / 0
FireDAC
    #40121976
jack_vosmerkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можете версию скулайт клиента в файрдаке обновить?
текущей версии 2 года через месяц исполняется
...
Рейтинг: 0 / 0
FireDAC
    #40122596
a.t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
a.t
Гость
баг в TFDPhysMySQLCommandGenerator.GetSelectMetaInfo
при AKind := mkTableFields и заданном AWildcard (хочу получить информацию по конкретному полю)

генерируется неверный запрос:

SHOW COLUMNS LIKE 'mytestfield1' FROM `mytesttable`;
а должно быть
SHOW COLUMNS FROM `mytesttable` LIKE 'mytestfield1' ;

код
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
procedure Test(AConnection: TFDConnection);
var
  qqq: TFDMetaInfoQuery;
begin
  qqq := TFDMetaInfoQuery.Create(nil);
  try
    qqq.Connection := AConnection;
    qqq.MetaInfoKind := mkTableFields;
    qqq.ObjectName := 'mytestshema.mytesttable';
    qqq.Wildcard := 'mytestfield1';

    qqq.Open;

  finally
    qqq.Free;
  end;
end;
end;


...
Рейтинг: 0 / 0
FireDAC
    #40122641
a.t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
a.t
Гость
a.t,

угу. посмотрел еще в сорцах anydac это место выглядит так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
  mkTableFields:
    begin
      Result := 'SHOW COLUMNS';
      if AWildcard <> '' then
        Result := Result + ' LIKE ''' + AWildcard + '''';
      Result := Result + ' FROM ' + EncodeName();
    end;



синтаксис сейчас такой:
Код: plsql
1.
2.
3.
4.
SHOW [EXTENDED] [FULL] {COLUMNS | FIELDS}
    {FROM | IN} tbl_name
    [{FROM | IN} db_name]
    [LIKE 'pattern' | WHERE expr]



то есть это именно баг. причем застарелый. строчки местами перепутаны.
...
Рейтинг: 0 / 0
25 сообщений из 1 332, страница 53 из 54
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FireDAC
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (3): Анонимы (2), Yandex Bot
Пользователи онлайн (14): Анонимы (11), Yandex Bot, Bing Bot 3 мин., Google Bot 4 мин.
x
x
Закрыть


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