Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 21.06.2010, 08:41
Аватар для Marvel
Marvel Marvel вне форума
Начинающий
 
Регистрация: 14.06.2010
Адрес: Пятигорск
Сообщения: 121
Репутация: 24
По умолчанию

покажите часть таблицы, именно то, как хранятся записи, в каком порядке, какие ключевые поля и т.д., у меня Oracle сейчас не установлен, повторю всё на MDB базе
__________________
Коли навчався в школі я - в мені росли мозгЫ. КудИж вони поділися? гы-гы гы-гы гы-гы...


ICQ: 593977748
Nick: Marvel
Ответить с цитированием
  #17  
Старый 21.06.2010, 09:06
Botaniq Botaniq вне форума
Новичок
 
Регистрация: 20.06.2010
Сообщения: 64
Репутация: 10
По умолчанию

Тут вся база. Мне необходимо вывести ответы и каким нибудь способом выбрать правильный и занести в таблицу
Вложения
Тип файла: rar Документ Microsoft Word.rar (97.5 Кбайт, 3 просмотров)
Ответить с цитированием
  #18  
Старый 21.06.2010, 09:45
Аватар для Marvel
Marvel Marvel вне форума
Начинающий
 
Регистрация: 14.06.2010
Адрес: Пятигорск
Сообщения: 121
Репутация: 24
По умолчанию

дайте дампы маленькие таблиц Quest и Answer, можно в виде картинки, мне нужно знать последовательность хранения вопросов и ответов
__________________
Коли навчався в школі я - в мені росли мозгЫ. КудИж вони поділися? гы-гы гы-гы гы-гы...


ICQ: 593977748
Nick: Marvel
Ответить с цитированием
  #19  
Старый 21.06.2010, 10:24
Аватар для serhak
serhak serhak вне форума
Прохожий
 
Регистрация: 23.03.2010
Сообщения: 11
Репутация: 12
По умолчанию

Может быть тогда лучше ответы выводить в DBGrid-е, это позволит выводить сколько угодно ответов на один вопрос. Я думаю это более рационально чем создавать 4 курсора, да и проще.
Ответить с цитированием
  #20  
Старый 23.06.2010, 22:52
Botaniq Botaniq вне форума
Новичок
 
Регистрация: 20.06.2010
Сообщения: 64
Репутация: 10
По умолчанию

мои дампы таблиц с вопросами и ответами.
Хотелось бы знать как можно из запроса
DataModule2.OracleQuery.SQL.Add('select a.* from answer a where a.id_quest=1');
вытащить данные, т.е. результат запроса это 4 ответа, и записать их в едиты?????
Вложения
Тип файла: rar Таблица вопрос.rar (89.2 Кбайт, 3 просмотров)
Тип файла: rar Таблица ответ.rar (92.1 Кбайт, 3 просмотров)

Последний раз редактировалось Botaniq, 23.06.2010 в 23:24.
Ответить с цитированием
  #21  
Старый 23.06.2010, 23:03
Botaniq Botaniq вне форума
Новичок
 
Регистрация: 20.06.2010
Сообщения: 64
Репутация: 10
По умолчанию

Тема актуальна.
Требуется помощь.
Ответить с цитированием
  #22  
Старый 24.06.2010, 09:07
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Вчера только писал:

Код:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM Вопрос WHERE Вопрос like
"%'+find_vop.Text+'%"');
adoQuery1.Active := true;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('SELECT * FROM Варианты WHERE Код = :kd');
ADOQuery2.parametrs.parambyname('kd').value:= Adoquery1.fieldbyname('Код').AsInteger;
adoQuery2.Active := true;
Ответить с цитированием
  #23  
Старый 24.06.2010, 09:12
Botaniq Botaniq вне форума
Новичок
 
Регистрация: 20.06.2010
Сообщения: 64
Репутация: 10
По умолчанию

Если посмотреть внимательно у меня не ADO технология, а DAO. Т.е. ORACLE. В результате запроса 4 строки. Их надо присвоить 4 эдитам
Ответить с цитированием
  #24  
Старый 24.06.2010, 09:17
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Да хоть BDE результат вернул 4 строки.
цикл по результату и конструкция IF самый простой вариант. пишем в EDIT
Ответить с цитированием
  #25  
Старый 24.06.2010, 10:00
Botaniq Botaniq вне форума
Новичок
 
Регистрация: 20.06.2010
Сообщения: 64
Репутация: 10
По умолчанию

как это будет выглядеть???????
Ответить с цитированием
  #26  
Старый 24.06.2010, 10:09
Аватар для Marvel
Marvel Marvel вне форума
Начинающий
 
Регистрация: 14.06.2010
Адрес: Пятигорск
Сообщения: 121
Репутация: 24
По умолчанию

можно и вот так. Edit'ы должны называться так: EAnswer1,EAnswer2,EAnswer3,EAnswer4:
Код:
procedure TForm1.FillEdits(id_quest,id_test: integer);
var
  i: integer;
begin
  ZAnswers.SQL.Text := 'SELECT * FROM answer WHERE ID_QUEST=:QUEST AND ID_TEST=:TEST';
  ZAnswers.ParamByName('QUEST').AsInteger := id_quest;
  ZAnswers.ParamByName('TEST').AsInteger := id_test;
  ZAnswers.Open;
  while not ZAnswers.Eof do
  begin
    for i:=0 to ComponentCount-1 do
    begin
      if Components[i].Name = 'EAnswer' + IntToStr(ZAnswers.RecNo) then
      begin
        (Components[i] as TEdit).Text := ZAnswers.FieldByName('ANSWER').AsString;
      end;
    end;
    ZAnswers.Next;
  end;

  ZAnswers.Close;
end;

или так:

Код:
procedure TForm1.FillEdits(id_quest,id_test: integer);
var
  i: integer;
begin
  ZAnswers.SQL.Text := 'SELECT * FROM answer WHERE ID_QUEST=:QUEST AND ID_TEST=:TEST';
  ZAnswers.ParamByName('QUEST').AsInteger := id_quest;
  ZAnswers.ParamByName('TEST').AsInteger := id_test;
  ZAnswers.Open;

  EAnswer1.Text := ZAnswer.FieldByName('ANSWER').AsString;
  ZAnswers.Next;

  EAnswer2.Text := ZAnswer.FieldByName('ANSWER').AsString;
  ZAnswers.Next;

  EAnswer3.Text := ZAnswer.FieldByName('ANSWER').AsString;
  ZAnswers.Next;

  EAnswer4.Text := ZAnswer.FieldByName('ANSWER').AsString;

  ZAnswers.Close;
end;

Использовать так:
Код:
FillEdits(номер_вопроса,номер_теста);
__________________
Коли навчався в школі я - в мені росли мозгЫ. КудИж вони поділися? гы-гы гы-гы гы-гы...


ICQ: 593977748
Nick: Marvel

Последний раз редактировалось Marvel, 24.06.2010 в 10:17.
Ответить с цитированием
  #27  
Старый 24.06.2010, 10:23
Botaniq Botaniq вне форума
Новичок
 
Регистрация: 20.06.2010
Сообщения: 64
Репутация: 10
По умолчанию

у меня нет таких свойств как ParambyName, RecNo. В ADO есть а в DAO их нет. Что делать???
Ответить с цитированием
  #28  
Старый 24.06.2010, 10:33
Аватар для Marvel
Marvel Marvel вне форума
Начинающий
 
Регистрация: 14.06.2010
Адрес: Пятигорск
Сообщения: 121
Репутация: 24
По умолчанию

Код:
procedure TForm1.FillEdits(id_quest,id_test: integer);
var
  i,cnt: integer;
begin
  cnt := 0;
  ZAnswers.SQL.Text := 'SELECT * FROM answer WHERE ID_QUEST='+IntToStr(id_quest) + ' AND ID_TEST=' + IntToStr(id_test);
  ZAnswers.Open;
  while not ZAnswers.Eof do
  begin
    Inc(cnt);
    for i:=0 to ComponentCount-1 do
    begin
      if Components[i].Name = 'EAnswer' + IntToStr(cnt) then
      begin
        (Components[i] as TEdit).Text := ZAnswers.FieldByName('ANSWER').AsString;
      end;
    end;
    ZAnswers.Next;
  end;

  ZAnswers.Close;
end;

или так:

Код:
procedure TForm1.FillEdits(id_quest,id_test: integer);
var
  i: integer;
begin
  ZAnswers.SQL.Text := 'SELECT * FROM answer WHERE ID_QUEST='+IntToStr(id_quest) + ' AND ID_TEST=' + IntToStr(id_test);
  ZAnswers.Open;

  EAnswer1.Text := ZAnswer.FieldByName('ANSWER').AsString;
  ZAnswers.Next;

  EAnswer2.Text := ZAnswer.FieldByName('ANSWER').AsString;
  ZAnswers.Next;

  EAnswer3.Text := ZAnswer.FieldByName('ANSWER').AsString;
  ZAnswers.Next;

  EAnswer4.Text := ZAnswer.FieldByName('ANSWER').AsString;

  ZAnswers.Close;
end;
__________________
Коли навчався в школі я - в мені росли мозгЫ. КудИж вони поділися? гы-гы гы-гы гы-гы...


ICQ: 593977748
Nick: Marvel
Ответить с цитированием
  #29  
Старый 24.06.2010, 23:12
Botaniq Botaniq вне форума
Новичок
 
Регистрация: 20.06.2010
Сообщения: 64
Репутация: 10
По умолчанию

спасибо всем за подсказку.
я решил задачу так:
Код:
procedure TStart_test.test();
var
i,j: Integer;
begin
DataModule2.OQuery.SQL.Add('select a.* from answer a where a.id_quest='+IntToStr(DataModule2.ODS_QuestID_QUEST.AsInteger));
DataModule2.OQuery.Execute;
j:=0;
while not  DataModule2.OQuery.Eof do
begin
 inc(j);
  mass[j]:=DataModule2.OQuery.Field('ID_Answer');
  otvet[j]:=DataModule2.OQuery.Field('Correct_Answer');
  for i:=0 to ComponentCount-1 do
    begin
    if Components[i].Name = 'Edit' + IntToStr(j) then
      begin
        (Components[i] as TEdit).Text := DataModule2.OQuery.Field('Answer');
      end;
    end;
  DataModule2.OQuery.Next;
     end;
DataModule2.OQuery.Close;
DataModule2.OQuery.Clear;
DataModule2.ODS_Quest.Next;
end;
Admin: Пользуемся тегами, иначе последуют санкции!

Последний раз редактировалось Admin, 25.06.2010 в 10:11.
Ответить с цитированием
  #30  
Старый 25.06.2010, 09:42
Аватар для Marvel
Marvel Marvel вне форума
Начинающий
 
Регистрация: 14.06.2010
Адрес: Пятигорск
Сообщения: 121
Репутация: 24
По умолчанию

тэгами пользуйтесь, ибо Admin забанит )))
__________________
Коли навчався в школі я - в мені росли мозгЫ. КудИж вони поділися? гы-гы гы-гы гы-гы...


ICQ: 593977748
Nick: Marvel
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:46.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter