Смекни!
smekni.com

Робота з таблицями засобами Lazarus (стр. 3 из 4)

1.19 OpenIndexFile

procedure OpenIndexFile(IndexFile: string);

Викличте процедуру OpenIndexFile для приєднання індексного файлу (IndexFile), вторинний, що не обслуговуються індексний файл, наприклад NDX файл до DBF файлу.Як тільки індексний файл приєднується, то він відразу стає обслуговується.

1.20 DeleteIndex

procedure DeleteIndex(const AIndexName: string);

Параметр AIndexName повертає назву індексу, який потрібно видалити.

· Якщо індекс міститься в MDX файлі, то він видаляється звідти.

· Якщо індекс міститься в NDX файлі, то він закривається, від'єднується і видаляється з диска.

1.21 CloseIndexFile

procedure CloseIndexFile(const AIndexName: string);

Індексний файл, відкритий функцією OpenIndexFile або установкою властивості Indexes можна закрити за допомогою функції CloseIndexFile. Вказаний індекс більше не буде обслуговуватися.

1.22 RepageIndexFile

procedure RepageIndexFile(const AIndexFile: string);

Іноді при перегляді розміру індексного файлу можна помітить, що розмір його не зменшується після видалення індексу.Ця функція перебудовує вказаний індексний файл з метою зменшення розміру.Передайте, порожній рядок для перебудови MDX файлу таблиці.Ефект від застосування RepageIndexFile або пересозданія всіх індексів в індексному фото однаковий, але RepageIndexFile працює значно швидше.Процедура RepageIndexFile аналогічна операції "PackTable", але для зазначеного індексного файлу.

Примітка: вам потрібно досить багато пам'яті для виконання цієї операції, оскільки тимчасовий індексний файл створюється в пам'яті і тільки потім переписується на диск.

1.23 Locate

function Locate(const KeyFields: string; const KeyValues: Variant;

Options: TLocateOptions): Boolean; override;

Функція Locate здійснює пошук в наборі даних запису і позиціонує вказівник не неї. Параметр KeyFields це рядок, що містить список імен полів, розділених символом крапка з комою, за якими проводиться пошук.Параметр KeyValues це варіантний масив, що містить значення пошуку для полів.Якщо список KeyFields одиночне поле, параметр KeyValues вказує значення для цього поля для необхідної запису.Для вказівки множинних значень пошуку, передайте варіантний масив як KeyValues.

Параметр Options це безліч, яке вказує параметри пошуку по строкових полях.Якщо параметр Options містить loCaseInsensitive, функція Locate ігнорує регістр букв при порівнянні полів.Якщо Options містить loPartialKey, функція Locate дозволяє частковий збіг з рядком в KeyValues.Якщо Options порожня множина, або якщо властивість KeyFields не містить строкових полів, то параметр Options ігнорується.Функція Locate повертає true якщо шукана запис знайдено, і робить цей запис поточної, інакше функція повертає false.Якщо вказано одне поле і вона міститься в індексному файлі, то пошук використовує даний індекс.У цьому випадку Options ігнорується, як якби Ви вказали loPartialKey.

1.24 LocateRecord

function LocateRecord(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions; bSyncCursor: Boolean): Boolean;

Це внутрішній метод, який виробляє всю дійсну роботу з пошуку.

1.25 IsDeleted

function IsDeleted: Boolean;

Викличте функцію IsDeleted для перевірки, що поточна запис позначена як віддалена.Ця функція діє, якщо властивість ShowDeleted встановлено у true.

1.26 Undelete

procedure Undelete;

Викличте процедуру Undelete для зняття позначки про видалення.

1.27 CreateTable

procedure CreateTable;

Викличте процедуру CreateTable під час виконання для створення таблиці, використовуючи поточні визначення набору даних.Якщо таблиця вже існує, то процедура CreateTable перезапише структуру таблиці і дані.Якщо властивість FieldDefs містить значення, ці значення використовуються для створення визначень полів.Інакше буде використано властивість Fields.Одне або декілька з цих властивостей може містити значення для створення таблиці.Якщо властивість Indexes містить значення, то ці значення використовуються для створення індексів у таблиці.Див Також CreateTableEx.

1.28 CreateTableEx

