Смекни!
smekni.com

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

Міністерство освіти і науки України

Чернігівський державний педагогічний університет імені Т.Г. Шевченка

Фізико–математичний факультет

Кафедра інформатики та обчислювальної техніки

Курсова робота

з математичного аналізу

Робота з таблицями засобами Lazarus

студента 25 групи

фіз-мат факультету

Майбороди Іллі Миколайовича

Чернігів, 2010


Засоби доступу до БД в середовищі Lazarus

Подібно до Delphi, Lazarus є середовищем RAD (від англ. Rapid application development - швидка розробка додатків), що дозволяє швидко створювати для користувача інтерфейс. На відміну від Delphi, Lazarus є кроссплатформенним середовищем.Підтримуються такі ОС, як GNU/Linux, Microsoft Windows, Mac OS X, FreeBSD, WinCE.Можливо перетворення Delphi проектів в проекти Lazarus.

Lazarus містить набір візуальних компонентів LCL (аналог VCL в Delphi).У версії 0.9.26 повністю підтримуються віджити Win32/Win64 та GTK, частково підтримуються віджити GTK2, QT, Carbon, Cocoa, WinCE і fpGUI.За кількістю компонентів Lazarus поки поступається Delphi.Тим не менш, є основний набір компонентів, а також компоненти для зв'язку з базами даних. IDE переведена на різні мови, в тому числі і на російську. Досить вибрати потрібну мову при установці Lazarus.

Lazarus підтримує такі бази даних:

·dBaseтаFoxProза допомогою компонента TDbf

·InterBaseтаFirebirdза допомогою компонента TIBConnection

·Oracleза допомогою компонента TOracleConnection

·PostgreSQLза допомогою компонента TPQConnection

·ODBCза допомогою компонента TODBCConnection.

·MySQLза допомогою компонента TMySQL50Connection

Також підтримуються бази даних MS SQL Server, для цього потрібно встановити бібліотеку Zeoslib.

DBase таFoxPro

dBase - родина широко поширених систем управління базами даних, а також мова програмування, що використовується в них.Найперша СУБД цього сімейства називалася dBase II і була випущена в 1980 році компанією Ashton-Tate під CP/M, пізніше з'явилися версії для Apple II, Apple Macintosh, UNIX, VMS і IBM PC під DOS.Версія для PC разом з пришедшими їй на зміну dBase III і dBase IV були кілька років однією з найбільш розповсюдженіших програм.Довгий час dBase не портували під Microsoft Windows, в результаті чого у програми з’явилися сильні конкуренти - Paradox, Clipper, FoxPro та Microsoft Access. Оскільки формат даних dBase не був закритим, з середини 80-х безліч компаній стали виробляти свої діалекти мови і версії системи.У результаті з'явилося безліч схожих на dBase програм - FoxPro (сучасна Visual FoxPro), Arago, Force, dbFast, Clipper, Xbase + +, FlagShip, Recital, CodeBase, MultiBase, Harbour / xHarbour.Разом їх усіх іменують xBase.

InterBase таFirebird

В даний час останньою версією є InterBase 2009 (2009), у якій з'явилася підтримка Unicode та шифрування AES/DES. InterBase 7.5/2007 і Firebird 1.5/2.0 схожі, але вже далекі від повної сумісності - то є міграція між їхніми форматами баз даних легше, ніж між форматами зовсім «чужих» баз даних, але все-таки пов'язана з певними проблемами.

Основними перевагами останньої версії InterBase є низькі вимоги до системи, з одночасною масштабність на кілька процесорів, плюс розвинена система моніторингу, тимчасові таблиці, що вбудовується аутентифікація користувачів, журнал роботи. Традиційним гідністю вважається крос-платформеність – InterBase підтримує GNU/Linux, Microsoft Windows, Unix і Solaris.

Oracle

Перша у світі база даних, розроблена спеціально для роботи в мережах розподілених обчислень Grid, призначена для ефективного розгортання на базі різних типів обладнання, від невеликих серверів до потужних симетричних багатопроцесорних серверних систем, від окремих кластерів до корпоративних розподілених обчислювальних систем.СУБД надає можливість автоматичного налаштування і управління, яка робить її використання простим і економічно вигідним.

