Технический форум

Технический форум (http://www.tehnari.ru/)
-   C/C++/С# (http://www.tehnari.ru/f42/)
-   -   Запись в stringgrid (http://www.tehnari.ru/f42/t88714/)

mish_k98 02.06.2013 23:45

Запись в stringgrid
 
здравствуйте.помогите составить код.есть база даных.требуется найти определённые строки по ключевому слову и всю строку добавить в stringgrid.но дело в том что колличество и расположение строк определяестя поиском.вот часть кода
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString al=LabeledEdit1->Text;
AnsiString bl;
AnsiString ap=LabeledEdit2->Text;
AnsiString bp;
ADOTable1->First();
bool legal=false;
ADOTable1->First();
for (int i=0;i<ADOTable1->RecordCount;i++)
{
bl=ADOTable1->FieldByName("Товар")->AsString;
bp=ADOTable1->FieldByName("Поставщик")->AsString;
if ((al==bl) || (ap==bp)){ legal = true;
Ini->WriteString("Поиск","Код",ADOTable1->FieldByName("Код")->AsString);
Ini->WriteString("Поиск","Товар",ADOTable1->FieldByName("Товар")->AsString);
Ini->WriteString("Поиск","Дата",ADOTable1->FieldByName("Дата")->AsString);
Ini->WriteString("Поиск","Цена",ADOTable1->FieldByName("Цена")->AsString);
Ini->WriteString("Поиск","Поставщик",ADOTable1->FieldByName("Поставщик")->AsString);
Ini->WriteString("Поиск","Количество",ADOTable1->FieldByName("Количество")->AsString);
Ini->WriteString("Поиск","Сумма",ADOTable1->FieldByName("Сумма")->AsString);



}
ADOTable1->Next();
}
if (!legal)// ShowMessage("Нету!");
MessageDlg("Нету!", mtInformation, TMsgDlgButtons()<<mbOK,0);
else {

ShowMessage("есть!");
ShellExecute(0, "open", "search_p.ini", 0, "HTML", SW_SHOWNORMAL);


}
}
на даном этапе я просто записываю последнюю найденую строку в файл.а их может быть несколько.помогите разобраться

kreol 03.06.2013 00:34

Я с ADO совсем не работал, но там же, вроде можно выполнить свой sql? Выбрать все нужные данные и записать куда нужно...

mish_k98 03.06.2013 10:40

я с sql пока не умею работать.помогите,знающие люди

mish_k98 03.06.2013 11:03

вот мой вариант, но так не работает
Form11->StringGrid1->Rows[i]->Values=ADOTable1->Fields->Fields[i]->Value;

mish_k98 03.06.2013 15:41

где ошибка????

mish_k98 03.06.2013 20:41

помогите, люди добрые

mish_k98 05.06.2013 21:55

прошу помощи

kreol 06.06.2013 00:37

остался один экзамен, в пятницу. смогу помочь только после него...

mish_k98 06.06.2013 10:09

ок.буду ждать

grelly 06.06.2013 10:14

Цитата:

Сообщение от mish_k98 (Сообщение 913950)
вот мой вариант, но так не работает
Form11->StringGrid1->Rows[i]->Values=ADOTable1->Fields->Fields[i]->Value;

дык ты указателю на массив значений пытаешься значение присвоить) индекс значения в стринггриде укажи

mish_k98 06.06.2013 14:09

не очень понял.не могли бы вы написать полностью как должно быть.с стринггридом не очень знаком.это моя первая программа с ним

grelly 06.06.2013 14:31

StringGrid1->Rows[0]->Values[0] = ADOTable1->Fields->Fields[0]->Value;
вместо 0 свои индексы пиши

mish_k98 06.06.2013 16:28

попробую.отпишусь


Часовой пояс GMT +4, время: 22:24.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.