powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Incompatible types
10 сообщений из 35, страница 2 из 2
Incompatible types
    #39780560
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RackotProне очень удобно будет листать "милион милион алых строк", что бы убрать или заменить тот самый var.Метод длиннее высоты экрана - ССЗБ
...
Рейтинг: 0 / 0
Incompatible types
    #39780561
Фотография Dimonka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RackotProNope. Повторюсь, просто с умом использовать.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
  with qDocumentRolesEdit do
  begin
    Transaction.StartTransaction;
    try
      ParamByName('AOPERATION').Value := 2;
      ParamByName('ID').Value := cdsDocumentRoles.FieldByName('ID').Value;
      ParamByName('ID_DOCUMENT_TYPE').Value := Null;
      ParamByName('ID_DOC$ROLE_TYPE').Value := Null;
      ParamByName('STATE').Value := Null;
      ParamByName('IS_PARENT').Value := Null;
      ParamByName('IS_TRUSTEE').Value := Null;
      ParamByName('IS_AUTHORIZED_REPRESENTATIVE').Value := Null;
      ParamByName('IS_PROHIBITION').Value := Null;
      ExecQuery;

      Transaction.Commit;
    except
      Transaction.Rollback;
    end;
  end;


Ну сойдёт как пример. Но экономия времени написания между With .. и Query.ParamByName реально отсутствует, потому что и тот и другой код делается через Copy/Paste. Может читабельность повышается? - кому как. Лично я отвык от With, поэтому не повышается.
А возможность бесплатно получить неоднозначность с With серьёзно повышается. Например вместо Null тебе вдруг приспичило добавить (как и ТС) переменную Delete :-)
...
Рейтинг: 0 / 0
Incompatible types
    #39780571
RackotPro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimonkaА возможность бесплатно получить неоднозначность с With серьёзно повышается.
Без регистрации и смс. Да, правы, но...
Та тупо просто красивее. =)
...
Рейтинг: 0 / 0
Incompatible types
    #39780581
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochЖелательно вызывать один единственный раз, а не при каждом выполнении запроса.
Ну уж. Это критично разве что в циклах на тысячи итераций. В остальных случаях скорее вредно.
...
Рейтинг: 0 / 0
Incompatible types
    #39780582
RackotPro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Василий 2AriochЖелательно вызывать один единственный раз, а не при каждом выполнении запроса.
Ну уж. Это критично разве что в циклах на тысячи итераций. В остальных случаях скорее вредно.

Тут стало интересно, почему вредно?
...
Рейтинг: 0 / 0
Incompatible types
    #39780587
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochпросто однажды ты
Непонятно, для чего ты споришь.
Из некоторых твоих высказываний становися очевидно, что ты ранее чаще использовал with, чем теперь. И ведь наверняка ты и раньше слышал о потенциальной опасности, и тем не менее, пренебрегал ею ради "красоты" и, возможно, убеждений вроде "если все делать с умом, то проблем не возникнет".
Человек нужен именно свой опыт, ломающий именно свои взгляды.
Тем более непонятен предмет спора, когда оппонент не просто не понимает, а отстаивает свои даже не заблуждения, а явные косяки.
...
Рейтинг: 0 / 0
Incompatible types
    #39780594
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фэйтл ЭраЧеловек нужен именно свой опыт, ломающий именно свои взгляды.

Если человека запереть в библиотеке лет на 5 - вполне вероятно, что он сам научится читать.
Но если ему показывать буквы и объяснять, то он научится быстрее.
Хотя умение читать у него будет своё в обоих случаях.


Василий 2Это критично разве что в циклах на тысячи итераций.
Зависит от понимания слова "критично".

И ещё, если "тысячи итераций" заменить на "тысячи запросов" - будет примерно то же самое.
Например, если идёт сохранение в БД какого-то сложного объекта.
Уже начиная со второго сохранения.
...
Рейтинг: 0 / 0
Incompatible types
    #39780657
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RackotProТут стало интересно, почему вредно?
Код раздувается на N+ строк, где N - количество параметров. А ведь переменные для индексов еще и объявить надо. Когда код растет, его понимаемость падает. Да и писать такое дольше.
...
Рейтинг: 0 / 0
Incompatible types
    #39780697
RackotPro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Василий 2RackotProТут стало интересно, почему вредно?
Код раздувается на N+ строк, где N - количество параметров. А ведь переменные для индексов еще и объявить надо. Когда код растет, его понимаемость падает. Да и писать такое дольше.

Не совсем понял твой посыл, ты предлагаешь перейти на микросервисы или что? Что ты под этим подразумеваешь, просто когда мы делаем одну большую форму где работает хотя бы 20-25 человек, это 100500% вызовы FieldByName и по 100500 раз на м.с. нужно отключить ту кнопочку показать то сообщение отобразить то поле и т.д.

Хотя судя по всему я предмет обсуждения не понял. Если не сложно объясните буду очень признателен.
...
Рейтинг: 0 / 0
Incompatible types
    #39780900
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RackotPro,

он говорит, что написать (точнее, скопипастить) одну строчку
Код: pascal
1.
Q.ParamByName('AOPERATION').Value := 2;



в три раза быстрее, чем три строчки
Код: pascal
1.
2.
3.
4.
5.
var Q_NAME_P_AOPERATION: TParam;
....
Q_NAME_P_AOPERATION := Q.ParamByName('AOPERATION');
.....
Q_NAME_P_AOPERATION.Value := 2;
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Incompatible types
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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