![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Пользователь
Регистрация: 07.06.2008
Сообщений: 19
|
![]()
не идет, вот мой код, может я гдето ошиблась
if ComboBox1.ItemIndex > -1 Then begin if ComboBox2.ItemIndex > -1 Then begin inc(currentQNumber); StringGrid1.Cells[0, currentQNumber] := ComboBox1.Items[ComboBox1.ItemIndex]; StringGrid1.Cells[1, currentQNumber] := ComboBox2.Items[ComboBox2.ItemIndex]; adoQuery1.SQL.Clear; adoQuery1.SQL.Add(Concat('SELECT Nfact from Posylki WHERE nfact=', nfact[ComboBox1.ItemIndex])); adoQuery1.Active:=true; while not adoquery1.Eof do begin adoQuery2.SQL.Clear; adoquery2.sql.Add(Concat('SELECT Nrz from Posylki WHERE NRz = ', nrz[ComboBox2.ItemIndex])); adoQuery2.Active:=true; If not adoquery2.Eof then begin ADOQuery3.Close; ADOQuery3.SQL.Clear; ADOQuery3.SQL.Add('INSERT INTO Posylki(Mp) VALUES (:m)'); ADOQuery3.Parameters.ParamByName ('m').Value:=1; ADOQuery3.ExecSQL; end else begin ADOQuery3.Close; ADOQuery3.SQL.Clear; ADOQuery3.SQL.Add('INSERT INTO Posylki(Mp) VALUES (:m)'); ADOQuery3.Parameters.ParamByName ('m').Value:=-1; ADOQuery3.ExecSQL; ADOQuery4.Close; ADOQuery4.SQL.Clear; ADOQuery4.SQL.Add('INSERT INTO Posylki(Mz) VALUES (:m)'); ADOQuery4.Parameters.ParamByName ('m').Value:=-1; // ADOQuery4.ExecSQL; end; adoQuery1.Next; end; adoquery2.Close; adoquery1.Close; adoquery5.SQL.Clear; adoquery5.SQL.Add('') end; end; combobox1.ClearSelection; combobox2.ClearSelection; end; |
![]() |
![]() |
![]() |
#12 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
INSERT INTO добавляет НОВЫЕ строчки в таблицу БД
может быть, Вам нужно изменять существующие? UPDATE Posylki set MZ = 0 where <а тут условие, для каких записей обнулить Ваши метки...> |
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 07.06.2008
Сообщений: 19
|
![]()
вот так можно?
if ComboBox1.ItemIndex > -1 Then begin if ComboBox2.ItemIndex > -1 Then begin inc(currentQNumber); StringGrid1.Cells[0, currentQNumber] := ComboBox1.Items[ComboBox1.ItemIndex]; StringGrid1.Cells[1, currentQNumber] := ComboBox2.Items[ComboBox2.ItemIndex]; adoQuery1.SQL.Clear; adoQuery1.SQL.Add(Concat('SELECT Nfact from Posylki WHERE nfact=', nfact[ComboBox1.ItemIndex])); adoQuery1.Active:=true; while not adoquery1.Eof do begin ADOQuery2.Close; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add(Concat('SELECT Nfact from Posylki WHERE NRz = ', nrz[ComboBox2.ItemIndex])); ADOQuery2.ExecSQL; if not adoquery2.Eof then begin ADOQuery3.Close; ADOQuery3.SQL.Clear; ADOQuery3.SQL.Add('UPDATE Posylki set Mp = 1'); ADOQuery3.ExecSQL; end else begin ADOQuery4.Close; ADOQuery4.SQL.Clear; ADOQuery4.SQL.Add('UPDATE Posylki set Mp = -1'); ADOQuery4.ExecSQL; ADOQuery5.Close; ADOQuery5.SQL.Clear; ADOQuery5.SQL.Add('UPDATE Zakluch set Mz = -1'); ADOQuery5.ExecSQL; end; adoQuery1.Next; adoquery2.next; end; adoquery2.Close; adoquery1.Close; end; end; combobox1.ClearSelection; combobox2.ClearSelection; end; Последний раз редактировалось salima; 09.12.2009 в 17:40. Причина: ошибочка |
![]() |
![]() |
![]() |
#14 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
1) ТАК НЕЛЬЗЯ!!!!!!
Вы же ВСЕМ ЗАПИСЯМ меняете значение Mz ! Это так и надо?! 2) ошибка - для выполнения запросов SELECT для QUERY надо выполнять операцию Open (ADOQuery2.Open) а для выполнения операций изменения данных (Insert, Delete, Update) - .ExecSQL Вы же для всех ExecSQL делаете 3) честное слово, Вам было бы лучше, если бы объяснили, зачем сколько запросов, что в них находится, и ЧТО собственно Вы хотите сделать. Так - подробнее! Что есть, что надо сделать, и что Вы ожидаете получить в результате. ибо по Вашему коду я лично ничегошеньки понять не могу... ![]() |
![]() |
![]() |
![]() |
#15 | |
Пользователь
Регистрация: 07.06.2008
Сообщений: 19
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#16 |
Пользователь
Регистрация: 07.06.2008
Сообщений: 19
|
![]()
вот мой алгоритм, по нему и двигаюсь
Метка заключения = Метка З(ставим в таблице заключения «Zakluch») Метка посылки = Метка П(ставим в таблице посылки «Posylki») Метка З=0, если правило «хорошее» Метка З=-1, если правило «плохое» Метка П=0, если факт не порошен Метка П=1 , если факт опрошен и ответ положительный Метка П=-1, если факт порошен и ответ получен отрицательный Определяем правило хорошее или плохое если найдено правило в таблице посылки в котором сходиться факт и разрешенное значение(РЗ) , которые пользователь выбрал. Кнопка консультация: 1)очистить все(грид сетку, метки) 2)опросить факты(ответить на все вопросы но при этом при каждом опрошенном факте прверять выполнение правила ), то есть по номеру факта показать вопрос в комбобоксе1 и его разрешенные значения(РЗ) в комбобоксе2 3) очистить все метки Кнопка добавить: 1)добавить выбранное в комбобоксе2 разрешенное значение(РЗ) в грид сетку в виде Например, игроки взрослые Игра профессионалы Погода облачно 2) расставить метки Открыть факт+посылки+заключение, с номером факта =nfact(из комбобокса) Цикл Если номер РЗ(из бд)=номеру РЗ(из комбобокса) то метка П=1 иначе метка П=-1 метка З=-1 3) проверить выполнение правила Цикл по правилам(из Zakluch) когда метка З=0 Открыть посылки когда номер правила из посылок = номеру правила из заключений и когда метка П = 0 Если записей =0 то печатаем ответ и выход Обновим факт+посылки+заключения когда метка П=0 и метка З=0 Если не еоf, то опросить факт Иначе печатать «ответа нет» |
![]() |
![]() |
![]() |
#17 |
Пользователь
Регистрация: 07.06.2008
Сообщений: 19
|
![]()
мне нужно расставить метки т.е. сделать 2)
|
![]() |
![]() |
![]() |
#18 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
salima, вижу, что Вы искренне старались рассказать, что именно Вам нужно сделать...
Но, к огромному моему сожалению, вынужден признать, что у меня "просветления" не наступило ![]() ![]() может, кто-то более сообразительный поймёт, что именно Вам нужно сделать.... ___________________ Добавлено. а может быть, Вы Ваши объяснения проиллюстрируете? Нарисуете схемки (картинки), где покажите, что и как.. Да и выложить Вашу программку (запакованный проект) (пусть и не доведённую до ума), было бы совсем не лишним... Последний раз редактировалось Serge_Bliznykov; 09.12.2009 в 21:13. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ADOQuery | Sanakan | Помощь студентам | 0 | 10.11.2009 23:31 |
AdoQuery | Stanislav | БД в Delphi | 34 | 26.06.2009 22:09 |
ADOQuery | antoni | БД в Delphi | 3 | 19.06.2009 07:49 |
ADOQuery | Только_Учусь | Помощь студентам | 2 | 16.07.2008 00:31 |
ADOQuery | Roof | БД в Delphi | 2 | 12.07.2008 18:08 |