Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск по базе 
:(
    Опции темы
Flenger
  Дата 21.1.2007, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 24.6.2006

Репутация: нет
Всего: нет



Не получается сделать поиск записей методом FinedNearest

Вот мой код

Код


void __fastcall TForm1::Button1Click(TObject *Sender)
{
Table1->IndexFieldNames = "Last Name;Name";  \\ индексирую таблицу по полям
Table1->FindNearest(OPENARRAY(TVarRec,(Edit1->Text,Edit2->Text))); 
}



Компиляция проходит успешно а потом выдаёт сообщение(При нажатии на кнопку):

Table1: No index for fields ‘Last Name;Name’
    
Это типа я моя таблица не содержит индексов с именами Last Name;Name????

Помогите что зделать? smile 

PM MAIL   Вверх
Rodman
Дата 21.1.2007, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 1
Всего: 122



а тебе обязательно ее индексировать???

вот в хелпе нашел
Код

//The following example performs an incremental search on a table.  The form contains a db grid, an edit box, a data source, and a client dataset. As //the user types in the edit box, the cursor of the grid moves to the nearest match in the dataset.

void __fastcall TForm1::FormCreate(TObject *Sender)

{
  ClientDataSet1->FileName = "Customer.xml";
  ClientDataSet1->Active = true;
  ClientDataSet1->IndexName = "ByCompany";
}

void __fastcall TForm1::Edit1Change(TObject *Sender)

{
ClientDataSet1->FindNearest(ARRAYOFCONST((Edit1->Text)));
}


и 
Код

//The following example performs an incremental search on a table.  The form contains a db grid, an edit box, a data source, and a table. As the user //types in the edit box, the cursor of the grid moves to the nearest match in the table.

void __fastcall TForm1::FormCreate(TObject *Sender)

{
  Table1->DatabaseName = "DBDemos";
  Table1->TableName = "Customer.db";
  Table1->Active = true;
  Table1->IndexName = "ByCompany";
}

void __fastcall TForm1::Edit1Change(TObject *Sender)

{
  Table1->FindNearest(ARRAYOFCONST((Edit1->Text)));
}

PM MAIL WWW Skype GTalk YIM MSN   Вверх
Anikmar
Дата 21.1.2007, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 59



FindNearest работает по текущему ключу, по крайней мере с PARADOX.

Если идет поиск по полю, которое индексировано, но ключ не текущий - не работало ( у меня). Насколько помню, я переставлял текущий индекс.

Это сообщение отредактировал(а) Anikmar - 21.1.2007, 21:10
PM MAIL ICQ   Вверх
Flenger
Дата 21.1.2007, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 24.6.2006

Репутация: нет
Всего: нет



Anikmar :"Насколько помню, я переставлял текущий индекс."

А как это делать smile  я просто новичёк

 


PM MAIL   Вверх
Anikmar
Дата 22.1.2007, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 59



Порылся, нашел такой код:
Код

bool FindUniKey(TTable *Table, int Key, AnsiString Field)
{
    AnsiString CurrentIndex;
    bool Ret;

    CurrentIndex = Table -> IndexName;
    Table -> IndexFieldNames = Field;
    Ret = Table -> FindKey(ARRAYOFCONST((Key)));
    Table -> IndexName = CurrentIndex;
    return Ret;
}



PM MAIL ICQ   Вверх
Flenger
Дата 24.1.2007, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 24.6.2006

Репутация: нет
Всего: нет



Всё работает нормально через метод Locate

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TLocateOptions SearchOptions;

Table1->Locate("Robota",Edit1->Text,SearchOptions<<loPartialKey<<loCaseInsensitive);
}

Спасибо за помощь Anikmar, Rodman!!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0713 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.