| 
| 
 | Вопрос # 2 196/ вопрос открыт / | 
 |  Приветствую, уважаемые эксперты!я использую ADOQuery и AdoConnection
 можно ли получить результат запроса из ADOQuery напрямую не использую
 дополнительные компоненты и вывести скажем в Memo
 А лучше в ComboBox(интересует только одно поле)
 
|  |   Вопрос задал: Anderson N.N (статус: 2-ой класс)Вопрос отправлен: 14 декабря 2008, 18:21
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, Anderson N.N!Забирать данные с DBGrid? Я бы назвал это неэтичным и грубым решением. Так просто нельзя делать - DBGrid это только средство отображения информации, он не хранит информацию в себе, он только отображает её.
 Для прямой работы с ADO достаточно двух компонентов - ADOConnection и ADOCommand. Первый надо для установки связи, хотя если постараться, то можно и без него обойтись.
 А вот второй поможет выполнить запрос.
 Итак, приступим. Ставим их оба на форму, ADOConnection подключаем к базе. А ADOCommand к нему. Ставим кнопку/мемо и пишем где то такой код.
 
 procedure TForm1.Button1Click(Sender: TObject);
  var
    rs:_Recordset;
begin
  //Выполняем запрос
  rs := ADOCommand1.Execute('select * from basa');
  //делаем пробежку по записям
  while not rs.EOF do
  begin
    //добавим содержимое поля pole текушей записи в мемо
    Memo1.Lines.Add(rs.Fields['pole'].Value);
    //перейдём к следующей записи
    rs.MoveNext;
  end;
  //закроем выборку.
  rs.Close;
end;Понятное дело, что если результаты выборки не нужны, то можно коротко - ADOCommand1.Execute('insert into ....');Метод работает очень хорошо и достаточно быстро.
 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 14 декабря 2008, 22:33
 Оценка за ответ: 5
 Комментарий к оценке: я ждал вашего появления т к знал никто другой не ответит
 Спасибо
 |  
 Мини-форум вопросаВсего сообщений: 7; последнее сообщение — 15 декабря 2008, 21:33; участников в обсуждении: 3. 
|   | Anderson N.N (статус: 2-ой класс), 14 декабря 2008, 18:42 [#1]:извините за привередливость но результатом запроса (запрос у меня выводит одно поле) нужно заполнить именно строки(Items ) combobox |  
|   | Ученый (статус: 8-ой класс), 14 декабря 2008, 20:59 [#2]:Может попробывать запрос сохранить в TStringList а потом от туда вывести в комбобокс.... |  
|   | Anderson N.N (статус: 2-ой класс), 14 декабря 2008, 21:07 [#3]:я бы с удовольствием но как какое свойство юзать у ADOQuery |  
|   | Ученый (статус: 8-ой класс), 14 декабря 2008, 21:09 [#4]:А вот с этим не знаю, не работал никогда с ADOQuery..... Щас сам посмотрю... |  
|   | Ученый (статус: 8-ой класс), 14 декабря 2008, 21:13 [#5]:Да уж, свойств раз два и обчелся..... даже и незнаю что сказать... |  
|   | Anderson N.N (статус: 2-ой класс), 14 декабря 2008, 21:23 [#6]:да хоть бы из dbgrid как нибудь забрать но у него в отличии от stringGrid нету свойства Cells и я не знаю как обратиться к нужной ячейке |  
|   | Nasgool (статус: 2-ой класс), 15 декабря 2008, 21:33 [#7]:веше приведенный пример от Вадима, изменена одна строка: 
 procedure TForm1.Button1Click(Sender: TObject);
 var
 rs:_Recordset;
 begin
 //Выполняем запрос
 rs := ADOCommand1.Execute('select * from basa');
 //делаем пробежку по записям
 while not rs.EOF do
 begin
 //добавим содержимое поля pole текушей записи в мемо
 ComboBox1.Items.Add(rs.Fields['pole'].Value); {Только не в мемо, а в combobox}
 //перейдём к следующей записи
 rs.MoveNext;
 end;
 //закроем выборку.
 rs.Close;
 end;
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |