MyDAC (MyQuery)

Обсуждение возникших проблем, предложений и ошибок MyDAC компонентов
Закрыто
freeing
Сообщения: 6
Зарегистрирован: Чт 08 июл 2010 22:11
Откуда: Одесса

MyDAC (MyQuery)

Сообщение freeing » Пн 15 ноя 2010 16:58

Здравствуйте! Извините если не по теме, но я не знаю где еще спрашивать...

Скачал компонент MyDAC для Borland Builder C++ (v. 6)
Все хорошо, все нравится, только вот немного запутался в классе TMyQuery..

Мне необходимо поместить результат запроса в массив, TListBox или в TMemo
но как я пока не разобрался.

Код: Выделить всё

MyQuery->SQL = "SELECT ID From Table";
MyQuery->Open();
MyQuery-> // Что дальше, как получить доступ к результату запроса
И как считать часть ячеек, скажем с пятой по десятую..

Спасибо!

AndreyZ
Devart Team
Сообщения: 328
Зарегистрирован: Чт 08 сен 2011 13:18

Сообщение AndreyZ » Пн 31 окт 2011 17:39

Следующий пример демонстрирует как поместить данные которые вернул запрос в компонент TMemo:

Код: Выделить всё

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
  MyQuery1->SQL->Text = "select id from testtable";
  MyQuery1->Open();
  Memo1->Clear();
  while (!MyQuery1->Eof)
  {
    Memo1->Lines->Add(MyQuery1->FieldByName("id")->AsString);
    MyQuery1->Next();
  }
}
Следующий пример демонстрирует как поместить часть данных которые вернул запрос в компонент TMemo:

Код: Выделить всё

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
  MyQuery1->SQL->Text = "select id from testtable";
  MyQuery1->Open();
  Memo1->Clear();
  while (!MyQuery1->Eof)
  {
    if (MyQuery1->RecNo > 10) break;
    if (MyQuery1->RecNo > 4)
    {
      Memo1->Lines->Add(MyQuery1->FieldByName("id")->AsString);
    }
    MyQuery1->Next();
  }
}

imobile
Сообщения: 103
Зарегистрирован: Сб 12 ноя 2011 00:12

Сообщение imobile » Сб 12 ноя 2011 00:27

AndreyZ писал(а): Memo1->Lines->Add(MyQuery1->FieldByName("id")->AsString);
Маленький вопрос. Я та понимаю, id это integer, asstring преобразует в стринг? Я то думал, что variant надо извлекать, как пришел, а дальше преобразовывать.(что-то типа простого выделения памяти для неоределенных данных)

AndreyZ
Devart Team
Сообщения: 328
Зарегистрирован: Чт 08 сен 2011 13:18

Сообщение AndreyZ » Пн 14 ноя 2011 10:14

Мы рекомендуем использовать методы подходящие под типы данных в базе, т.е. AsInteger для целочисленных типов, AsFloat для вещественных типов, AsString для строковых типов и т.д. Это более корректный способ работы позволяющий избежать неожиданных ошибок.

Закрыто