Автор Тема: SQL запросы  (Прочитано 2145 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн on1iner

  • Губернский секретарь
  • **
  • Сообщений: 21
  • Репутация: 0
SQL запросы
« : Октября 15, 2009, 10:08:00 pm »
Работаю с БД Access. Есть запрос типа
ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add("select Прочность");
  ADOQuery1->SQL->Add("from Стали");
  ADOQuery1->SQL->Add(str2);
  ADOQuery1->Active = True;

где в str2 у меня хранится "where температура=что-то там and давление=что-то там" вопрос - как и куда сохранить подходящие под условия значения поля прочность?
 

Оффлайн Alexiski

  • Любитель давать советы
  • Надворный советник
  • *****
  • Сообщений: 307
  • Репутация: 15
  • Пол: Мужской
Re: SQL запросы
« Ответ #1 : Октября 16, 2009, 07:48:18 am »
ADOQuery1->FieldByName("Прочность")->AsIntegerНу или AsString, AsFloat - в зависимости от того, какой формат и что нужно получить

Оффлайн on1iner

  • Губернский секретарь
  • **
  • Сообщений: 21
  • Репутация: 0
Re: SQL запросы
« Ответ #2 : Октября 16, 2009, 10:47:08 am »
а если там несколько подходящих значений будет? как их в массив записывать? мне интересен именно кусочек кода

Оффлайн Alexiski

  • Любитель давать советы
  • Надворный советник
  • *****
  • Сообщений: 307
  • Репутация: 15
  • Пол: Мужской
Re: SQL запросы
« Ответ #3 : Октября 16, 2009, 12:47:58 pm »
Это будет обычный DataSet, как и, например, таблица - те же принципы навигации:
while (! ADOQuery1->Eof)
{
   int Value = ADOQuery1->FieldByName("Прочность")->AsInteger;
   // Обработка...
   ADOQuery1->Next();
}

Оффлайн on1iner

  • Губернский секретарь
  • **
  • Сообщений: 21
  • Репутация: 0
Re: SQL запросы
« Ответ #4 : Октября 16, 2009, 07:12:21 pm »
Спасибо большое!

Оффлайн on1iner

  • Губернский секретарь
  • **
  • Сообщений: 21
  • Репутация: 0
Re: SQL запросы
« Ответ #5 : Апреля 21, 2010, 05:20:57 pm »
Есть некоторая таблица table и в ней значения
D значение
100 12
200 16
300 26
Вводится число number, которое сравнивается с D, и выводится соответствующее значение.
Пусть number будет 190.
str="where D>[number]";
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select *");
ADOQuery1->SQL->Add("from table");
ADOQuery1->SQL->Add(str);

while (! ADOQuery1->Eof)
{
int Value = ADOQuery1->FieldByName("значение")->AsInteger;
// Обработка...
ADOQuery1->Next();
 как сделать, чтобы он просматривал все значения поля D, но останавливался на числе 200 а не 300?

Оффлайн Alexiski

  • Любитель давать советы
  • Надворный советник
  • *****
  • Сообщений: 307
  • Репутация: 15
  • Пол: Мужской
Re: SQL запросы
« Ответ #6 : Апреля 21, 2010, 09:40:38 pm »
Честно говоря, так и не понял, что именно Вам нужно..

Оффлайн on1iner

  • Губернский секретарь
  • **
  • Сообщений: 21
  • Репутация: 0
Re: SQL запросы
« Ответ #7 : Апреля 22, 2010, 12:26:22 pm »
Вот такую таблицу нужно в бд забить и с ней работать потом - т.е. вводится какой-то значение, сравнивается с D (первый столбец) и в зависимости от этого выводим значение из второго столбца