|
|
|
Многократный вызов процедуры
|
|||
|---|---|---|---|
|
#18+
Доброго дня! Господа, не могу понять в чем трабла, в mysql имеется процедура вызова справочника Код: sql 1. 2. 3. 4. 5. 6. теперь в delphi делаю заполнение комбобоксов значением справочников Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Код работает до второго вызова 'call get_spr', в чем трабла, как я понимаю, что это не проблема delphi, а что-то в mysql, не могу понять в чем дело, подскажите где рыть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2015, 16:25:50 |
|
||
|
Многократный вызов процедуры
|
|||
|---|---|---|---|
|
#18+
Забыл сказать, что ошибка delphi следующая SQLError: commands not sync; you can`t run this command now. Не понимаю, что я сделал не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2015, 16:38:47 |
|
||
|
Многократный вызов процедуры
|
|||
|---|---|---|---|
|
#18+
Как я понимаю, проблема в том, что результат 'call get_spr(x)' возвращает несколько записей, как бороться с этой ситуацией? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2015, 17:09:14 |
|
||
|
Многократный вызов процедуры
|
|||
|---|---|---|---|
|
#18+
Не, а MySQL-то тут при чём? К нему какие претензии? Он честно отдал всё, что с него запросили. Со своей Дельфой разбирайтесь, какого она не может разобраться в записях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2015, 17:17:03 |
|
||
|
Многократный вызов процедуры
|
|||
|---|---|---|---|
|
#18+
Akina, Да согласен, mysql не причем, но самое смешное, что по моему способу, в первый комбик данные все подставляются, а что поисходит потом, не пойму. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2015, 17:56:56 |
|
||
|
Многократный вызов процедуры
|
|||
|---|---|---|---|
|
#18+
comtehno, Сколько записей должен вернуть Мускуль? Сколько записей принимается в Дельфи после первого запроса? ... ничего не "осталось" в буферах Дельфи, что может блокировать следующий вызов? .. может выгребать надо "циклом" или "в массив"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2015, 19:43:56 |
|
||
|
Многократный вызов процедуры
|
|||
|---|---|---|---|
|
#18+
Arhat109comtehno, 1. (Сколько записей должен вернуть Мускуль?) В каждом справочнике разное количество записей от 1 до бесконечности. 2. (Сколько записей принимается в Дельфи после первого запроса?) Ну в частности в моем случает в первый комбик загружается 5 записей. Во-второй 4 записи. 3. ... ничего не "осталось" в буферах Дельфи, что может блокировать следующий вызов? Дело в том, что у меня на каждый комбик свой zquery, так что как я понимаю ничего в буфере висеть не должно, я гружу на компонент - что он с рекордсетами работает некорректно. 4. (.. может выгребать надо "циклом" или "в массив"?) Насчет этого думаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2015, 22:13:17 |
|
||
|
Многократный вызов процедуры
|
|||
|---|---|---|---|
|
#18+
comtehno, Я не знаю, как в вашем случае, но году так в 2009-м слегка общался с Дельфи и Интербейзом... такм была похожая засада, которая упиралась в драйвер СУБД. Сейчас уже детали не вспомню, но вам скорее всего надо на дельфийский форум, а не тут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2015, 09:44:12 |
|
||
|
Многократный вызов процедуры
|
|||
|---|---|---|---|
|
#18+
comtehnoЗабыл сказать, что ошибка delphi следующая SQLError: commands not sync; you can`t run this command now. Не понимаю, что я сделал не так. Курсоры (запросы) закрывать надо после фетча. после .open() запроса надо делать .close(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2015, 13:53:20 |
|
||
|
Многократный вызов процедуры
|
|||
|---|---|---|---|
|
#18+
чтото вы все плохо с мусклом работаете. на пхп будет тоже самое(даже в Yii) в тупую делая подобное получите тоже самое. я не работал на делфи с ТЗ квери, поэтому автор исчи сам... НО подобная функция(процедура) возвращает два результата - первый результат это селект который сработал внутри неё, второй - это сам результат запуска функции. на пхп , если написать чтото типо как вы на делфи -результат- = запрос.выполнить().получить_результат() ( - второе возможно автоматически) выдаст именно первый результат, но остаёться второй, и пока он остаёться, на этом соединении!!!!!!! для тех кто считает что мускл ни причом, на это соединении нельзя посылать вторую команду(почему ошибка и звучит асинхроность - ибо даные идут от мускла к клиенту, первый результат прошол, второй ожидает) вообщем толджы быть функции аля freeResult - очистка всех результатов и можно следующую команду выполнять и функции для просмотра всех результатов аля isNextResult next getResult типо логика такая, пока есчё !!!! НА СОЕДИНЕНИИ имеються не прочитанные результаты с сервера, смещаем курсор на следующий и читаем его тоесть на псевдокоде для вас будет либо queryObject.freeResult(); либо while(queryObject.isNextResult()) begin if queryObject.next() then begin result := queryObject.getResult(); //process current result end else // critical section .....wait end end; критической ситуации поидее быть не должно, ибо это ипостась кода более глубокого чем тот, что вызывает эти функции. для тех кто хочет сказать что тупо...почему next()сразу не возвращает фолс если следующего результата нету. это не тупо - логика расчитана втом числе на асинхроность выполнения запроса и запустившего запрос кода(клиента) и клиент проверив isNextResult понимает что результат следующий есть, но это не значит что сервер готов его отдать. готовность имено и проверяеться фукнцией некст. почему я назвал секцию критической...ибо интуиция подсказывает, что в вашем случае вы в неё попасть не должны...у вас нету асинхроности...если курсор управления попал на команду while - то уже все рузультаты готовы к отдаче. да и для мускла не слышал что хоть гдето есть вариант другой...что он отдаст рузультат селекта есчё до физического завершения работы хранимки... можете проверить поставив в хранимку делей на 20 секунд после селекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2015, 20:17:56 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38988923&tid=1833011]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 198ms |
| total: | 462ms |

| 0 / 0 |
