С Новым годом! Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/19: Рейтинг темы: голосов - 19, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 24.01.2008
Сообщений: 9

Помогите с процедурой не пойму, что происходит

31.01.2008, 21:11. Показов 4088. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Это процедура работает в SQL 6.5, а в SQL 7 и 2000 не работает
что делать
Вот процедура
T-SQL
1
2
3
4
5
6
7
8
9
10
11
if exists (select * from sysobjects where id=object_id('dbo.GetKod') and sysstat & oxf=4)
      drop procedure dbo.GetKod
go
 
  creat procedure dbo.GetKod
  @TableName char(10),
  @Kod int OUTPUT
AS
  UPDATE Kod generator
  set @kod=kod=kod+1
  where TableName=@TableName
после запуска выдает ошипку

Error 111 alter procedure must be the first statement in a query batch
must declare the variable '@kod'
или
Error 21037

Помогите, что делать
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.01.2008, 21:11
Ответы с готовыми решениями:

не пойму что происходит
Ребят не могу понять что происходит с файлами в файлах лежащих на хосте появляются разнообразные дописки думала вскрыли хостинг но на...

Не пойму что происходит с сайтом
Доброго времени суток? :( Сайт MaritalAgency(точка)org (новый), по запросом «брачное агентство» и «международное брачное агентство»...

Не работают стили или не пойму что происходит
Здравствуйте прошу помощи у знатоков, открываю файл, запускаю html а у меня на странице появляется кракозябра, все в столбик, все картинки,...

6
AiK
31.01.2008, 23:32
Во-первых, нужно быть уверенным, что базы case unsensetive, для того, чтобы так произвольно обращаться с регистром в переменных.
Во-вторых, не уверен, что и 6.5 будет работать конструкция
set @kod=kod=kod+1
можешь copy+paste сделать, а не писать по памяти?
Кроме того, 21037 - явно к делу не относится.
0 / 0 / 0
Регистрация: 24.01.2008
Сообщений: 9
01.02.2008, 00:44  [ТС]
я так и сделал память дырявая
А данная конструкция работает уже пару лет в 6.5 и никаких проблем, а тут захотелось перехать на новый SQL, а он порез процедуру сделал ее такой

T-SQL
1
2
3
4
5
6
7
(creat procedure dbo.GetKod
@TableName char(10),
@Kod int OUTPUT
AS
UPDATE Kod generator
set @kod=kod=kod+1
where TableName=@TableName)
Но дельфовский клиент ругается на SQL и указывает на dbo.GetKod
я попытался вернуть исходный текст, а он выдает ошибку 111, а ошибка 21037 выскочила 1 раз не знаю почему.
теперь и незнаю ,что делать старых исходников уже и ненайти, а заново лень.
0
AiK
01.02.2008, 03:02
Слушай, не морочь людям голову.
Тут возможны только два варианта
1) этот код никогда не работал
2) ты криво копируешь

например в SQL нет creat, а есть create

и есть ещё минимум одна синтаксическая ошибка
0 / 0 / 0
Регистрация: 24.01.2008
Сообщений: 9
01.02.2008, 22:37  [ТС]
Головы морочу только женщинам, а сдесь допустил несколько ошибок чтож каюсь алкоголь серьезно несовместим с грамотностью.

Но вернемся к нашим баранам вот они свеже скопированные теперь вроде без ошибок и create сам на себя похож да и еще несколько ошбок исправил.
Вот код рабочий

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// код для SQL 6.5
 
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id('dbo.GetKod') AND sysstat & 0xf = 4)
    DROP PROCEDURE 'dbo'.'GetKod'
GO
 
/****** Object:  Stored Procedure dbo.GetKod    Script Date: 25.01.98 16:40:25 ******/
CREATE PROCEDURE dbo.GetKod
  @TableName CHAR(10),
  @Kod INT OUTPUT
AS
  UPDATE KodGenerator
    SET @Kod = Kod = Kod + 1
    WHERE TableName = @TableName
 
GO
//
И все работает это большой комплекс.
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//А вот код в SQL 7
 
/****** Object:  Stored Procedure dbo.GetKod    Script Date: 22.11.01 16:14:15 ******/
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id('dbo.GetKod') AND sysstat & 0xf = 4)
    DROP PROCEDURE 'dbo'.'GetKod'
 
/****** Object:  Stored Procedure dbo.GetKod    Script Date: 25.01.98 16:40:25 ******/
CREATE PROCEDURE dbo.GetKod
  @TableName CHAR(10),
  @Kod INT OUTPUT
AS
  UPDATE KodGenerator
    SET @Kod = Kod = Kod + 1
    WHERE TableName = @TableName
//
семерка говорит, что все работает но клиет ругается и нехочет с ним работать, а добавление строк вызывает 111 ошибку. что за ерунда.
0
0 / 0 / 0
Регистрация: 24.01.2008
Сообщений: 9
01.02.2008, 22:41  [ТС]
Да еще строка drop procedure dbo.GetKod естественно без ковычек.
0
AiK
01.02.2008, 22:50
Ну так правильно, батчи кто разделять-то будет, Пушкин?
Тебе пишут английским по белому - create procedure statement
должен быть первым в батче.
В консоли есть свой разделитель go.
Что у тебя на клиенте - не знаю, возможно тот же go прокатит.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.02.2008, 22:50
Помогаю со студенческими работами здесь

ASP.NET: происходит что-то странное, никак не пойму, в чем дело...
Привет, всем. Я разрабатываю веб-сайт используя технологию ASP.NET. И вот, совершенной неожиданно, у меня стали происходить совершенно...

Помогите исправить ошибки в программе. Не пойму что не так
Помогите пожалуйста понять суть ошибок. 20 ошибок "binary '<<' : no operator defined which takes a right-hand operand of type 'class...

Помогите настроить Windows 10 не могу понять что с ней происходит
помогите настроить Windows 10 не могу понять что с ней происходит приобрел новый компьютер б.у вот его параметры процесор - intel...

Не пойму где происходит переполнение массива
Я ошибся не переполнение, а выход за пределы #include <iostream> #include <locale.h> #include <ctime> using namespace std; ...

8.2 Помогите С Процедурой
Помогите разобраться с задачей. Перепробывал много вариантов, но так как я новичёк, ответа так и не нашёл. Необходимо в табличной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru