Error 20019 : на простом запросе.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

jsa писал(а):Что за маниакальное стремление не трогать PacketRecords ?

А расскажите своими словами для чего он вообще нужен, этот PacketRecords?
jsa
постоялец
Сообщения: 295
Зарегистрирован: 28.11.2017 12:46:04

Сообщение jsa »

vitaly_l писал(а):А расскажите своими словами для чего он вообще нужен, этот PacketRecords?

А я не на допросе, чтобы играть в постоянно защищающегося и загоняемого в угол. Ты делаешь утверждение, ты его и обосновывай.
Я хоть и знаю какой смысл разбивать получение результата на куски, но распинаться и играть в твои игры играть не собираюсь. Ты игнорируешь вопросы, переводишь тему с одного на другое. И ждешь от меня чего-то?
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

jsa писал(а):А я не на допросе, чтобы играть в постоянно защищающегося и загоняемого в угол. Ты делаешь утверждение, ты его и обосновывай.
Я хоть и знаю какой смысл разбивать получение результата на куски, но распинаться и играть в твои игры играть не собираюсь. Ты игнорируешь вопросы, переводишь тему с одного на другое. И ждешь от меня чего-то?

Если Вы полагаете что мне нужно от Вас вот это:
jsa писал(а):Жду обоснованных утверждений о том, что я осел, тогда я это признаю

то Вы заблуждаетесь, т.к. вопрос: "кто Вы" - меня не интересует.


Вот Вам на форуме, помогли решить задачу, соответственно теперь и Вы помогите мне, пожалуйста, справиться со сложным для меня вопросом, про PacketRecords. А-то я читаю-читаю, а понять никак не могу, зачем его сделали? И почему по умолчанию там 10, а не -1? Что разработчики не могли сразу -1 поставить? Согласитесь -1 - оптимальное решение для всех задач. Зачем делали 10? Разработчики что специально вредничали?

Поэтому повторюсь: Расскажите, пожалуйста, своими словами для чего он вообще нужен, этот PacketRecords?


.
jsa
постоялец
Сообщения: 295
Зарегистрирован: 28.11.2017 12:46:04

Сообщение jsa »

vitaly_l писал(а):помогите мне, пожалуйста, справиться со сложным для меня вопросом, про PacketRecords. А-то я читаю-читаю, а понять никак не могу, зачем его сделали?

Дурачком можешь не прикидываться, я просил лишь признать себя ослом, или объяснить мне почему осел я, показав мне в чем я не прав.
Пока что статус того-кем-нельзя-обзывать-на-форуме остается за Пупсиком и тобой. И всё по тем же причинам.

Добавлено спустя 7 минут 8 секунд:
В сторону.
Поясняю,
1. как и было написано выше, утилита пишется на замену хранимой процедуре, и запускается она на выполнение на том же сервере, т.е. подключение по сути локальное. Поэтому разбивать получение на пакеты для учета плохой связи не нужно.
2. Обрабатывать данные по мере поступления тоже в данном конкретном случае нет смысла. Нужно именно получить весь список, а потом его обработать.

Возвращаемся, к мега гуру гностику.
Если хочешь играть игры в закос под дурачка, то сначала объясни мне чего ты вообще полез сюда, если не знаешь ответа на этот вопрос?
Не знаешь, так создай отдельную тему и спроси там Пупсика, он умный и гурный, он тебе как мега-гуру, все объяснит, после того как ты ему покажешь код на какой нибудь популярной базе (и он конечно знает, что такое MS SQL)

Добавлено спустя 8 минут 26 секунд:
Кстати делаю заявление, что гностик балаболка.
1. вначале очень уверенно делал такое заявление - "Ничего чудесатого, стандартная утечка памяти или около того, которая сегодня вываливается на QueryDet.Open, а завтра будет совершенно в другом месте"
2. После вопроса при чем тут (при конкретной ошибке 20019) утечка, выдал глупость "Она не тут, она может быть в любом месте программы. Поищите на форуме, уже 100 раз обсуждали этот "баг". ", а потом просто ушел от темы просто ушел от темы "утечки" и на время замолчал.
4. Но перед этим выдал свою компетентность фразой "Когда создается клиентский набор данных, PacketRecords автоматически устанавливается в -1, а это означает, что один пакет должен содержать все записи в наборе данных." (в компонентах Delphi это так, а в TSQLQuery в Lazarus это не так)
5. После того как причина была выяснена и многократно разжевана, сделал заявление, что самостоятельно понял причину.

