PDA

Просмотр полной версии : Проблема с базами данных MSSQL



ahat
23.06.2015, 12:28
Проблема возникла при записи в БД. Все действия проводил по методичке из документации на оф сайте мастер скада (пункт 1.1). По результатам выполненного получается код ошибки 2 - Не удалось найти хранимую процедуру "AddVal". В SQL Server Management Studio имя процедуры объявлено AddVal. В добавленной процедуре в самой скаде имя хранимой процедуры прописано AddVal.
Вопрос: к какому тогда имени обращается скада? или есть ещё какая-то ошибка?

SCADAMaster
23.06.2015, 16:35
Пришлите отчет об ошибках. Для того чтобы сформировать отчет об ошибках:
В Режиме Исполнения (RT):
"Сервис"->"Отчет об ошибках" или
Alt+F10 ->"Отчет об ошибках"
Поставьте галочку "Включая конфигурацию текущего проекта". Сформированную папку заархивируйте и вышлите нам. Если размер архива превышает 5 мб, то выложите его на файлообменник (например Yandex.Disk, Google Drive), а нам пришлите ссылку.

ahat
24.06.2015, 16:52
Здравствуйте, вышеописанная проблема была решена, теперь возникла следующая: в примере по записи данных в БД параметры записываются с помощью пульсатора, время записи определяется константой в настройках данного ФБ. Мне необходимо записывать данные таблицы по нажатию кнопки, проблема в том, чтоб были столбцы ID, имени и числовое значение. Всего 8 строк.
Программа для записи одной строки выглядит примерно так:
ALTER PROCEDURE sp_ud1
@pname nvarchar(50),
@pval float
AS
BEGIN
SET NOCOUNT ON;
Insert into tb_ud1(pname,pval)
values (@pname,@pval);
END
GO
что необходимо сделать, чтоб записывать значение всех строк таблицы?

SCADAMaster
24.06.2015, 21:33
Что значение всех строк таблицы? Вы хотите писать архив? Поставьте галочку "Использовать архивные значения" - подробнее можно прочитать в той же документации.

ahat
25.06.2015, 14:54
Необходимо соединить показание таблицы с БД. Но таким образом, чтобы определённая строка соответствовала определённому id в БД. Порылся в инете и сделал по аналогии, ошибок нет, вот только не выводит показания в таблицу.
ALTER PROCEDURE [dbo].[sp_ud1]
@pname1 nvarchar(50),
@pval1 float,
@pname2 nvarchar(50),
@pval2 float,
@pname3 nvarchar(50),
@pval3 float,
@pname4 nvarchar(50),
@pval4 float,
@pname5 nvarchar(50),
@pval5 float,
@pname6 nvarchar(50),
@pval6 float,
@pname7 nvarchar(50),
@pval7 float,
@pname8 nvarchar(50),
@pval8 float
AS
BEGIN
update tb_ud1 set
pname=@pname1,pval=@pval1
where id=1
update tb_ud1 set
pname=@pname2,pval=@pval2
where id=2
update tb_ud1 set
pname=@pname3,pval=@pval3
where id=3
update tb_ud1 set
pname=@pname4,pval=@pval4
where id=4
update tb_ud1 set
pname=@pname5,pval=@pval5
where id=5
update tb_ud1 set
pname=@pname6,pval=@pval6
where id=6
update tb_ud1 set
pname=@pname7,pval=@pval7
where id=7
update tb_ud1
set pname=@pname8,pval=@pval8
where id=8
END

И ещё вопрос: можно ли изменить ФБ таблица так, чтобы задавать и изменять имя параметра (слово в первом столбце) в запущенном режиме.

SCADAMaster
25.06.2015, 15:30
Не совсем понятно что именно вы хотите сделать. Судя по вашему запросу у вас идет в базу данных (точнее правка данных). Причем здесь тогда ФБ "Таблица"?