Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Использование хранимых процедур SQL
|
|||
|---|---|---|---|
|
#18+
Прошу помощи! Я до последнего момента и близко не подходил к SQL БД. Но жизнь заставила. Пытаюсь самостоятельно справиться с этим зверем. Есть хранимая процедура: CREATE PROCEDURE AnalogLF ( @SD varchar(35), @ND varchar(35)) AS DECLARE StartDate datetime, EndDate datetime SELECT StartDate=CONVERT(datetime,@SD) SELECT EndDate= CONVERT(datetime,@ND) INSERT INTO AnalogHisLF(DateTime,TAGN) SELECT DateTime, Value FROM AnalogHistory WHERE DateTime>@StartDate AND DateTime<@EndDate AND TagName=’TAGN’ GO Вот строка запроса из Query SQL: EXEC AnalogLF(‘02/11/02 15:20:00’, ‘02/11/02 15:25:00’) Выдает ошибку: Stored procedur ‘I’ not Found У меня подозрение, что я что-то напутал с форматом datetime Я использую MSSQL 6.5 Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 07:01 |
|
||
|
Использование хранимых процедур SQL
|
|||
|---|---|---|---|
|
#18+
Проверьте синтаксис объявления и вызова процедуры по Books Online. По-моему, скобки не нужны ни в create, ни в execute. Что же касается datetime, объявите Ваши параметры(@SD и @ND) как datetime, тогда не понадобится преобразование в теле процедуры. При этом литералы могут выглядеть примерно так: '2002-11-02 15:20:00', '2002-11-02 15:25:00'. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 07:35 |
|
||
|
Использование хранимых процедур SQL
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ. Да действительно скобки там не нужны. пробывал вводить даты по вашему предложению результат тотже. Пробывал перебирать различные типы данных.Выдавало ошибку Stord procedur 'IOI' not found . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 08:00 |
|
||
|
Использование хранимых процедур SQL
|
|||
|---|---|---|---|
|
#18+
В хранимой процедуре криминала не видно. Вероятно есть триггер на INSERT для AnalogHisLF, который и выдает ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 08:03 |
|
||
|
Использование хранимых процедур SQL
|
|||
|---|---|---|---|
|
#18+
Там есть такая утилита командной строки isql.exe Попробуйте выполнить запрос с её помощью. В отличии от Query SQL эта утилита выдаст место где возникает ошибка и номер строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 08:57 |
|
||
|
Использование хранимых процедур SQL
|
|||
|---|---|---|---|
|
#18+
В таблице ни чего нет ана пуста я ее создал для эксперимента CREAT TABL AnalogHis (DataTime datetime(no null),TAGN real(4)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 08:59 |
|
||
|
Использование хранимых процедур SQL
|
|||
|---|---|---|---|
|
#18+
Там есть такая утилита командной строки isql.exe Пробывал. Там пишет: This command did not return data, and it did not return any rows . SELECT Таблицы выдает пустые строки! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 09:17 |
|
||
|
Использование хранимых процедур SQL
|
|||
|---|---|---|---|
|
#18+
Лучше посмотри на рабочую процедуру и делай так же, как я (в оригинале есть отступы): SET QUOTED_IDENTIFIER ON GO if exists (select * from sysobjects where id = object_id('"dbo"."akBankIncomeFinalizer"') and sysstat & 0xf = 4) drop procedure "dbo"."akBankIncomeFinalizer" GO CREATE PROCEDURE akBankIncomeFinalizer AS BEGIN DECLARE @I INT, @Id ABusinessOperationId, @FOpId AnIdentifier /* initialize execution state */ DECLARE @Result INT SET NOCOUNT ON SET @Result = 0 SET @I = 1 BEGIN TRANSACTION WHILE (@I <= 5) BEGIN SET @Id = NULL SELECT TOP 1 @Id = FBIS."Id" FROM ABusinessOperation BO INNER JOIN AFinBankIncomingOperation BIO ON (BO."Id" = BIO."Id") INNER JOIN AFinBankIncomeSplitted FBIS ON (BIO."Id" = FBIS."Id") WHERE (BIO.AssignedRate <> 0.0) AND (BO."Done" = 0) AND (BO."RolledBack" = 0) AND (BIO.FinalizeByJob <> 0) SET @Result = @@ERROR IF (@Result <> 0) OR (@Id IS NULL) GOTO fin EXEC @Result = akFinalizeBankIncomeOperation @Id, @FOpId OUTPUT IF @Result <> 0 GOTO fin SET @I = @I + 1 END /* finalize transaction */ fin: IF @@TRANCOUNT > 0 BEGIN IF @Result <> 0 ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION END RETURN @Result END GO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 12:58 |
|
||
|
Использование хранимых процедур SQL
|
|||
|---|---|---|---|
|
#18+
Всем огромное спасибо!!!! Я пкопался в доке и нашел решение проблемы CREATE PROCEDURE AnalogLF @SD varchar(35), @ND varchar(35) AS DECLARE StartDate datetime, EndDate datetime SELECT StartDate=CONVERT(datetime,@SD,100)код конвертации из 02/11/2002 15:10:00 в дату Feb 11 2002 3:10PM SELECT EndDate= CONVERT(datetime,@ND,100) понятную SQL INSERT INTO AnalogHisLF(DateTime,TAGN) SELECT DateTime, Value FROM AnalogHistory WHERE DateTime>@StartDate AND DateTime<@EndDate AND TagName=’TAGN’ GO Теперь усе работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 13:08 |
|
||
|
Использование хранимых процедур SQL
|
|||
|---|---|---|---|
|
#18+
2 PQ16 1. тот факт, что если в Query SQL помечен блок, то будет выполняться только он - известен? Такое чувство что у Вас остаётся помеченным блок. 2. С какими параметрами Вы запускали isql? Не может он такого выдать, если в Query SQL совсем другое. Та жа ли была база по умолчанию? Не читайте что Вам тут насоветовали, просто посмотрите повнимательнее что у Вас написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2002, 13:14 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32023397&tid=1823847]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
137ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 479ms |

| 0 / 0 |