procedure CreateTableEx(DbfFieldDefs: TDbfFieldDefs);

Викличте процедуру CreateTableEx для створення таблиці, використовуючи дані визначення полів.Дані визначення полів дають більше можливостей, наприклад, таких як визначення точності цифрових полів.

1.29 CopyFrom

procedure CopyFrom(DataSet: TDataSet; FileName: string;

DateTimeAsString: Boolean; Level: Integer);

Використовуйте дану процедуру для копіювання заданого набору даних в нову таблицю. Параметр DataSet це тип TDataSet, з якого ви хочете скопіювати, FileName це повне ім'я нової таблиці (включаючи шлях і розширення).DateTimeAsString вказує, що поля datetime повинні бути перетворені в рядкові поля в таблиці результату.Це особливо корисно якщо ви бажаєте використовувати TDbf для створення до текстових процесорів наприклад.Якщо цей параметр встановлений в True, то спрацьовує обробник події OnCopyDateTimeAsString, де ви можете перекрити стандартне перетворення з datetime в string, яке базується на поточних регіональні настройки.Властивість Level визначає TableLevel для нової таблиці.

У разі використання версій TDbf до 6.0 для перетворення datetime значень в BDE сумісний формат, використовуйте цю процедуру наступним чином: помістіть два примірники TDbf на форму, встановіть у TDbf1 властивість DateTimeHandling в dtDateTime і підключіть до існуючої таблиці.Переконайтеся, що у TDbf2 воно встановлено в dtBDETimeStamp і викличте процедуру CopyFrom з DataSet = TDbf1 і DateTimeAsString = False.Потім Ви можете замінити стару таблицю новою і використовувати TDbf в режимі dtBDETimeStamp у ваших додатках.

1.30 RestructureTable

procedure RestructureTable(DbfFieldDefs: TDbfFieldDefs; Pack: Boolean);

Викличте процедуру RestructureTable для зміни структури поточної таблиці.

Параметр DbfFieldDefs дозволяє вказати нову структуру.Кожен елемент FieldDef містить властивість CopyFrom, яке є індексом поля з якого копіюється інформація.Поля, з які не вказується в жодному з DbfFieldDef властивостей CopyFrom, видаляються.Якщо ви призначили копію визначення таблиці DbfFieldDefs новому списку для модифікації, то властивість CopyFrom нового списку FieldDefs автоматично призначається, виключаючи Delphi 3 користувачів.Тому користувачі Delphi 3 повинні потурбуватися призначенням властивості CopyFrom для запобігання видалення полів, чого природно ви не хочете!Параметр Pack вказує необхідність упаковки таблиці, для видалення записів позначених для видалення.

1.31 PackTable

procedure PackTable;

Викличте процедуру PackTable для остаточного видалення записів позначених для видалення.Перед тим як ці записи будуть остаточно видалені, вони позначаються до видалення.Виклик процедури PackTable видаляє ці записи фізично з таблиці.Також це можна зробити за допомогою виклику процедури RestructureTable з покажчиком nil для установки DbfFieldDefs і передачею true для Pack.

1.32 EmptyTable

procedure EmptyTable;

Метод EmptyTable видаляє всі записи з таблиці.Він не змінює поточну структуру таблиці та індексів.

1.33 Zap

procedure Zap;

Псевдонім для методу EmptyTable.


1.34 InitFieldDefsFromFields

{$ifndef DELPHI_5}

procedure InitFieldDefsFromFields;

{$endif}

Це внутрішній метод InitFieldDefsFromFields, що використовується різними функціями, наприклад, CreateTable.Він створює визначення полів для існуючого набору Fields.Дана процедура нудна тільки для Delphi 4 і молодше, оскільки в Delphi 5 і старше дана процедура реалізована в TDataSet.


2. Властивості

2.1 AbsolutePath

property AbsolutePath: string read FAbsolutePath;

Це абсолютний шлях до поточної таблиці.Див також FilePathFull.

2.2 DbfFieldDefs

property DbfFieldDefs: TDbfFieldDefs read GetDbfFieldDefs;

DbfFieldDefs це список визначень полів для таблиці, подібний до TDataSet.FieldDefs, за винятком того, що TDbfFieldDefs більш підходить для dBase таблиць.Наприклад, він включає інформацію про рідних типах полів і точність для числових полів.Див також TDbfFieldDefs.Для доступу до полів і їх значень в наборі даних використовуйте властивості Fields і Field Values, а також метод FieldByName.

2.3 PhysicalRecNo

property PhysicalRecNo: Integer read GetPhysicalRecNo write SetPhysicalRecNo;

Використовуйте властивість PhysicalRecNo для визначення фізичного номера запису поточного запису.Його також можна використовувати для встановлення курсору на потрібний запис.Різниця між RecNo полягає в тому, що читання RecNo повертає послідовний номер, який той же самий якщо індекс не використовується і розрізняється якщо індекс використовується.

2.4 LanguageID

property LanguageID: Integer read GetLanguageID;

Використовуйте властивість LanguageID для визначення кодової сторінки, комбінації про використану локалізації using.Див також DbfLang.pas для отримання інформації.

2.5 LanguageStr

property LanguageStr: String read GetLanguageStr;

Використовуйте властивість LanguageStr для читання кодової сторінки, інформації про локалізацію для dBase таблиць рівня 7.

2.6 CodePage

property CodePage: Cardinal read GetCodePage;

Використовуйте властивість CodePage для визначення кодової сторінки dBase таблиці.

2.7 ExactRecordCount

property ExactRecordCount: Integer read GetExactRecordCount;

Використовуйте властивість ExactRecordCount для визначення точної кількості записів у поточному наборі даних.Воно включає в себе кількість видалених, відфільтрованих і індексованих записів.Цим воно відрізняється від властивості RecordCount, яке завжди дає існуючу верхньої межі.Зауважимо, що дана властивість вимагає сканування повного набору даних, у той час як властивість RecordCount це просто розрахунок.

2.8 DbfFile

property DbfFile: TDbfFile read FDbfFile;

Ця властивість використовується внутрішньо для функцій нижнього рівня.Додатку користувача немає потреби звертатися до даного властивості.

2.9 DisableResyncOnPost

property DisableResyncOnPost: Boolean read FdisableResyncOnPost

write FDisableResyncOnPost ;

Коли запис записується в таблицю, TDataSet витягує всі записи поблизу від поточного запису.Властивість DisableResyncOnPost керує даним поведінкою.Воно дозволяє збільшити швидкість, якщо Ви додаєте групу записів.Див також TDataSet.DisableControls.

2.10 DateTimeHandling

property DateTimeHandling: TDateTimeHandling read FdateTimeHandling

write FDateTimeHandling default dtBDETimeStamp;

До версії 6.0 TDbf використовував запис значення в '@' (ftDateTime) полів як Delphi тип TDateTime.Для сумісності з BDE, ці поля треба було записувати як BDE тип TimeStamp (число мілісекунд, починаючи з 01/01/0001 плюс один день).Для забезпечення сумісності Ви можете використовувати цю властивість для визначення як TDbf повинен читати і писати значення datetime як TDateTime або як BDE TimeStamp.Зараз за замовчуванням це як dtBDETimeS – tamp, але для читання значень в існуючих TDbf таблицях Ви можете вибрати тип dtDateTime.Якщо ви бажаєте перетворити ваші дані, сумісні з BDE, то зверніть вашу увагу на процедуру CopyFrom.

2.11 Exclusive

property Exclusive: Boolean read FExclusive write FExclusive default false;

Використовуйте властивість Exclusive для запобігання доступу інших додатків до таблиці, відкритої в цьому додатку.Перед відкриттям таблиці, встановіть властивість Exclusive в true.Таблиця повинна бути закрита до зміни властивості Exclusive.Коли властивість Exclusive встановлено у true, і додаток успішно відкрило таблицю, то інші програми не зміг мати до неї доступу.Якщо таблиця, до якої потрібно монопольний доступ, вже відкрита іншим додатком, то виникне виняток.Для обробки таких винятків, укладіть відкриття в блок try except end.Див також TryExclusive.Не встановлюйте властивість Exclusive в true під час розробки, якщо Ви одночасно встановлюєте властивість Active в true.В цьому випадку відбудеться виключення, оскільки таблиця вже використовується в IDE.