powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Пишу вторую в жизни хранимую процедуру. Поможите :)
2 сообщений из 2, страница 1 из 1
Пишу вторую в жизни хранимую процедуру. Поможите :)
    #32012728
VictorSvetlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача: Есть таблица Unicator, в которой одна запись и куча полей. В ней хранятся идентификаторы для новых записей. При создании записи нужно получить результат, равных имеющемуся значению+1 и изменить имеющееся значение.

Пишу:
CREATE PROCEDURE [dbo].[SP_GetNewID]
@vchIDName varchar(30),
@iReturn int output
as
set nocount on
begin transaction
select @iReturn = (select (@vchIDName + 1) from Unicator)
Update Unicator Set @vchIDName = @iReturn
commit
GO

Тест на корректность проходит, процедура сохраняется. Но при вызове из Дельфи ругается:
'Syntax error converting the varchar value 'такое-то' to a column or data type int'.
Что я делаю неправильно?
...
Рейтинг: 0 / 0
Пишу вторую в жизни хранимую процедуру. Поможите :)
    #32012829
Commander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может я и ошибаюсь, но по-моему неправильное - в строке
select @iReturn = (select (@vchIDName + 1) from Unicator)
Насколько я понимаю, varchar это нечто символьное. И как Вы прибавляете к нему 1 ??!! К тому же, этот результат сложения баранов с вертолётами пытаетесь присвоить переменной типа int. (может, сервер и поддерживает такие операции, но я об этом, сорри, не знал)

Далее. Судя по всему, @vchIDName - входная переменная. Если она содержит имя поля в таблице Unicator, то я ещё могу понять строку
Update Unicator Set @vchIDName = @iReturn
В противном случае упоминания в селекте и апдейте таблицы Unicator просто бессмысленны!

Помогло бы совесное описание. Но оно только запутывает (меня, по крайней мере).
В ней хранятся идентификаторы для новых записей ЧЕГО?
При создании записи ГДЕ? (в коде процедуры я не вижу никаких созданий чего-либо)
имеющемуся значению ГДЕ?

Поподробнее пожалуйста!
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Пишу вторую в жизни хранимую процедуру. Поможите :)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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