|
|
|
Работа с Sybase через ADO Delphi
|
|||
|---|---|---|---|
|
#18+
Господа, приношу свои извенения за предыдущий вопрос по ХП, постараюсь оформлять теперь вопросы правильно. Итак, ASE 12, клиент Delphi7 ADO, Вопрос следующий Вызываю процедуру CREATE PROCEDURE dbo.Add_File @sysfileid numeric(10), @filename varchar(20), @part_number integer , @begindate datetime, @enddate datetime, @subsystem varchar(20), @sequence_id varchar(128) AS BEGIN insert into acceptfile values(@filename, @part_number, @begindate, @enddate, @subsystem, @sequence_id) Select @sysfileid = @@identity Select sysfileid, filename, part_number, begindate, enddate, subsystem, sequence_id from acceptfile where sysfileid = @sysfileid END в цикле Срабатывает только один раз , делает одну вставку более ничего, цикл отрабатывает множество раз проверено. Работаю через TAdoStoredProc, при срабатывании все равно не возвращает ничего, даже в датасете не создает полей. Подскажите как правильно вызывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 11:26 |
|
||
|
Работа с Sybase через ADO Delphi
|
|||
|---|---|---|---|
|
#18+
Уточни теперь еще, о каком цикле идет речь? В приведеной процедуре никаких циклов не наблюдается. И она действительно должна отрабатывать одну и только одну вставку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2004, 18:28 |
|
||
|
Работа с Sybase через ADO Delphi
|
|||
|---|---|---|---|
|
#18+
Все с процедурой более не менее ясно, Sybase видимо не делает Except когда идет нарушение уникального ключа а я на это закладывался теперь разобрался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 15:00 |
|
||
|
Работа с Sybase через ADO Delphi
|
|||
|---|---|---|---|
|
#18+
Maks_fВсе с процедурой более не менее ясно, Sybase видимо не делает Except когда идет нарушение уникального ключа а я на это закладывался теперь разобрался Если клиент может попросить вставить запись с неуникальным ключом, то можно модифицировать процедуру вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2004, 18:19 |
|
||
|
Работа с Sybase через ADO Delphi
|
|||
|---|---|---|---|
|
#18+
Да так и есть. sybase не выдает Exceptions. Если делаеш вставку из клиента простым инсерт то выдает Exception, подскажите как обработать Exception из процедуры чтоб он стандартно передался в вызывающее приложение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 10:06 |
|
||
|
Работа с Sybase через ADO Delphi
|
|||
|---|---|---|---|
|
#18+
А через какой провайдер Вы подключаетесь к ASE? - OLE DB for ODBC, - OLE DB for Sybase ASE, - ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 11:31 |
|
||
|
Работа с Sybase через ADO Delphi
|
|||
|---|---|---|---|
|
#18+
Maks_f sybase не выдает Exceptions. ASE не знает ничего про exceptions и выдавать он их не может. В ASE есть сообшения, посылаемые клиенту с помошью raiserror. ADO его ловит и может генерировать (или нет) exception. Maks_fЕсли делаеш вставку из клиента простым инсерт то выдает Exception, подскажите как обработать Exception из процедуры чтоб он стандартно передался в вызывающее приложение? Нет, если происходит нарушение первичного ключа или аналогичные ошибки (собственно, любые ошибка) сообщение с сервера всегда посылается клиентскому приложению, независимо от того, в процедуре этот оператор или нет. Проблема в ADO или в Дельфе, которые видимо по разному интерпретируют сообщения в двух этих случаях (нехорошие люди, я бы сказал). Твоя же проблема в том, что ты пытаешься размазать логику обработки между клиентом и сервером. Я бы модифицировал процедуру след. образом Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. и на клиенте просто проверял бы код возврата хранимой процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 11:34 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=120&tid=2014308]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 382ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...