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

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

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

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

Сообщение jsa » 04.01.2018 20:28:58

pupsik писал(а):
P.S. Что есть "связанный код" ? не могу нагуглить определение.

т.е. у вас чисто конект и никакого кода, связанного с обработкой полученного нет.?

Думаю вам не надо ничего больше писать в этой теме, и не надо мне именно от вас никакой помощи, вы русских слов не понимаете, и додумываете чего-то за собеседников.
Я русским языком спросил определение понятия "связанный код", вы мне задаете вопрос чего есть, а чего нет в моем коде. Причем в таком стиле, как будто я что-то отрицаю по неразумению.
Никакого тестового примера вам давать не буду, это бесполезно, т.к. от того, что вы его посмотрите толку никакого не будет (сужу по логичности и понятности того, что вы пишите в теме).

P.S. Не понимаю чего этому человеку надо.
Русским по белому написано в каком месте какая была проблема, и как она решилась, а он продолжает нести какую то околесицу, про варианты, про связанный код, и т.д.
А выше там еще один с великим ЧСВ, твердит про утечку памяти и про нечто уничтожаемое до обращения.

Добавлено спустя 2 минуты 21 секунду:
Vadim писал(а):Судя по тому, что Вы написали, с сервера идёт очень большой объём информации и за одну итерацию цикла сервер не успевает её переслать в рамках одного сеанса связи.
packetRecords указывает количество записей в одном пересылаемом пакете (обмен клиент-сервер идёт именно в таком пакетном режиме). "-1" указывает на то, что мервер\клиент ничем больше не занимается, пока не получит все записи.
По умолчанию PacketRecords = 10 (по крайней мере у меня так).


Спасибо, ваше сообщение помогло.
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

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

Сообщение pupsik » 05.01.2018 02:49:20

Разобрался.
QueryDet.open запускается в цикле While not Query.EOF do
ваше писание? Т.е. мало того что вы что то "вспороли" у себя в коде... так ещё и обвиняете в ошибках сервер, лазарь и т.д..

Русским по белому написано в каком месте какая была проблема, и как она решилась, а он продолжает нести какую то околесицу, про варианты, про связанный код, и т.д.
где ваш код.? Т.е. пример. Где явно выражена проблема... У вас этого нет. И кто околесицу несёт? :mrgreen:

Добавлено спустя 6 минут 5 секунд:
Я русским языком спросил определение понятия "связанный код"
попытаюсь пояснить как ребёнку. У вас на формочке кроме набора компонентиков есть ещё и исходный кодик. Вот этот кодик, написанный вашими ручками, как то связан с теми компонентиками что вы используете. Повторяю связан.

Не спорю: носки то же вяжут. И слово весьма популярно. Но... конкретно в вашем случае, у вас есть код который СВЯЗАН с набором компонентов. Можно заменить словом ВЗАИМОДЕЙСТВИЕ.

Надеюсь внятное пояснение?

Добавлено спустя 5 минут 14 секунд:
прежде чем вы начнёте искать в гугле словосочетание: "вспороли" у себя в коде... Поспешу пояснить:

ОТКУДА в коде где только запрос и набор компонентов взялось While not Query.EOF. Да ещё в момент открытия другого запроса: QueryDet...

Что ещё скрыто в ненаписанном вами коде?
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение jsa » 05.01.2018 17:25:13

Пупсик, ты можешь просто отвалить?
Вопрос решен тема закрыта, чего ты елозишь?

Перечитал два раза всю тему, и еще больше убеждаюсь у тебя возможно проблема, проявляющаяся в том, что ты читая одно, картину в голове своей отстраиваешь совсем другую.
1. Ты пишешь про "формочку" с "компонентиками", сюсюканье уже удивляет ибо выглядит странно. Во вторых, я нигде не писал, что использую форму, а потому как созданы компоненты (написал вначале), можно было предположить, что это консольное приложение.
2. " есть ещё и исходный кодик." - зачем так опускаться и прикидываться неумным? Был же вопрос. От тебя и был же "Как я понимаю: вы в цикле по строкам одной таблицы что то делаете с другой таблицей."
Ответ - да. Этого не достаточно чтобы ты понял, что имеется обработка и какой-то исходный код?
Ну и самое главное
3. "Не видя кода сложно сказать где скрыт баг. Но он явно не в кол-ве запрашиваемых данных. Код..код и ещё раз код свой смотрите." - и это написано после того как Vadim подсказал причину, и я написал, что нашел виновный объект, и проблема устранена.
И дело оказалось КАК РАЗ В КОЛИЧЕСТВЕ ДАННЫХ возвращаемых, но не этим, а предыдущим ему запросом.

