|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.05.2017, 20:27 | #1 |
Регистрация: 11.05.2017
Сообщений: 5
|
Динамическое заполнение Query запросом на обновление.
Уже несколько дней ломаю голову, запрос на обновление просто отказывается выполнятся , не могу понять в чем проблема. Проверял запрос в акссесс- все работало. Если что, выдается ошибка "Слишком мало параметров. Требуется 2". Помогите, не могу понять в чем проблема? Вот код:
begin i:=DbLookupComboBox1.KeyValue; begin with Query1 do begin Active := False; SQL.Clear; // SQL.TEXT:='UPDATE Персонал SET Персонал.Имя = "'+Edit1.Text+'", Персонал.Фамилия = "'+Edit2.Text+'", Персонал.Зарплата = '+Edit3.Text+', Персонал.Id_Должность = '+IntToStr(i)+#13#10+'WHERE Персонал.Id='+IntToStr(IDPers)+';'; SQL.TEXT:='UPDATE Персонал SET Персонал.Имя = "Василий", Персонал.Фамилия = "Уткин", Персонал.Зарплата = 4000, Персонал.Id_Должность =3 '+#13#10+' WHERE Персонал.Id= 2;'; ExecSQL; end; end; Еще есть вариант такого кода: with Query1 do begin Active := False; SQL.Clear; SQL.Add('UPDATE Ia?niiae SET Ia?niiae.Eiy = "'+Edit1.Text+'", Ia?niiae.Oaieeey = "'+Edit2.Text+'", Ia?niiae.Ca?ieaoa = '+Edit3.Text+', Ia?niiae.Id_Aie?iinou = '+IntToStr(i)+' WHERE Ia?niiae.Id=:id'); ParamByName('Id').AsInteger:=IDPers ; ExecSQL; end; end; Последний раз редактировалось Просто ПАрень; 19.05.2017 в 20:31. |
19.05.2017, 21:48 | #2 |
Регистрация: 11.05.2017
Сообщений: 5
|
База MS Access, способ доступа - BDE, ключевое поле - ID. Все поля числового и текстового типа. Мне кажется ошибка из-за того что передается текст.
В чем причина и как это исправить? Заранее спасибо. |
19.05.2017, 22:17 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Так попробуй
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
19.05.2017, 22:56 | #4 |
Регистрация: 11.05.2017
Сообщений: 5
|
Спасибо, у меня все получилось, если кому интересно то вот код:
with Query1 do begin SQL.Clear; SQL.Add('UPDATE Персонал SET Имя =:newI, Фамилия =:newF, Зарплата =:newZ, Id_Должности =:newId'); SQL.Add('WHERE Id=:Id'); ParamByName('newI').AsString:=Edit1 .Text; ParamByName('newF').AsString:=Edit2 .Text; ParamByName('newZ').AsInteger:=StrT oInt(Edit3.Text); ParamByName('newId').AsInteger:=i; ParamByName('Id').AsInteger:=IDPers ; ExecSQL; end; |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
оптимальное(?) динамическое обновление excel | peq | Microsoft Office Excel | 7 | 08.10.2014 12:11 |
Динамическое заполнение Базы, EF | squaDe | C# (си шарп) | 0 | 26.11.2012 10:53 |
Обновление двух строк одним запросом | L_M | SQL, базы данных | 5 | 03.02.2011 02:01 |
qt динамическое обновление окна | jodam | Qt и кроссплатформенное программирование С/С++ | 2 | 18.05.2010 15:45 |
Динамическое обновление таблицы | Veiron | БД в Delphi | 4 | 01.07.2009 18:08 |