Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: Перезапись значений в таблице MSSQL через хранимую процедуру.

  1. #1

    По умолчанию Перезапись значений в таблице MSSQL через хранимую процедуру.

    Добрый день. Не получается реализовать перезапись значений переменных в таблицу MSSQL. Есть таблица в одну строку и 27 столбцов. Первый столбец dat-время обновления значений, все остальные это название переменных.
    SQL_1.jpg
    и хранимая процедура
    SQL_2.jpg при вызове процедуры перезаписывается только столбец dat. Ошибка как мне кажется в представлении имени столбца виде переменной @it_name.
    Сама программа в MS4D:

    pCommand:=EXEC [dbo].[UpdateDeaerator] @it_name = {it_name}, @value = {value}

    FOR i :=0 TO count-1 DO
    i:= i +1;
    SqlRequest_2(Command:=pCommand , Transaction:=pTransaction
    , it_name:=deaerator_old[i].it_name , value:=deaerator_old[i].value, Error => pError );
    END_FOR

  2. #2

    По умолчанию

    А @it_name точно не '' всегда... Если убрать присваивание?SQL_2.jpg
    Последний раз редактировалось МихаилГл; 24.04.2025 в 07:55.

  3. #3

    По умолчанию

    SQL_3.jpg ни чего не поменялось. dat перезаписывается, переменные нет.

  4. #4

    По умолчанию

    Цитата Сообщение от Enigma Посмотреть сообщение
    ... ни чего не поменялось. dat перезаписывается, переменные нет.
    А параметры точно предаются таким запросом? Я в ms4d не шарю.
    Кстати, скиньте таблицу из конструктора, что у вас там за переменные, может не флоат... И я честно не знаю, какой тип имеют наименования столбцов, может тут еще проблема. Или чистым sql запросом такая конструкция через declare работает?

  5. #5

    По умолчанию

    Имя столбца не обрабатывает
    Код:
    use aq1
    declare
    @it_name varchar(255),
    @value float
    
    SET @it_name = 'FE5'
    SET @value = 0
    begin
    update [aq1].[dbo].[deaerator_web1] set dat = CURRENT_TIMESTAMP, @it_name = @value
    end
    Хотя проходит без ошибок...

    PS Время меняется, данные нет
    Последний раз редактировалось МихаилГл; 24.04.2025 в 09:41.

  6. #6

    По умолчанию

    У меня получилось записывать в базу как в примере от MS4D https://www.masterscada.ru/faq/prime...istviya-s-subd
    SQL_4.jpgSQL_5.jpg

  7. #7

    По умолчанию

    Цитата Сообщение от Enigma Посмотреть сообщение
    У меня получилось записывать в базу как в примере от MS4D https://www.masterscada.ru/faq/prime...istviya-s-subd
    SQL_4.jpgSQL_5.jpg
    Тут @it_name это переменная в столбце kks, а не наименование столбца.

  8. #8

    По умолчанию

    Я ничего не понимаю в TSQL, но, как, Вы просто присваиваете значение одной локальной переменной процедуры значение другой локальной переменной той же процедуры

    update [aq1].[dbo].[deaerator_web1] set dat = CURRENT_TIMESTAMP, @it_name = @value

    НЯП, на выходе в @it_name запишется преобразованное в varchar2 значение @value.

    Почему для dat Вы указываете просто имя столбца, а для FE5 вместо имени @it_name.
    Что-то у Вас с синтаксисом не так. ПМСМ.

  9. #9

    По умолчанию

    Он параметром передает имя столбца, но похоже это не так делается.

    Вот тут что-то есть
    https://ru.stackoverflow.com/questio...3%D1%8E-ms-sql
    щас попробуем...
    Последний раз редактировалось МихаилГл; 24.04.2025 в 10:02.

  10. #10

    По умолчанию

    Цитата Сообщение от МихаилГл Посмотреть сообщение
    Он параметром передает имя столбца, но похоже это не так делается.
    Это я понимаю, что параметром. Я в MS SQL и TSQL ничего не понимаю, но в Oracle, например, такой (в таком виде) финт ушами точно не прокатит.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Ответов: 7
    Последнее сообщение: 29.01.2019, 11:47
  2. Работа с архивами MSSQL через скрипты С#
    от z-renat в разделе Master SCADA 3
    Ответов: 0
    Последнее сообщение: 05.04.2017, 14:17
  3. Ответов: 2
    Последнее сообщение: 04.06.2016, 11:55
  4. Ответов: 4
    Последнее сообщение: 01.09.2015, 16:55
  5. Запись значений в ТРМ101 через OPC
    от Balog в разделе Помощь Разработчикам
    Ответов: 4
    Последнее сообщение: 04.02.2008, 15:59

Ваши права

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