powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как отловить ошибку создания SQLEXEC
10 сообщений из 10, страница 1 из 1
Как отловить ошибку создания SQLEXEC
    #33549931
Михаил_Ю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При выполнении запроса на сервер в таблицах может не быть данных или они не соответствуют заданным условиям, в результате курсора нет и отчет не печатается. Как отловить эту ошибку в программе чтобы выдать сообщение об отсутсвии данных.
...
Рейтинг: 0 / 0
Как отловить ошибку создания SQLEXEC
    #33549958
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пустой курсор должен сформироваться, вот и проверяй кол=во записей в нём
...
Рейтинг: 0 / 0
Как отловить ошибку создания SQLEXEC
    #33550070
Михаил_Ю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не получается ни через _tally ни через count ни через reccount
...
Рейтинг: 0 / 0
Как отловить ошибку создания SQLEXEC
    #33550118
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как запрос выполняется? CAD? SQLEXEC?
...
Рейтинг: 0 / 0
Как отловить ошибку создания SQLEXEC
    #33550135
Serg_wrn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не получается ни через _tally ни через count ни через reccount автор
Если запрос составлен корректно(с точки зрения сервера), но ничего не выбирает - пустой курсор создается всегда и может быть проанализирован данными функциями. Если же курсор не создается, то скорее всего были ошибки в запросе на сервере. Их можно получить по функции AERROR

lcSQL= "Exec Sele_Sfirma_Not_sale_w ?oSql.Si_Code_user"
lnAns = sqlexec(oSql.hConnect,lcSQL,"SpisFirm")
IF lnAns < 0
WAIT WINDOWS "Ошибка1 выбора фирм" NOWAIT
=AERROR(tmperr)
MESSAGEBOX(tmperr(1,2),0)
RETURN .f.
ENDIF
...
Рейтинг: 0 / 0
Как отловить ошибку создания SQLEXEC
    #33550137
Михаил_Ю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQLEXEC (Handle, "SELECT client.pk,client.okpo,client.nam,client.adr,client.ind,client.svid FROM client WHERE client.pk=?nClient and exists(select * from client where pk=?nClient)", "curClient")
...
Рейтинг: 0 / 0
Как отловить ошибку создания SQLEXEC
    #33550170
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А не пробовали посмотреть результат выполнения SQLEXEC?

То есть:

Код: plaintext
?SQLEXEC(далее по тексту)

Вроде бы должен возвращать количество полученных наборов данных.
...
Рейтинг: 0 / 0
Как отловить ошибку создания SQLEXEC
    #33550184
Serg_wrn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор

SQLEXEC (Handle, "SELECT client.pk,client.okpo,client.nam,client.adr,client.ind,client.svid FROM client WHERE client.pk=?nClient and exists(select * from client where pk=?nClient)", "curClient")


Ну а это масло масленое. Если запись существует, то она и так будет выбрана.
Зачем же сервер заставлять два раза искать одно и тоже.
...
Рейтинг: 0 / 0
Как отловить ошибку создания SQLEXEC
    #33550211
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил_Ю
SQLEXEC (Handle, "SELECT client.pk,client.okpo,client.nam,client.adr,client.ind,client.svid FROM client WHERE client.pk=?nClient and exists(select * from client where pk=?nClient)", "curClient")


В принципе, если запрос выполнился успешно, то, в не зависимости от числа возвращаемых строк (в том числе и 0 строк), курсор curClient должен создаться. Но.... я наблюдал случаи (в VFP 8 без SP1 8 и младше) и ТОЛЬКО при ассинхронных запросов, когда команда возвращала флаг успешного выполнения команды, а курсор не создавался. Приходилось проверять не только флаг, возвращаемый командой SQLEXEC, но и факт появления курсора (IF USED(""curClient)).
Но, полагаю, это не ваш случай.
С уважением, Алексей
...
Рейтинг: 0 / 0
Как отловить ошибку создания SQLEXEC
    #33552391
Михаил_Ю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за помощь, я разобрался через reccount.

IF RECCOUNT()=0
MESSAGEBOX('Нет клиентов')
ENDIF

Всем спасибо!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как отловить ошибку создания SQLEXEC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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