|
|
|
Как отловить ошибку создания SQLEXEC
|
|||
|---|---|---|---|
|
#18+
При выполнении запроса на сервер в таблицах может не быть данных или они не соответствуют заданным условиям, в результате курсора нет и отчет не печатается. Как отловить эту ошибку в программе чтобы выдать сообщение об отсутсвии данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 17:21 |
|
||
|
Как отловить ошибку создания SQLEXEC
|
|||
|---|---|---|---|
|
#18+
Пустой курсор должен сформироваться, вот и проверяй кол=во записей в нём ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 17:26 |
|
||
|
Как отловить ошибку создания SQLEXEC
|
|||
|---|---|---|---|
|
#18+
не получается ни через _tally ни через count ни через reccount ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 17:57 |
|
||
|
Как отловить ошибку создания SQLEXEC
|
|||
|---|---|---|---|
|
#18+
А как запрос выполняется? CAD? SQLEXEC? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 18:14 |
|
||
|
Как отловить ошибку создания SQLEXEC
|
|||
|---|---|---|---|
|
#18+
не получается ни через _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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 18:19 |
|
||
|
Как отловить ошибку создания SQLEXEC
|
|||
|---|---|---|---|
|
#18+
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") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 18:19 |
|
||
|
Как отловить ошибку создания SQLEXEC
|
|||
|---|---|---|---|
|
#18+
А не пробовали посмотреть результат выполнения SQLEXEC? То есть: Код: plaintext Вроде бы должен возвращать количество полученных наборов данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 18:26 |
|
||
|
Как отловить ошибку создания SQLEXEC
|
|||
|---|---|---|---|
|
#18+
автор 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") Ну а это масло масленое. Если запись существует, то она и так будет выбрана. Зачем же сервер заставлять два раза искать одно и тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 18:33 |
|
||
|
Как отловить ошибку создания SQLEXEC
|
|||
|---|---|---|---|
|
#18+
Михаил_Ю 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)). Но, полагаю, это не ваш случай. С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 18:46 |
|
||
|
|

start [/forum/topic.php?fid=41&gotonew=1&tid=1592322]: |
0ms |
get settings: |
4ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
156ms |
get topic data: |
7ms |
get first new msg: |
3ms |
get forum data: |
1ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 408ms |

| 0 / 0 |
