Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2010, 02:22   #11
Morfius01
Пользователь
 
Регистрация: 18.12.2010
Сообщений: 12
По умолчанию

Цитата:
Вам будет полезно почитать про SQL иначе на каждое своё новое действие вы будете создавать новую тему, литературу можно посмотреть по это ссылке, или поискать в интернете, или купить книжку
в будущем обязательно, но сейчас хотелось бы помощи, ибо курсач сдавать на неделе. У меня уже все работает, это последняя процедура осталась.
Morfius01 вне форума Ответить с цитированием
Старый 19.12.2010, 02:38   #12
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

вообще то сдача курсовой работы(своей) подразумевает под собой, что вы понимаете что делали и как.
в любом случае общий синтаксис я описал.
в вашем случае
Код:
form3.ADOQuery2.SQL.add('UPDATE score ' +Form3.C omboBox2.text+ '= :value_');
form3.adoquery2.SQL.Add('where [Код студента]='+Kst);
form3.adoquery2.SQL.Add('and [Предмет]='+predmet);
if form3.RadioButton1.checked=true then form3.ADOquery2.Parameters.ParamByName('value_').Value:='3';
if form3.RadioButton2.checked=true then form3.ADOquery2.Parameters.ParamByName('value_').Value:='4';
if form3.RadioButton3.checked=true then form3.ADOquery2.Parameters.ParamByName('value_').Value:='5';
if form3.RadioButton4.checked=true then form3.ADOquery2.Parameters.ParamByName('value_').Value:='Зачет';
if form3.RadioButton5.checked=true then form3.ADOquery2.Parameters.ParamByName('value_').Value:='Не зачет';
form3.ADOQuery2.execsql;
примерно так
ЗЫ: хотя мне подход вообще не нравится

Последний раз редактировалось vovk; 19.12.2010 в 19:54.
vovk вне форума Ответить с цитированием
Старый 19.12.2010, 15:06   #13
Morfius01
Пользователь
 
Регистрация: 18.12.2010
Сообщений: 12
По умолчанию

vovk
ругается на двоеточие отчего-то. Судя по вашему посту на предыдущей странице строчка вроде должна выглядеть так. Но и так рагуется на знак :
form3.ADOQuery2.SQL.add('UPDATE score SET '+Form3.ComboBox2.text+' '=:value_'');
Morfius01 вне форума Ответить с цитированием
Старый 19.12.2010, 15:16   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
'UPDATE score '+
Увидел?
и еще
Код:
(' and [Предмет]='+predmet);
Увидел?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.12.2010, 15:44   #15
Morfius01
Пользователь
 
Регистрация: 18.12.2010
Сообщений: 12
По умолчанию

Stilet
вроде увидел.. но все таки проверь) или помоги кодом если не сложно ^_^

попробовал следующим образом
if form3.RadioButton1.checked=true then oc:='3';
if form3.RadioButton2.checked=true then oc:='4';
if form3.RadioButton3.checked=true then oc:='5';
if form3.RadioButton4.checked=true then oc:='Зачет';
if form3.RadioButton5.checked=true then oc:='Не зачет';
//form3.ADOQuery2.SQL.Close;
form3.ADOQuery2.SQL.Text:='UPDATE score SET ['+form3.combobox2.text+'] = '+oc+' where [Код студента]='+Kst+' and [Предмет]='+predmet+'';

теперь выдает снова ошибку
"Параметр (тут название предмета - значение переменной predmet) не имеет значения по умолчанию"
в случае если даю переменной predmet числовое значение, ошибка следующая:
"Несоответствие типов данных в выражении условия отбора"
Блин, последняя процедура осталась, и второй день уже мучаюсь с ней.

проверил такой способ, если оставить поиск только по kst переменной. Все нормально работает и адекватно добавляется как над. Значит проблема в том что predmet - слово, а не число. в связи с чем вопрос - можно ли сделать адекватную работу с параметром поиска - обычным словом? Или только через связать его с id и искать по нему?

Последний раз редактировалось Morfius01; 19.12.2010 в 16:03.
Morfius01 вне форума Ответить с цитированием
Старый 19.12.2010, 17:57   #16
Morfius01
Пользователь
 
Регистрация: 18.12.2010
Сообщений: 12
По умолчанию

добавил код для предмета и теперь вроде все должно работать, но походу облажался с синтаксисом и вот эта строка неправильная
form3.ADOQuery2.SQL.Text:='UPDATE score SET ['+form3.combobox2.text+'] = '+oc+' where [Код студента]='+kst+' and [Код предмета]='+kodpr+'';
как правильно подскажите плз
Morfius01 вне форума Ответить с цитированием
Старый 19.12.2010, 20:49   #17
Morfius01
Пользователь
 
Регистрация: 18.12.2010
Сообщений: 12
По умолчанию

Извратился следующим образом
adoquery2.Close;
adoquery2.sql.Clear;
form3.ADOQuery2.SQL.Text:='UPDATE score SET ['+form3.combobox2.text+'] = '+oc+' where [Код студента]='+kst+'';
ADOQuery2.ExecSQL;
adoquery3.Close;
adoquery3.sql.Clear;
form3.ADOQuery3.SQL.Text:='UPDATE score SET ['+form3.combobox2.text+'] = '+i+' where [Код предмета]<>'+kodpr+'';
ADOQuery3.ExecSQL;
Только не получается вместо i поставить пробел. И еще почему-то если на переменной oc присваивается текстовое значение, в таблицу ничего не записывается куда должно. Без ошибок, просто ячейка пуста. А если число - то все нормально пишется. Переменная string разумеется.
Morfius01 вне форума Ответить с цитированием
Старый 19.12.2010, 21:03   #18
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

а так
Код:
qutedstr(i)
vovk вне форума Ответить с цитированием
Старый 19.12.2010, 22:15   #19
Morfius01
Пользователь
 
Регистрация: 18.12.2010
Сообщений: 12
По умолчанию

vovk
я уж понял что данный способ не проходит. Добавив оценку одному предмету, я обнулю все оценки данного студента по прочим предметам.
Что возвращает меня к вопросу: кто-нибудь может найти ошибку в строчке
form3.ADOQuery2.SQL.Text:='UPDATE score SET ['+form3.combobox2.text+'] = '+oc+' where [Код студента]='+kst+' and [Код предмета]='+kodpr+'';
? только ее поправить нужно под два условия where, и все ок будет.
Morfius01 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление колонки в таблицу (SQL) Смородинка Microsoft Office Access 3 28.04.2011 21:27
Добавление данных в базу через LINQ to SQL hk47 Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 5 15.11.2010 17:44
SQL. Добавление в таблицу записи Dushkanyara БД в Delphi 0 18.10.2010 13:59
Добавление данных в таблицу через Delphi bablzz БД в Delphi 7 08.10.2010 00:38
Добавление столбца в таблицу с помощью SQL andirock2112 БД в Delphi 15 11.04.2009 09:15