Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как отловить ошибку создания SQLEXEC / 10 сообщений из 10, страница 1 из 1
16.02.2006, 17:21
    #33549931
Михаил_Ю
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить ошибку создания SQLEXEC
При выполнении запроса на сервер в таблицах может не быть данных или они не соответствуют заданным условиям, в результате курсора нет и отчет не печатается. Как отловить эту ошибку в программе чтобы выдать сообщение об отсутсвии данных.
...
Рейтинг: 0 / 0
16.02.2006, 17:26
    #33549958
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить ошибку создания SQLEXEC
Пустой курсор должен сформироваться, вот и проверяй кол=во записей в нём
...
Рейтинг: 0 / 0
16.02.2006, 17:57
    #33550070
Михаил_Ю
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить ошибку создания SQLEXEC
не получается ни через _tally ни через count ни через reccount
...
Рейтинг: 0 / 0
16.02.2006, 18:14
    #33550118
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить ошибку создания SQLEXEC
А как запрос выполняется? CAD? SQLEXEC?
...
Рейтинг: 0 / 0
16.02.2006, 18:19
    #33550135
Serg_wrn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить ошибку создания SQLEXEC
не получается ни через _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
16.02.2006, 18:19
    #33550137
Михаил_Ю
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить ошибку создания SQLEXEC
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
16.02.2006, 18:26
    #33550170
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить ошибку создания SQLEXEC
А не пробовали посмотреть результат выполнения SQLEXEC?

То есть:

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

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

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
16.02.2006, 18:46
    #33550211
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить ошибку создания SQLEXEC
Михаил_Ю
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
17.02.2006, 15:02
    #33552391
Михаил_Ю
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить ошибку создания SQLEXEC
Всем спасибо за помощь, я разобрался через reccount.

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

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


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