Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Индексные файлы Paradox [D3, Paradox]


Элина ©   (2002-10-25 16:53:00) 

Люди помогите для чего нужны файлы *.px; *.xg0; *.yg0, как проверить их наличие и как их создать??? и как они работают?


Элина   (2002-10-25 17:50:00) [1]

Спасибо разбираться пошла.. в новых очках :)))))


Darts   (2002-10-25 17:47:00) [2]

Тут самое главное - метод AddIndex

AddIndex(НазваниеИндекса, ИмяПоля, [ТипИндекса])


Darts   (2002-10-25 17:45:00) [3]

Ну хорошо. Привожу реальный код. Разьберешься - сниму шляпу.


procedure TfmReindex.bnGoClick(Sender: TObject);
begin

try

pbReindex.Position := 0;
Screen.Cursor := crHourGlass;

//////////////////////////////////////////////////////////////////////////
// Orders
//////////////////////////////////////////////////////////////////////////
DataModule1.tbOrders.Open;
sbStatus.Panels[0].Text := " Orders.db";
//
sbStatus.Panels[1].Text := " индексируется Orders_Type...";
Application.ProcessMessages;
DataModule1.tbOrders.AddIndex("Orders_Type", "OrderNo", [ixPrimary]);
//
sbStatus.Panels[1].Text := " индексируется Orders02_NumbDate...";
Application.ProcessMessages;
DataModule1.tbOrders.AddIndex("Orders02_NumbDate", "OrderNumb;OrderDate", [ixCaseInsensitive]);
//
sbStatus.Panels[1].Text := " индексируется Orders04_Date...";
Application.ProcessMessages;
DataModule1.tbOrders.AddIndex("Orders04_Date", "OrderDate", [ixCaseInsensitive]);

pbReindex.Position := 1;
Application.ProcessMessages;

//////////////////////////////////////////////////////////////////////////
// Phones
//////////////////////////////////////////////////////////////////////////
DataModule1.tbPhones.Open;
sbStatus.Panels[0].Text := " Phones.db";
//
sbStatus.Panels[1].Text := " индексируется PhoneNo...";
Application.ProcessMessages;
DataModule1.tbPhones.AddIndex("", "PhoneNo", [ixPrimary]);
//
sbStatus.Panels[1].Text := " индексируется Phones02_Numb...";
Application.ProcessMessages;
DataModule1.tbPhones.AddIndex("Phones02_Numb", "PhoneNumb", [ixCaseInsensitive]);
//
sbStatus.Panels[1].Text := " индексируется Phones03_Address...";
Application.ProcessMessages;
DataModule1.tbPhones.AddIndex("Phones03_Address", "PhoneAddress", [ixCaseInsensitive]);

pbReindex.Position := 2;
Application.ProcessMessages;

//////////////////////////////////////////////////////////////////////////
// Cars
//////////////////////////////////////////////////////////////////////////
DataModule1.tbCars.Open;
sbStatus.Panels[0].Text := " Cars.db";
//
sbStatus.Panels[1].Text := " индексируется CarNo...";
Application.ProcessMessages;
DataModule1.tbCars.AddIndex("", "CarNo", [ixPrimary]);
//
sbStatus.Panels[1].Text := " индексируется Cars02_Numb...";
Application.ProcessMessages;
DataModule1.tbCars.AddIndex("Cars02_Numb", "CarNumb", [ixCaseInsensitive, ixUnique]);

pbReindex.Position := 3;
Application.ProcessMessages;

//////////////////////////////////////////////////////////////////////////
// Works
//////////////////////////////////////////////////////////////////////////
DataModule1.tbWorks.Open;
sbStatus.Panels[0].Text := " Works.db";
//
sbStatus.Panels[1].Text := " индексируется WorkID...";
Application.ProcessMessages;
DataModule1.tbWorks.AddIndex("", "WorkID", [ixPrimary]);
//
sbStatus.Panels[1].Text := " индексируется Work_ID...";
Application.ProcessMessages;
DataModule1.tbWorks.AddIndex("Work_ID", "WorkID", [ixCaseInsensitive, ixUnique]);

pbReindex.Position := 4;
Application.ProcessMessages;

DataModule1.tbOrders.Close;
DataModule1.tbPhones.Close;
DataModule1.tbCars.Close;
DataModule1.tbWorks.Close;
Screen.Cursor := crDefault;

Application.MessageBox("Переиндексация успешно завершена!", "Сообщение", MB_ICONINFORMATION);

except
on E: Exception do begin
Screen.Cursor := crDefault;
ShowMessage(E.Message);
end;
end;
end;


Элина   (2002-10-25 17:36:00) [4]

Мне бы их программно создавать...


Darts   (2002-10-25 17:33:00) [5]

1. *.px; *.xg0; *.yg0 - это и есть индексы.
2. как проверить их наличие и как их создать??? - проверить можно визуально. Создать - в DBD (DataBase Desktop).
3. и как они работают? - упорядочивают таблицы по определенному критерию, скажем, фо фамилии, имени и отчеству. Позволяют быстро искать.

Но лучше почитать учебник, скажем, Фаронова, если есть большие затруднения. Ведь понятие Баз данных - довольно сложная штука.


Наверх

Титульная страница Поиск, карта сайта Написать письмо