PostgreSQL

Опції є блоками коду, що виконуються на сервері, а не на клієнті бази даних.Хоча вони можуть писатися на чистому SQL, реалізація додаткової логіки, наприклад, умовних переходів і циклів, виходить за рамки власне SQL і вимагає використання деяких мовних розширень. Функції можуть писатися з використанням однієї з наступних мов:

· Вбудований процедурний мову PL/pgSQL, багато в чому аналогічний мови PL / SQL, що використовується в СУБД Oracle;

· Скриптові мови - PL/Lua, PL/LOLCODE, PL/Perl, pIPHP, PL/Python, PL/Ruby, PL/sh, PL/Tcl і PL/Scheme;

· Класичні мови - C, C + +, Java (через модуль PL/Java);

· Статистична мова R (через модуль PL/R).

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

ODBC

ODBC це програмний інтерфейс (API) доступу до баз даних. Дозволяє однаково оперувати з різними джерелами даних, абстрагуючись від особливостей взаємодії в кожному конкретному випадку. При застосуванні ODBC потрібно пам'ятати, що дана технологія доступу до даних не розрахована на роботу з великою кількістю клієнтів.У тому випадку, якщо необхідно, щоб з базою даних одночасно працювало багато активних клієнтів, потрібно використовувати SQL API або спеціальний інтерфейс для взаємодії з конкретною базою даних.

Створення і робота з таблицями за допомогою DBase

Робота з базами даних типу DBase реалізується за допомогою компоненти TDbf. TDbf забезпечує доступ до таблиць баз даних dBase і FoxPro для Lazarus (та інших IDE), з огляду на читання, запис і створення dBase III+, dBase IV, Visual dBase VII і FoxPro таблиць.Все це робиться без використання додаткових бібліотек або движків бази даних. Просто розмістіть компонент TDbf на вашій формі, і Ви маєте миттєвий доступ в навколишньому середовищі бази даних на різних платформах.

TDbf є безкоштовним компонентом прямого доступу, для сумісних середовищ фірми Borland Delphi language. Це включає Delphi, C ++ Builder і Kylix.Він дозволяє створювати дуже компактні програми роботи з базою даних, яка не вимагає застосування програм інсталяції.Код роботи з базою включається до виконуваної код.Це забезпечує наступні можливості:

· Робота без BDE.

· Дозволяє використовувати рідні dBase типи (character, numeric, logical, date і memo).Див властивість TableLevel.

· Підтримує обидва типи Memo полів - text і binary, так можна використовувати поля без обмеження розміру.

· Формат файлів на 100% сумісний з dBase III + or dBase IV або dBase for Windows.

· Підтримка таблиць Clipper і Visual FoxPro.

· Модифікація існуючих таблиць включає видалення, додавання або модифікацію поточної таблиці без втрати даних.

· Багато користувальницький доступ сумісний по блокуванню з BDE.Тільки один користувач може блокувати запис для запису, але інші користувачі можуть читати цей запис.

· Підтримка індексів для швидкого сортування, пошуку і виділення діапазону на великих таблицях.Підтримка індексів для NDX і MDX індексних файлів.

· Вирази підтримуються як для індексів, так і для фільтрів.

TDbf працює і в Windows і в Linux використовуючи Lazarus. Оскільки в Lazarus немає програми на зразок "Database Desktop", ми повинні створити нову базу даних в коді.

Гарною думкою є створення для БД окремого каталогу. Це спростить резервування даних. Є два варіанти встановлення шляху.Ви можете встановити повний шлях використовуючи властивість FilePathFull, або встановити шлях щодо варіанти застосування за допомогою властивості FilePath.Наприклад, інсталяція "FilePath" під час виконання до "data/" використовуватиме субдиректорію data тільки в директорії здійснимих файлу.Інсталяція властивості "FilePathFull" до "/var/data/" буде розміщувати точно за вказаною шляху, ігноруючи розташування програми.

