|
|
|
достало
|
|||
|---|---|---|---|
|
#18+
помжите ..... вот 2 процедуры 1 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 2 - Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. пытаемся использовать - Код: plaintext 1. первая не работает а вторая Ок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2002, 15:21:59 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
Перепутали процедуры - у Вас Sp_tttl с параметром, а вызываете ее без... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2002, 15:28:12 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
пардон ... опечатался... но проблемы не решает.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2002, 15:45:24 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
в общем работает только которая с параметром... проблема в том что нужна как раз та что без параметров.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2002, 15:52:15 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
А вот это, скорее всего связано с тем, что Sp_ttt при вызове: Код: plaintext 1. 2. возвращает информацию о столбцах... А первая - нет. Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2002, 16:03:27 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
в том то и дело что не стоит FMTONLY.... и не просто невыполняется а ругается конкретно.... The operation could not be performed because the OLE DB provider 'MSDASQL' was unable to begin a distributed transaction. [OLE/DB provider returned message: [Microsoft][ODBC Visual FoxPro Driver]Driver not capable] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2002, 16:16:36 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
в том то и дело что не стоит FMTONLY.... Вы не поняли меня. Речь о том, что если запустить Ваши процедуры с опцией FMTONLY (например, в Query Analyzer), то одна из них вернет набор столбцов, другая - нет. Причем та, что вернет, не будет работать, ежели из нее SELECT убрать.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2002, 16:27:50 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
Код: plaintext возвращает конкретные данные.... таблица около 7000 строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2002, 16:40:42 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
Давайте все с нуля (т.к. были опечатки): 1. Тело каждой из процедур 2. Вызовы - работающие и нет 3. Вызовы после установки SET FMTONLY ON ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2002, 16:57:16 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
процедура 1 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. процедура 2 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. и соответственно вызовы... 1 - работает Код: plaintext 1. 2 - не работает Код: plaintext если перед вызовом выставить FMTONLY ON nто все равно первая возвращает структуру, а вторая ругается... да во второй процедуре в принципе подставляется тот же параметр что и в первой просто формируется по другому.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2002, 17:12:30 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
А проверялось, что содержится в переменной @t после соотв. селекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2002, 17:54:03 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
Убедиться бы в этом не мешало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2002, 17:59:22 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
Все таки, мне кажется, что все дело в FMTONLY. Скажем, для второй процедуры (Sp_ttt) значение @t при вызове с FMTONLY (а именно с FMTONLY оно вызывается сначала в случае OPENROWSET) будет пуста... Соответственно, вложенный OPENROWSET ничего не получает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2002, 18:06:51 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
база tt : единственный столбец - id единственная строка - 33 база allbases: поле id поле tbl (varchar(30)) имена таблиц Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2002, 18:12:15 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
в базе main.dbf около 7000 записей.... и еще раз повторяю первый запрос возвращает все записи... второй ругается :- The operation could not be performed because the OLE DB provider 'MSDASQL' was unable to begin a distributed transaction. [OLE/DB provider returned message: [Microsoft][ODBC Visual FoxPro Driver]Driver not capable] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2002, 18:17:21 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
и еще ... заменил exec на print @t print @sqltxt резултаты абсолютно идентичны!.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2002, 18:29:07 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
вооот.... и тишинаааа.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2002, 09:37:37 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
Ok Ну а простой вызов EXEC [best].[dbo].[Sp_ttt] с FMTONLY ON/OFF что дает ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2002, 10:01:12 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
MSDTC запущен? Процедура запускается не из-под триггером случайно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2002, 10:58:01 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
Glory с FMTONLY OFF просто exec возвращает записи и OFF возвращает структуру.... Dankov в том то и дело что нет.... когда использую просто exec обе работают нормально, т.е. возвращают записи как только через openquery или openrowset ... грабли... там где имя таблици формируется динамически с использованием таблиц грабли... где параметр передаю все ок!... но ведь нужно динамически блин! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2002, 12:25:12 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
У меня вот это работает без проблем Код: plaintext 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. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2002, 13:12:49 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
пе прокатит.... :(( нужен FOXPRO-шный драйвер.... есть базы которые только он и откроет.... базы клипперовские индексы CDX.... в принципе нужно это иногда.... и только чтобы создать метаданные по этим таблицам... потом используя их динамически создавать временные таблицы для связки INSERT EXEC... если б работал select exec вообще прблем бы не было.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2002, 14:16:26 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
Если вникнуть в смысел ошибки "was unable to begin a distributed transaction", то становится очевидно, что MSDTC должен быть обязатлеьно запущен, ибо без него любая distributed транзакция благополучно обломится. А вот почему она становится distributed в случае с двумя селектами, это интересно, но непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2002, 18:30:56 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
MSDTC точно запущен.... система w2k server не понятно зачем распределенная транзакация? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2002, 18:54:44 |
|
||
|
достало
|
|||
|---|---|---|---|
|
#18+
На самом деле распределенная транзакция может стартовать. Все зависит от установки SET IMPLICIT_TRANSACTIONS ON/OFF Проверить это легко Поставьте перед EXEC(@sqltxt) запрос вида SELECT @@TRANCOUNT Если при выполнении Sp_ttt SET IMPLICIT_TRANSACTIONS установлена в ON, то SELECT TOP 1 @id =[id] FROM tt совершенно справедливо (т.е. в соответствии с BOL) стартует транзакцию, которая будет продолжатся до окончания пакета или до явного COMMIT/ROLLBACK. Поэтому попадающий в эту транзакцию OPENROWSET() и ваызывает ошибку т.к. Microsoft Visual FoxPro Driver не поддерживает транзакций. Попробуйте "боротся" с ошибкой с помощью явного указания SET IMPLICIT_TRANSACTIONS OFF в тексте процедуры или проверкой состояния @@TRANCOUNT перед выполнением EXEC(@sqltxt) if @@trancount > 0 commit transaction EXEC(@sqltxt) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2002, 15:49:43 |
|
||
|
|

start [/forum/topic.php?all=1&fid=46&tid=1821676]: |
0ms |
get settings: |
6ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 298ms |

| 0 / 0 |