повторяю/пересказываю суть для альтернативномыслящего Пупсика, чтобы он успокоился и перестал канючить код, в котором он все равно ничего нового относящегося к теме не найдет, потому что всё что нужно уже было написано выше.
Еще раз для Пупсика, ВСЕ ниже изложенное было написано выше ДО того как Пупсик начал "помогать", и "умничать".
1. Запрос находящийся в компоненте QueryDet не выполняется.
2. Запрос находящийся в компоненте QueryDet даже не посылается серверу, что было очевидно из профайлера MS SQL Server
3. Ошибка возникает при попытке выполнения QueryDet.Open
4. От текста запроса в QueryDet.SQL не зависит.
5. QueryDet.Open должен вернуть 1 строку, поэтому дело не в количестве данных возвращаемых этим запросом.
6. QueryDet.Open выполняется в том же соединении в котором до него выполняется Query.Open
7. QueryDet.Open является частью обработки данных запроса Query.SQL и выполняется в цикле While not Query.EOF
8. Как и подсказал Vadim дело было в количестве строк, который возвращает запрос Query.SQL, на тестовой базе было 3-4 строки, и потому программа работала, а на рабочей возвращает несколько сотен, потому имеет влияние параметр PacketRecords который по умолчанию = 10
9. Установка Query.PacketRecords=-1 при создании объекта, решило проблему.

ВСЁ, Пупсик, ВСЁ, это решило проблему. Ты понимаешь слова "Вопрос решен" ? Ты можешь просто задавить свою гордость, и перестать тупить и флудить?
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

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

Сообщение pupsik » 05.01.2018 21:12:57

Ты можешь просто задавить свою гордость, и перестать тупить и флудить?
дело не в гордости или ещё каких то личных убеждений. Дело в том что вы не выложили полную картину и начали колупать персонально меня гуглом. То что вы вроде как решили проблему и оно у вас работает - замечательно. :roll:

Как и подсказал Vadim дело было в количестве строк, который возвращает запрос Query.SQL, на тестовой базе было 3-4 строки, и потому программа работала, а на рабочей возвращает несколько сотен, потому имеет влияние параметр PacketRecords который по умолчанию = 10
а вот это бред. Каким лешим 3-4 могут превратиться в сотни и тысячи, если у вас установлено 10???

п.с.
Мне кажется (знаю что креститься надо) что вы "сбросом" PacketRecords скрыли проблему которая связана с кодом написанным вами. Или вы не учитываете (не знаете) нюансы в работе с базой. Но уж коли решили... главное решатель не сломайте :mrgreen:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение jsa » 07.01.2018 11:01:33

pupsik писал(а):дело не в гордости или ещё каких то личных убеждений.

Дело именно в ней, в гордости.
"Как трудно все таки упертому ослу
бывает осознать свою не правоту"
pupsik писал(а):Дело в том что вы не выложили полную картину и начали колупать персонально меня гуглом.

Я выложил полную картину, но упертому полной картины мало, ему надо код, мнится ему что он, способен там что-то увидеть.
Никто тебя не колупал, у тебя у самого свербит спорить и писать глупости. Персонально от тебя мне НЕ надо никакой помощи, никогда, ни по какому вопросу, потому что ты не способен слышать собеседников. И обладаешь ярко выраженным синдромом утенка, где мамкой служит первая посетившая тебя идея.
pupsik писал(а):а вот это бред. Каким лешим 3-4 могут превратиться в сотни и тысячи, если у вас установлено 10???

Пупсик, есть такая притча "И глупец покажется умным если будет молчать", так вот тебе лучше молчать, потому что ты всё больше и больше демонстрируешь свою глупость. И это заявление яркий тому пример. Ты ничего не понял ни про 3-4 ни про сотни, ни про 10. Перечитай еще раз о чем речь и перестань позориться.
pupsik писал(а):что вы "сбросом" PacketRecords скрыли проблему которая связана с кодом написанным вами.

Пупсик, ты просто осел, проблему ты не понял, в коде ты ничего найти не способен, и даже не потому что там нет никакой связанной с проблемой ошибкой, а потому что ты даже без кода, не способен понять прочитанное.
Прочти еще раз тему, почитай что пишут про эту ошибку. И засохни уже.
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

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

Сообщение vitaly_l » 07.01.2018 12:05:56

jsa писал(а):Как трудно все таки упертому ослу
бывает осознать свою не правоту

Код: Выделить всё
Why does TSQLQuery.RecordCount always return 10?

To count the records in a dataset, use '.RecordCount'. However, notice that '.RecordCount' shows the number of records that is already loaded from the server. For performance reasons, SqlDB does not read all records when opening TSQLQuery by default, only the first 10. Only when the eleventh record is accessed will the next set of 10 records be loaded, etc. Using '.Last', all records will be loaded.
When you want to know the real number of records on the server you can first call '.Last' and then call '.RecordCount'.
An alternative is available. The number of records returned by the server is set by the '.PacketRecords' property. The default value is 10; if you make it -1 then all records will be loaded at once.
In current stable FPC, '.RecordCount' does not take filters into account, i.e. it shows the unfiltered total.
If you need the exact number of records, it often is a better idea to directly query the number of records in a query using another SQL query, but you would have to do that in the same transaction, as other transactions may have changed the number of records in the meanwhile.

http://wiki.lazarus.freepascal.org/SqlDBHowto#Why_does_TSQLQuery.RecordCount_always_return_10.3F

Возвращаясь к упёртым, которые не могут даже предположить свою неправоту:
1) Как Вы думаете сколько людей на этом форуме пользуются базой, у которой больше 10 записей?
2) А сколько по Вашему, должно было бы быть таких вопросов, при столь сложном решении, как PacketRecords := -1?
3) Сколько на форуме должно было бы быть ответов на тему "как получить больше 10 записей?", с единственным решением PacketRecords := -1?
4) В случае когда PacketRecords = 10, программа 100% - не должна падать, а всего лишь МАКСИМУМ должна была бы вернуть 10-й записей. Именно об этом сказано в отрывке на English, который я привёл выше. Но Вы упёрлись: и не слышите, и не думаете, а лишь обзываете Пупсика ослом (а подобные оскорбления, кстати запрещены правилами форума).
5) Пупсик, увидел что, Вы делаете запрос - неправильно и большинство делают это иначе. И возможно это различие вызывает сбой во всей Вашей программе. При этом, все обычно пользуются PacketRecords = 10 (я никогда не менял), но при этом загружают: и 100, и 1000, и 10 000 записей. <== Этот довольно весомый аргумент, Вы способны уловить?
6) Когда Ваша программа, снова начнёт ВДРУГ НЕОЖИДАННО падать (а это неизбежно), один из немногих кто реально сможет Вам помочь - это Пупсик.
7) Я прочитал Ваш бред про воровство Вашего кода админами. => Задайте себе простой вопрос: Кому нужен Ваш падающий на ровном месте код? И возможно, ответив на этот вопрос Вы избавитесь от лишних Ваших комплексов неполноценности, из-за которых Вы оскорбляете окружающих ослами.
8.) Мне ненужен Ваш умный ответ, я лишь констатировал Вам факт, о том что все загружают по 10 000 записей не меняя PacketRecords.

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

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

Сообщение jsa » 07.01.2018 12:59:35

1) Глупый вопрос. Происходит из не понимания ситуации. А для меня индикатор, того что на этом форуме не только Пупсик самоуверен до слепоты.
2) Глупый вопрос. Да еще кривосаркастично сформулирован. Вы бы свой сарказм засунули по дальше, если хотите что-то доказать,
3) Глупый вопрос. Который возникает от того что вы с Пупсиком упорно не обращаете внимания на одну деталь, о которой многократно тут было говорено.
4) Упёрлись как раз вы, потому что вы упорно не видите в чем была проблема, а продолжаете мнить себя умниками, объясняя мне то о чем вас не спрашивают, и что НИКАК не относится к возникшей проблеме.
"При этом, все обычно пользуются PacketRecords = 10 (я никогда не менял), но при этом загружают: и 100, и 1000, и 10 000 записей. <== Этот довольно весомый аргумент, Вы способны уловить?"
Я вот не пойму, вы с Пупсоидом совсем слепы что-ли? Вы способны уловить, что вы думаете не о том и не вникли в суть вопроса? У вас в головах какая-то фиксация про подгружаемое количество записей.
5) "Пупсик, увидел что, Вы делаете запрос - неправильно и большинство делают это иначе" Где это Пупсик увидел что я делаю запрос не правильно? Дайте цитату. Я видел лишь его маниакальную убежденность что ему поможет понять проблему только полный код.
6) "Когда Ваша программа, снова начнёт ВДРУГ НЕОЖИДАННО падать (а это неизбежно), один из немногих кто реально сможет Вам помочь - это Пупсик." Не смешите меня. Пупсик не способен прочитать и понять прочитанное, он читает одно, а говорит совершенно о другом, как и ты впрочем. Зачем нужна помощь от самоуверенного, неадекватного человека. который не способен прочитать несколько раз написанное разными словами.
И да про убежденность в неизбежности падения и способности помочь только Пупсиком, это просто ОЧЕНЬ смешно.
7) А вот эта тупость просто перл! - "Я прочитал Ваш бред про воровство Вашего кода админами. => Задайте себе простой вопрос: Кому нужен Ваш падающий на ровном месте код? И возможно, ответив на этот вопрос Вы избавитесь от лишних Ваших комплексов неполноценности, из-за которых Вы оскорбляете окружающих ослами." Спасибо вы сделали мой день
Теряющий-остатки-моего-уважения, перечитай внимательно. Изначально была написана хранимая процедура на MS SQL Server-е, т.е. открытый SQL текст, ее украл админ организации. Поэтому пришлось переписать ее как защищенное консольное приложение привязанное к конкретному экземпляру сервера. И именно в консольном приложении обнаружилась ошибка, и она заключается только в том, что я не знал, что по умолчанию, выборка в компоненте TSQLQuery делается пакетами. Сейчас проблема решена, утилита работает. Проблем не наблюдается. Так что вы только позоритесь делая самодовольные заявления "падающем на ровном месте коде" о моих комплексах (пока что я вижу тотальную "нельзя-так-обзывать" упертость и комплекс самоуверенности у вас с Пупсиком).

8 ) не нужен был совет, нечего было лезть в эту тему, и обнаруживать истинную глубину своих гностических комплексов с глупостями. Глупость, потому что вы опять зациклены на количестве записей делающихся без изменения PacketRecords.
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

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

Сообщение vitaly_l » 07.01.2018 13:22:36

jsa писал(а):8 ) не нужен был совет, нечего было лезть в эту тему, и обнаруживать истинную глубину своих гностических комплексов с глупостями. Глупость, потому что вы опять зациклены на количестве записей делающихся без изменения PacketRecords.

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

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

Сообщение jsa » 07.01.2018 14:09:45

А теперь еще раз излагаю для энтузиастов Пупсиков и долгожителей гностиков.
То как выглядит ситуация с моей некомпетентной точки зрения.
Определено методом глупого тыка (я так понимаю с точки зрения Пупсиков, только они могут делать заключения о произошедшем, и только при условии получения всего кода, и желательно на "какой-нибудь популярной БД", абстрагироваться от кода и понять, что произошло со слов презренного самоучки, ниже достоинства Пупсиков)
поэтому метод тыка нарекаю глупым.

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

1. На одном соединении выполняются запросы Query.SQL и QueryDet.SQL
2. Сначала выполняется Query.Open который возвращает список ID объектов с необходимыми их свойствами.
3. по списку ID запускается цикл, в котором
3.1. делается проверка полученных уже свойств, и если она проходит то выполняется пункт 3.2 иначе ID пропускается. (вопрос почему проверка не прописана в where не задавать, это к делу не относится)
3.2. В запрос QueryDet.SQL подставляется ID и посылается на выполнение. Далее следует обработка полученных для текущего ID значений и делается корректировка и вставка строк в разные таблицы базы.

