Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хранимая процедура exec sp_executesql, exec sp_executesql 
:(
    Опции темы
prostoia
Дата 28.4.2008, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 30.1.2008

Репутация: нет
Всего: нет



Здрасти!
Кратенько о смысле задачи:

селектом я определяю айди записи где есть два параметра которые приходят из программы, 
два адреса а_адрес и о_адрес если таковой имеется то в s_id храним значение id этой строки,
и точно с таким же айди формируем запись в другой таблице и с другими входными параметрами, 
значения которых берутся из программы.

Ошибок не выдается не в программе, не SQl не ругается все кампилируется..., 
вот толька результата нет, я так чувствую это ошибка в exec sp_executesql.

Пожалуста знающие люди подскажите!!!!!!!!!!


...
ALTER PROCEDURE [dbo].[INSERT_HOUR_TABLE] 
    -- Add the parameters for the stored procedure here

        @A_ADDRESS varchar(max),
    @O_ADDRESS varchar(max),
    @VALUE real,
    @T datetime,
        @MilSec int,
    @Q int,
        @Type int,
    @nametabl varchar(max), --название таблицы приходит из программы
        @stnum varchar(max),
    @conf varchar(max),    --название таблицы2 приходит из программы
    @conf_id varchar(max) --название поля приходит из программы
    
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    DECLARE @s_id int
    DECLARE @s_id1 nvarchar(max)


SET @s_id1 = N'SELECT @s_id= ' + @conf_id +' from ' + @conf +' s  join SECTORS se on s.sector_id=se.sector_id WHERE se.A_ADDRESS= ''' + @A_ADDRESS + ''' AND s.O_ADDRESS= ''' + @O_ADDRESS + ''''
exec sp_executesql @s_id1, N'@s_id int out', @s_id  out


if @s_id is not NULL
begin


Declare @SQL nvarchar(max)


SET @SQL = N'INSERT INTO' + @nametabl+ '([TIMESTAMP],[MSEC],[VALUE],[QUALITY],[TREC],'+ @conf_id +')VALUES ('''+CONVERT(varchar, @T,120)+''',@MilSec,@VALUE,@Q, GETDATE(),@s_id)'
exec sp_executesql  @SQL, N'@T DATETIME, @MilSec INT, @VALUE FLOAT, @Q INT, @s_id INT', @T, @MilSec, @VALUE, @Q, @s_id-- с этой процедурой ошибка вероятно.




end
END

PM MAIL   Вверх
Magnifico
Дата 29.4.2008, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 10
Всего: 17



Код

SET @SQL = N'INSERT INTO' + @nametabl+ '([TIMESTAMP],[MSEC],[VALUE],[QUALITY],[TREC],'+ @conf_id +')VALUES ('''+CONVERT(varchar, @T,120)+''',@MilSec,@VALUE,@Q, GETDATE(),@s_id)'
exec sp_executesql  @SQL, N'@T DATETIME, @MilSec INT, @VALUE FLOAT, @Q INT, @s_id INT', @T, @MilSec, @VALUE, @Q, @s_id

 идет явная вставка в поле timestamp  что недопустимо , в sqlserevere timestamp никакого отношения 
к дате-времени не имеет.

полей в таблице 6 а параметров 5 (@T DATETIME, @MilSec INT, @VALUE FLOAT, @Q INT, @s_id INT')
пробелов пропущено после into   и перед values 

такой код отладки требует  - нужно давать скрипты всех таблиц участвующих в запросе.



--------------------
Всё  в  порядке   -   спасибо  зарядке  !
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0387 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.