За замовчуванням, TDbf створює таблиці dBase IV.Хоча це і найбільш сумісно, деякі можливості, які Вам можуть знадобитися, не підтримуються.Для підтримки автоінкрементних полів ви повинні використовувати дещо більш нове.Типи таблиць можуть бути наступними:

· 3 dBase III+

· 4 dBase IV

· 7 Visual dBase VII

· 25 FoxPro

Створення полів для Вашої нової таблиці під час виконання у більшості випадках слідує старому стандарту Delphi.Як тільки ви встановили свої значення для властивостей FilePath, TableLevel, і TableName, маніпулюйте властивістю FieldDefs щоб визначити структуру. Наприклад:

MyDbf.FilePathFull:= ‘/location/to/my/data’;

MyDbf.TableLevel := 7;

MyDbf.TableName := ‘customers.dbf’;

With MtDbf/FieldDefs do

Begin

Add(‘Id’,ftAutoInc,0,True);

Add(‘Name’,ftString,80,True);

End;

Типи полів визначено як:

· ftUnknown

· ftString

· ftSmallInt

· ftInteger

· ftWord

· ftBoolean

· ftFloat

· ftCurrency(TableLevel 25)

· ftBCD(TableLevel 25)

· ftDate

· ftTime

· ftDateTime

· ftBytes(TableLevel 25)

· ftVarBytes

· ftAutoInc(TableLevel 7 or 25)

· ftBlob

· ftMemo

· ftGraphic

· ftFmtMemo

· ftParadoxOle

· ftDBaseOle

· ftTypedBinary

· ftCursor

· ftFixedChar

· ftWideString

· ftLargeInt

· ftADT

· ftArray

· ftReference

· ftDataSet

· ftOraBlob

· ftOraClob

· ftVariant

· ftInterface

· ftIDispatch

· ftGuid

· ftTimeStamp

· ftFMTBcd

Жирним виділені типи полів які підтримуються.

Як тільки ви визначили поля, які бажаєте використовувати у вашій новій таблиці, ви можете йти далі і створити таблицю:

MyDbf.CreateTable;

Якщо Ваша база даних складається з великої кількості записів, Вам може знадобитися визначити індекси щоб здійснювати більш швидкий пошук по таблиці.Щоб змінити структуру індексів таблиці, ми повинні мати ексклюзивний доступ до таблиці - який ми так чи інакше мали б, створюючи таблицю.

MyDbf.Exclusive := True;

MyDbf.Open;

Тепер, нам необхідно просто додати індекси:

MyDbf.AddIndex(‘custid’,’Id’,[ixPrimary,ixUnique]);

MyDbf.AddIndex(‘cutname’,’Name’,[ixCaseInsensitive]);

MyDbfClose;

Наступний приклад створює нову таблицю "customers" в коді.Звичайно, це необхідно виконати тільки один раз, і після цього всього лише ВІДКРИВАТИ таблицю, не створюючи її заново:

{$MODE OBJPC}

Program DataBaseTest;

Uses Dbf, db, Dbf_Common;

Var

MyDbf : Dbf;

Begin

MtDbf := TDbf.Create(nil);

Try

MtDbf.FilePath := ‘data/’;

MtDbf.TableLevel := 7;

MtDbf.Exclusive := True;

MtDbf.TableName := ‘customers.dbf’

With MtDbf.FieldDefs do

Begin

Add(‘Id’,ftAutoInc,0,True);

Add(‘Name’,ftString,80,True);

End;

MtDbf.CreateTable;

MtDbf.Open;

MyDbf.AddIndex(‘custid’,’Id’,[ixPrimary,ixUnique]);

MyDbf.AddIndex(‘custname’,’Name’,[ixCaseInsensitive]);

MyDbfClose;

Finally

MyDbf.Free;

End;

End;

TDbf також підтримує зберігання вторинних індексів в окремих файлах.Це може допомогти в разі якщо буде дуже великий розмір бази даних.Файли вторинних індексів створюються ідентично звичайним, але з додаванням розширення файлу '. ndx':