Голосование за лучший ответ
Сергей Токмаков
Мыслитель
(6852)
14 лет назад
Делфи на данный момент не изучен, но из выдаваемой ошибки видно что какая то команда не правильно написана и эта переменная не возвращает ни какого результата, то есть ей ни чего не присваивается, если я правильно понял
Сизов Максим
Мудрец
(18743)
14 лет назад
Все верно. С какого это перепоя update возвращает датасет, просто из из SQL вызвать никак нельзя ?
Вообще явно списано с методички "как нельзя проектировать базы данных". И учите наконец английский - вопрос очень тупой.
Усть хранимая процедура Pass_upd
CREATE PROCEDURE Pass_UPD
@worker_surnamevarchar(50),
@password varchar(50)
AS
UPDATE worker SET password=@password WHERE worker_surname=@worker_surname
GO
На форме combobox и maskedit, ADOconnection, ado query & adostoredproc. В свойствах adostoredproc задано adoconnection и хранимая процедура.
Данные на сервак передаю следующим образом:
procedure TAdm_ChangePass.Button1Click(Sender: TObject);
var k: integer;
s: string;
begin
Try
ADOConnection1.BeginTrans;
with DM.ADOStoredProc1 do
begin
k:=Combobox1.ItemIndex;
s:=Combobox1.Items.Strings[k];
Parameters.ParambyName('@worker_surname').Value:=s;
Parameters.ParamByName('@password').Value:=MaskEdit1.Text;
end;
ADOStoredProc1.ExecProc;
ADOConnection1.CommitTrans;
Except
ADOConnection1.RollbackTrans;
ShowMessage('Невозможно выполнить. Повторите.');
end;
Когда пытаюсь активировать adostoredproc то в ответ получаю ругань adostoredproc1 command text does not return a result set.
Что не так?