Гностику предложение, не писать в мои темы, чтобы не разводить флуд. В советах гностика не нуждаюсь. Надеюсь и без него на форуме имеются адекватные и компетентные люди.
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

jsa писал(а):я просил лишь признать себя ослом

Это невозможно, потому что: я или Вы - всегда априори человек. И будучи в сознании, признать себя или Вас ослом - технически не могу. И в отличии от Вас даже не допускаю такой возможности, т.к. "человек = осёл" <== такое не укладывается в моём мировоззрении, в отличии от Вашего.

jsa писал(а):1. как и было написано выше, утилита пишется на замену хранимой процедуре, и запускается она на выполнение на том же сервере, т.е. подключение по сути локальное. Поэтому разбивать получение на пакеты для учета плохой связи не нужно.
2. Обрабатывать данные по мере поступления тоже в данном конкретном случае нет смысла. Нужно именно получить весь список, а потом его обработать.

Повторю: Всё Вами сказанное - не запрещает делать иной более надёжный код. Это в продолжение, о том что, у задачи много решений и Ваше решение, как выяснилось - действительно далеко от оптимального. И Вы сами это подтвердили своими вышеприведёнными фразами. И Пупсик, который мог предложить иное решение - далеко не упёртый осёл, а наоборот разумный человек, который просил привести код, чтобы точнее видеть и понимать задачу / проблему.

И почитайте уже про денотат "гностик", а то у Вас каша в голове, которая мешает Вам адекватно мыслить и в этой связи Вы пытаетесь оскорбить людей, т.к. не можете справиться со своими комплексами.

Мы (нас тут как обычно много) - рады за Вас, т.к. Вам удалось решить задачу таким путём. Но в ряде случаев, Ваше - решение приведёт к серьёзным сбоям. Что мне и требовалось установить. На этом желаю весёлого Рождества.


.
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

jsa ну вы явно полным бредом занимаетесь... Сколько букв, а кода нет. Т.е. примера с ошибкой. Неужели так сложно выложить код? Вы уже написали на добрых 2.

PacketRecords "трогается" в редких случаях. И я сомневаюсь что этот случай ваш.
Ну уж коли у вас сработало. Пущай работает. Хотя, по идее, он просто скрыл шероховатость вашего писания.

п.с.
И не трогайте вы бедных животных. Они вполне себе рабочие лошадки. Даже, в большинстве случаях, поболее любого человека.
anatolij
незнакомец
Сообщения: 1
Зарегистрирован: 14.05.2019 13:00:32

Сообщение anatolij »

Столкнулся только что с такой же проблемой. У меня такая картинка - через TMSSQLConnection устанавливаю соединение с БД; компонентом TSQLQuery1 получаю выборку из базы, значения выводятся в TDBGrid1 на TForm1. Если при этом я пытаюсь сделать Active TSQLQuery2 и вывести результат в TDBGrid2 на TForm2, то получаю указанную в теме ошибку. Порядок выполнения запросов и загрузки данных в гриды значения не имеет - результат один.
Анализ поведения приложения показал, что ошибка не появляется, если перед выполнением следующего запроса и загрузки данных в следующий грид пролистать данные в первом гриде до конца.

Поэтому делаю после выполнения запросов в каждом гриде переход к последней записи и возвращение к первой:

...
TDBGrid1.DataSource.DataSet.Last;
TDBGrid1.DataSource.DataSet.First;
...
TDBGrid2.DataSource.DataSet.Last;
TDBGrid2.DataSource.DataSet.First;
...
Глубже проблему не анализировал, такой "финт" мне позволил избавиться от ошибки.
Может кому сгодится.
Ответить