4. На тестовой базе где запрос Query.Open возвращает только 3-4 строки с ID пункт 3.2 отрабатывает нормально.
5. На рабочей базе где Query.Open возвращает/должен вернуть несколько сотен строк, ошибка выскакивает на первой же команде QueryDet.Open
при этом текст QueryDet.SQL, в профайле этот запрос даже не отлавливается, из чего я делаю вывод, что команде QueryDet.Open, что-то мешает ДО посылки запроса.
Погуглив и прочитав, про тест ошибки EMSSQLDatabaseError: TMSSQLConnection : Error 20019 :, а так же получив подтверждение моих подозрений от Vadim
Я попробовал изменить значение по умолчанию PacketRecords = 10 на -1.
Это сработало, из чего делаю такой дилетантский вывод (ну а так же из всего что нагуглил и прочитал про этот параметр)
1. При установленном параметре -1, компонента TSQLQuery ведет себя так же как по умолчанию в Delphi ведет себя TADOQuery и т.е. пока не выполненно получение всего набора данных, дальше программа не выполняется.
2. При выполнении с установленным конкретным размером пакета, при получении ограниченного количеством строк пакета, программа продолжает выполнение т.е. в моем случае начинается цикл и выполняется пункт 3.2.
3. Для получения полного набора данных нужно программно указывать получение следующего пакета, или выполнять переход на последнюю запись Last (но я этого не делаю)
4. При попытке открыть еще один набор данных (QueryDet) на том же соединении на котором имеется еще не полностью полученный набор (Query) возникает конфликт в компоненте TMSSQLConnection, видимо потому что соединение занято.
5. Проблема решается именно так как написано в рекомендации по ссылке данной мной в первом сообщении. http://wiki.freepascal.org/mssqlconn
Error 20019 : Attempt to initiate a new Adaptive Server operation with results pending
Set TSQLQuery.PacketRecords property to -1
6. Тему я создал, потому что не понимал в начале, что происходит. И применял QueryDet.PacketRecords = -1 , тогда как проблема не в QueryDet , а в том что Query с НЕ докачанными данными блокирует соединение на котором сидит и QueryDet. Поэтому нужно было поменять значение параметра Query.PacketRecords, чтобы цикл запустился (и соответственно полетели запросы QueryDet) уже после того как будет получен весь набор данных в Query.

Все написанное является лишь переложением того что и так было написано выше. Если это до гуруПупсиков и Виталие не дойдет и они продолжат настаивать на своих версиях, то я не знаю уже как таким людям объяснять.
Может я ошибаюсь в своей оценке происходящего. И я готов себя признать полный и тупым ослом. Если я не прав. Докажите где я не прав.
Но пока что я вижу ситуацию так. И делаю такие выводы.

1. Установка Query.PacketRecords = -1 полностью, окончательно и в соответствии с рекомендациями на wiki.freepascal.org/mssqlconn решает вопрос, без каких либо "если" и последующих "неминуемых" падений от которых может спасти/насоветовать только мега-гуру-Пупсик.
2. Пупсик "тот-кем-нельзя-обзывать-на-этом-форуме" потому что он даже после двукратного разжевывания не смог понять в чем проблема, и продолжал настаивать на необходимости и ошибки в коде программы.
3. Пупсик не умеет читать и потому он например, не смог понять мои слова о 3-4 записях на тестовой базе (не возникает ошибки) и сотнях на рабочей(возникает ошибка), и как на это влияет установка параметра =10
(разъясню на всякий случай. на тестовой базе Query получает весь набор данных сразу т.к. их тупо меньше размера пакета по умолчанию. А на рабочей получает пакет и продолжает программу вызывая ошибку при попытке выполнить следующий запрос.)
4. Все в полной мере относится и в гностику Виталию, только ему пришлось в третий раз всё разжевывать.

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


vitaly_l писал(а): т.к. ТС даже близко не понимает что такое PacketRecords и для чего оно нужно

Обоснование этого утверждения будет или это очередной пшик в воздух?


vitaly_l писал(а): в отличии от Ваших гностических - допускают наличие нескольких решений у одной и той же задачи.

