powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Использование хранимых процедур SQL
10 сообщений из 10, страница 1 из 1
Использование хранимых процедур SQL
    #32023337
PQ16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу помощи! Я до последнего момента и близко не подходил к 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
Спасибо.
...
Рейтинг: 0 / 0
Использование хранимых процедур SQL
    #32023341
MadDog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверьте синтаксис объявления и вызова процедуры по Books Online. По-моему, скобки не нужны ни в create, ни в execute.
Что же касается datetime, объявите Ваши параметры(@SD и @ND) как datetime, тогда не понадобится преобразование в теле процедуры. При этом литералы могут выглядеть примерно так: '2002-11-02 15:20:00', '2002-11-02 15:25:00'.
...
Рейтинг: 0 / 0
Использование хранимых процедур SQL
    #32023348
PQ16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ. Да действительно скобки там не нужны.
пробывал вводить даты по вашему предложению результат тотже. Пробывал перебирать различные типы данных.Выдавало ошибку Stord procedur 'IOI' not found .
...
Рейтинг: 0 / 0
Использование хранимых процедур SQL
    #32023349
SergCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В хранимой процедуре криминала не видно. Вероятно есть триггер на INSERT для AnalogHisLF, который и выдает ошибку.
...
Рейтинг: 0 / 0
Использование хранимых процедур SQL
    #32023361
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там есть такая утилита командной строки isql.exe

Попробуйте выполнить запрос с её помощью. В отличии от Query SQL эта утилита выдаст место где возникает ошибка и номер строки.
...
Рейтинг: 0 / 0
Использование хранимых процедур SQL
    #32023362
pq16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В таблице ни чего нет ана пуста я ее создал для эксперимента
CREAT TABL AnalogHis (DataTime datetime(no null),TAGN real(4))
...
Рейтинг: 0 / 0
Использование хранимых процедур SQL
    #32023364
pq16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там есть такая утилита командной строки isql.exe
Пробывал. Там пишет:
This command did not return data, and it did not return any rows .
SELECT Таблицы выдает пустые строки!
...
Рейтинг: 0 / 0
Использование хранимых процедур SQL
    #32023396
Лучше посмотри на рабочую процедуру и делай так же, как я (в оригинале есть отступы):

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
...
Рейтинг: 0 / 0
Использование хранимых процедур SQL
    #32023397
pq16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем огромное спасибо!!!!
Я пкопался в доке и нашел решение проблемы

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
Теперь усе работает
...
Рейтинг: 0 / 0
Использование хранимых процедур SQL
    #32023400
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 PQ16

1. тот факт, что если в Query SQL помечен блок, то будет выполняться только он - известен? Такое чувство что у Вас остаётся помеченным блок.

2. С какими параметрами Вы запускали isql? Не может он такого выдать, если в Query SQL совсем другое. Та жа ли была база по умолчанию?

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


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