1. Гностическую чушь не я нес, а ты. (Но ты видимо не знал что она гностическая). Так что не переводи стрелки на других, гностик.
2. Будет утверждение твоему ...серу, о том что я не способен допускать наличие нескольких решений у одной задачи? Я где-то утверждал что это единственное решение и других не существует?
Ты не знаешь русского языка и слова "Задача решена", воспринимаешь в качестве утверждения, что примененное решение единственное возможное?
И более того я просил Вас не отвечать, т.к. весь Ваш озлобленный флуд и троллинг - априори предсказуем.

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

З.Ы. Последние сови комментарии я тоже пишу уже не сколько для тебя и Пупсик, сколько для тех кто "помимо Вас будет читать данный топик", чтобы они знали цену некоторым местным самоназначенным гуру.
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

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

Сообщение vitaly_l » 07.01.2018 14:32:25

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

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

Добавлено спустя 4 минуты 44 секунд:
jsa писал(а):Обоснование этого утверждения будет или это очередной пшик в воздух?

http://wiki.lazarus.freepascal.org/SqlD ... turn_10.3F

Добавлено спустя 3 минуты 33 секунды:
И вот ещё почитайте: http://docs.embarcadero.com/products/ra ... cords.html
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

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

Сообщение jsa » 07.01.2018 14:46:34

vitaly_l писал(а):Я давно уже понял: и причину, и следствие (повторно изложение - было излишним).

Сильно сомневаюсь. По комментариям этого не видно.
и Ваше решение - непопулярно, т.к. большинство обходится без изменения PacketRecords.

Этот вывод я должен был сделать из язвительного вопроса - где мол куча вопросов на эту тему и ответов поставить -1 ?
ээээ у тебя с логикой всё в порядке вообще? Ты с логикой вообще знаком? Типичная "ошибка выжившего".
Я делаю встречные утверждения.
1. Большинство никогда не запускает, выборку внутри цикла по другой выборке.
2. Большинство не задает вопросы на этом форуме, потому что видит несколько неадекватных персонажей, и тусуется преимущественно на других форумах.
3. Большинство просто читает рекомендацию по приведенной мной ссылке и потому не задает вопрос про ошибку 20019
Мои утверждения более логичны и реальны, а твоя интерпретация своих слов, лишь попытка вывернуться.

P.S. Будут обоснования обвинениям и утверждениям в виде цитат (по теме выше) которые я спросил? Или я уже могу записывать их в балабольство?
Последний раз редактировалось jsa 07.01.2018 14:52:10, всего редактировалось 1 раз.
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

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

Сообщение vitaly_l » 07.01.2018 14:48:52

jsa писал(а):Сильно сомневаюсь.

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

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

Сообщение jsa » 07.01.2018 14:53:48

vitaly_l писал(а):Я разве ложно изложил суть вашего кода? Где я ошибся в своём кратком описании Вашей задачи?


А разве это описание сути проблемы? Я вижу только описание любого абстрактного цикла.
Блокировка невыполненным запросом соединения никак не была обозначена.

Добавлено спустя 2 минуты 54 секунды:
vitaly_l писал(а):http://wiki.lazarus.freepascal.org/SqlD ... turn_10.3F

Это не обоснование утверждения. Убеждаюсь, что был просто голословный пшик. А теперь попытка его оправдать.
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

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

Сообщение vitaly_l » 07.01.2018 15:03:09

jsa писал(а):А разве это описание сути проблемы?

Нет. Я там кратко изложил - задачу.
jsa писал(а):Блокировка невыполненным запросом соединения никак не была обозначена.

А вот: Блокировка невыполненным запросом соединения - это уже следствие Вашего кода. Если бы код был другим, то ошибка априори не появилась бы и менять: PacketRecords - не пришлось бы.

PS: варианты альтернативного Вашему кода, есть по ссылкам выше.


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

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

Сообщение jsa » 07.01.2018 15:06:36

vitaly_l писал(а):А вот: Блокировка невыполненным запросом соединения - это уже следствие Вашего кода. Если бы код был другим, то ошибка априори не появилась бы и менять: PacketRecords - не пришлось бы.

А в честь чего он должен быть другим? Что за маниакальное стремление не трогать PacketRecords ?
jsa
постоялец
 
Сообщения: 261
Зарегистрирован: 28.11.2017 13:46:04

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37

Рейтинг@Mail.ru