Бібліотека Borland Database Engine (BDE)

Якщо створене за допомогою С + + Builder додаток в процесі роботи звертається
до баз даних, воно, як правило, використовує для цієї мети бібліотеку BDE
(Borland Database Engine), засновану на технології IDAPI (Integrated Database
Application Program Interface). Ця бібліотека встановлюється автоматично при
установці С + + Builder. За замовчуванням вона встановлюється в каталог C: Program
FilesBorlandCommon FilesBDE.


Слід зазначити, що файли, що входять до складу бібліотеки BDE, призначені
для використання не лише додатками, створеними за допомогою С + + Builder, а й
багатьма іншими продуктами Borland (Visual dBase, Paradox, Delphi, Borland C + +,
IntraBuilder), створеними на їх основі додатками, а також офісними
додатками Corel (наприклад, електронної таблиці Quattro Pro), генератором
звітів Crystal Reports (Seagate Software). Тому за наявності кількох
використовують BDE додатків всі 32-розрядні додатки (у тому числі C + +
Builder) використовують встановлену останньої 32-розрядну версію BDE. У цьому
випадку за замовчуванням програма установки C + + Builder запропонує поставити BDE в
каталог, де встановлена вже використовувана версія BDE.



Рис.1. Зв'язок додатків з джерелами даних
за допомогою BDE

BDE забезпечує для створених додатків:



Утиліта налаштування BDE


При виникненні необхідності доступу до даних в більшості випадків для їхнього
джерела (як правило, це якась конкретна база даних) створюється
псевдонім (alias), ім'я якого використовується додатком. Параметри цього і
інших псевдонімів, а також параметри налаштування драйверів баз даних містяться
у файлі idapi32.cfg, розташованому в тому ж каталозі, що і файли BDE. Для
зміни змісту цього файлу, а також значень відповідних цій
бібліотеці ключів реєстру Windows 95 і Windows NT використовується утиліта
конфігурації BDE – BDECFG32.EXE.


Утиліта конфігурації складається з однієї форми, яка містить блокнот із шести
сторінок.


Сторінка Drivers містить параметри доступу до різних типів даних.


Сторінка Aliases містить відомості про псевдонімах джерел даних, до яких
за допомогою BDE звертаються додатки, встановлені на даному комп'ютері.


Сторінка System містить параметри налаштування роботи самої бібліотеки BDE,
пов'язані з використанням пам'яті, мережевого оточення та інших ресурсів,
доступних використовують BDE додатків. Ці параметри містяться в реєстрі
Windows 95 (або Windows NT).


Сторінки Date, Time, Number містять правила відображення в додатках
календарних дат, часу і числових даних відповідно до правил, прийнятих
в тій чи іншій країні.


Налаштування драйверів баз даних


Для налаштування драйверів баз даних використовується сторінка Drivers утиліти
налаштування BDE. У лівій частині цієї сторінки є список доступних для BDE
драйверів, куди входять драйвери для dBase і Paradox, встановлені на даному
комп'ютері драйвери SQL Links для доступу до серверних СУБД, а також імена
ODBC-джерел даних, створені за допомогою 32-розрядного адміністратора ODBC
панелі керування Windows (рис. 5.2).



Рис. 2. Налаштування драйверів баз
даних

При натисканні на кнопку New ODBC Driver можна додати до списку новий
ODBC-джерело даних (перед цим, природно, слід встановити
відповідний ODBC-драйвер і описати джерело даних за допомогою
ODBC-адміністратора в панелі управління Windows). Можна також видалити
ODBC-драйвер з файлу конфігурації BDE (Delete ODBC Driver).


У правій частині сторінки Drivers вказані параметри обраного в списку
драйвера. При налаштуванні драйверів слід замінити параметри, зазначені за
замовчуванням, на значення, специфічні для вибраного джерела даних (наприклад,
мовний драйвер, правила обробки запитів, ім'я сервера та бази даних, тип
мережевого протоколу для доступу до сервера, номер версії). Ці набори параметрів
різні для різних драйверів баз даних.


Створення та налаштування псевдонімів баз даних


Для доступу додатків до даних засоби розробки Borland використовують
механізм псевдонімів, що описують доступ до конкретних джерел даних. Створити
опис нового джерела даних можна, натиснувши кнопку New Alias в лівій частині
вікна (мал. 6.3, 6.4).



Рис. 3. Вибір псевдоніма
БД і установка параметрів

Після цього в з'явилася діалогової панелі слід ввести ім'я-псевдонім для
цього джерела і вибрати потрібний драйвер із запропонованого списку (того, що
визначений на сторінці Drivers). Ім'я STANDARD в цьому випадку відповідає
таблиць dBase, Paradox і текстових файлів (у форматі CSV – Comma Separated
Value).



Рис. 4.Створення нового
псевдоніма БД

У правій частині сторінки Aliases містяться параметри конкретних джерел
даних, які можна модифікувати, замінюючи значення за замовчуванням (в тому числі
успадковані з попередньої сторінки), наприклад, імена каталогів, серверів, ім'я
користувача за замовчуванням, мовний драйвер і ін


Системні налаштування BDE


Сторінка системних настройок дозволяє вказати параметри системи та мережі,
використовувані BDE і зберігаються в реєстрі Windows (рис. 5, табл. 1).



Рис. 5. Сторінка System
утиліти конфігурації BDE.

Таблиця 1. Параметри системи та мережі, використовувані BDE.



























































Параметр Опис Значення за замовчуванням
VERSION версія BDE  
LOCAL SHARE Якщо цей параметр дорівнює true, можна використовувати одні й ті ж
дані додатками, що використовують BDE, і додатками, які не використовують
BDE
FALSE
MINBUFSIZE Мінімальний розмір буфера оперативної пам'яті для кешування
даних з БД. Можливі значення – від 32 до 65535 Кб, але не більше, ніж обсяг
доступною Windows оперативної пам'яті
 
MAXBUFSIZE Максимальний розмір буфера оперативної пам'яті для кешування
даних з БД. Повинен бути вище, ніж MINBUFSIZE, але не більше, ніж обсяг доступної
Windows оперативної пам'яті. Повинен бути кратний 128.
2048
LANGDRIVER Мовний драйвер, відповідний національної версії
операційної системи
 
MAXFILEHANDLES Максимальне число файлів, що відкриваються BDE. Може приймати цілі
значення від 5 до 256
48
SYSFLAGS Внутрішній параметр BDE  
LOW MEMORY USAGE LIMIT Максимально допустимий обсяг основної пам'яті, що використовується
BDE
32
AUTO ODBC якщо цей параметр приймає значення true, використовуються всі
ODBC-джерела з файлу ODBC.INI
FALSE
DEFAULT DRIVER драйвер, використовуваний першим, якщо тип БД – FILE, і ім'я таблиці
не має розширення.
 
SQLQRYMODE Метод виконання запитів до серверів. Може приймати значення
NULL, SERVER, LOCAL
NULL
SHAREDMEMSIZE Максимальний розмір для поділюваної оперативної пам'яті 2048
SHAREDMEMLOCATION Бажаний адреса для розміщення поділюваної області
пам'яті.
E000 (Windows 95) 7000(Windows NT)

Налаштування параметрів відображення дати, часу і
чисел


Сторінка Date дозволяє вказати параметри відображення дат (див. табл.2).


Таблиця 2. Параметри налаштування відображення дат































Параметр Опис Значення за замовчуванням
SEPARATOR Символ-роздільник числа, місяця та року Значення, що міститься в налаштуваннях панелі керування Windows
95/NT
MODE Параметр, що визначає порядок проходження числа. місяця й року.
Може приймати значення: 0 (MDY), 1 (DMY), 2 (YMD).
Значення, що міститься в налаштуваннях панелі керування Windows
95/NT
FOURDIGITYEAR Параметр, що визначає відображуване число цифр року. Може
приймати значення: TRUE (4 цифри), FALSE (2 цифри)
TRUE
YEARBIASED Параметр, що визначає, додавати чи ні 1900 до значення року,
якщо попередній параметр дорівнює FALSE
TRUE
LEADINGZEROM Параметр, що визначає, чи вказувати лідируючі нулі перед
значенням місяця, якщо воно є однозначним числом.
FALSE
LEADINGZEROD Параметр, що визначає, чи вказувати лідируючі нулі перед
значенням числа, якщо воно є однозначним числом.
FALSE

Сторінка Time дозволяє вказати параметри відображення часу (див. табл. 3).


Таблиця 3. Параметри налаштування відображення часу



























Параметр Опис Значення за замовчуванням
TWELVEHOUR Параметр, що визначає інтервал відображення годин: 0-12 (TRUE)
або 0-24 (FALSE)
TRUE
AMSTRING Символьний рядок для зазначення першої половини дня, якщо
TWELVEHOUR=TRUE
AM
PMSTRING Символьний рядок для зазначення другої половини дня, якщо
TWELVEHOUR=TRUE
PM
SECONDS Параметр, що визначає, чи вказувати секунди у значенні часу
TRUE
MILSECONDS Параметр, що визначає, чи вказувати мілісекунди на значенні
часу.
FALSE

Сторінка Number дозволяє вказати параметри відображення числових даних
(Табл. 4).


Таблиця 4. Параметри налаштування відображення чисел























Параметр Опис Значення за замовчуванням
DECIMALSEPARATOR Символ, що відокремлює дробову частину числа Значення, що міститься в налаштуваннях панелі керування Windows
95/NT
THOUSANDSEPARATOR Символ, що відокремлює один від одного "трійки" розрядів в багатозначних
числах
Значення, що міститься в налаштуваннях панелі управління
Windows 95/NT
DECIMALDIGITS Максимальне число десяткових розрядів числа, отриманого при
перетворенні символьного рядка
2
LEADINGZERON Параметр, що визначає, чи вказувати нуль перед дробової частиною
числа, чиє абсолютне значення менше одиниці
TRUE

Трохи про засоби мовної налаштування BDE


Засоби мовної налаштування BDE представляють собою набір так званих
мовних драйверів, що встановлюють набір символів, що використовуються в даних, і
порядок алфавітного сортування для використовуваної мови. Мовні драйвери Borland
існують для великої кількості мов, у тому числі і для російського.


При описі параметрів драйвера баз даних (сторінка Drivers) слід
вказувати мовний драйвер, пропонований для баз даних цього типу за замовчуванням.
При створенні нового псевдоніму (сторінка Aliases) слід вказувати, якою
мовний драйвер використовується в базі даних, інакше буде використовуватися мовний
драйвер, встановлений за умовчанням для даного драйвера баз даних.


Відзначимо, що в загальному випадку мовна настройка баз даних і використовують їх
додатків включає в себе не тільки настройки у LANGDRIVER на сторінках
Drivers, Aliases і System. Деякі СУБД мають свої засоби мовної
налаштування, причому ці кошти можуть бути багаторівневими. Наприклад, у разі
використання будь-яких серверної СУБД може знадобитися, крім налаштування
BDE, настройка мовних параметрів сервера, настройка аналогічних параметрів
клієнтської частини або навіть вибір відповідної мовної версії сервера.
Докладніше ці проблеми будуть розглянуті трохи пізніше.


Крім цього, існує проблема, пов'язана з відмінностями DOS-і
Windows-кодувань для російської мови. Мовні драйвери BDE існують для обох
кодувань. Який з них вибрати, залежить від багатьох чинників: наявності та обсягу
успадкованих даних, наявності інших додатків, що використовують ці ж дані і
ін Наприклад, розумно, використовуючи таблиці формату dBase III спільно з
додатками для DOS, створеними на Clipper, застосувати DOS-кодування для цих
таблиць.


Особливості настройки BDE для роботи з деякими
джерелами даних


dBase


При роботі з таблицями dBase налаштування відповідного драйвера зводиться до
налаштування наступних параметрів:































Параметр Опис Значення за замовчуванням
VERSION Внутрішній параметр BDE 1.0
TYPE Тип сервера (SQL-сервер або файловий сервер) FILE
LANGDRIVER Мовний драйвер, що визначає набір символів і порядок
алфавітного сортування
dBASE ENU cp437
LEVEL Версія формату dBase при створенні таблиць 5
MDX BLOCK SIZE Розмір блоку, відведеного під індексні файли *. mdx. Може бути
цілим числом, кратним 512 K
1024
MEMO FILE BLOCK SIZE Розмір блоку, відведеного під файли memo-полів *. dbt. Може бути
цілим числом, кратним 512 K
1024

При установці параметрів псевдоніма потрібно вказати значення параметра PATH –
шляху до каталогу, де розташовані таблиці бази даних (це може бути і мережевий
диск).


З мовної налаштуванням таблиць dBase зазвичай не виникає проблем. Для
DOS-кодування зазвичай використовується мовний драйвер dBASE RUS cp866, а для
Windows – “ascii” ANSI.


Слід зазначити, що до таблиць dBase можна звертатися, використовуючи ODBC.


Особливу увагу слід звернути на те, що розширення *. dbf мають не тільки
таблиці формату dBase, але і таблиці Clipper, FoxBase, FoxPro. Однак ці СУБД
можуть мати інший формат індексних файлів і мемо-полів, які в явному вигляді
можуть не підтримуватися бібліотекою BDE (наприклад, індекси *. cdx). У цьому випадку
рекомендується або доступ через ODBC (що не завжди ефективно з точки зору
продуктивності), або використання бібліотек третіх фірм, що забезпечують
інтерфейс з такими СУБД (наприклад, Apollo компанії SuccessWare).


Paradox


При роботі з таблицями Paradox налаштування відповідного драйвера зводиться до
налаштування наступних параметрів:







































Параметр Опис Значення за замовчуванням
VERSION Внутрішній параметр BDE 1.0
TYPE Тип сервера (SQL-сервер або файловий сервер) FILE
NET DIR Розташування файлу PDOXUSRS.NET, керуючого спільним
використанням таблиць Paradox в мережі.
FILE
LANGDRIVER Мовний драйвер, що визначає набір символів і порядок
алфавітного сортування
“ascii”ANSI
LEVEL Версія формату Paradox при створенні таблиць (3,4,5 чи 7) 5
BLOCK SIZE Розмір блоку, відведеного для зберігання записів таблиць Paradox.
Може бути цілим числом, кратним 1024 K. Можливі значення залежать від значення
параметра LEVEL.
2048
FILL FACTOR Максимальний відсоток заповнення блоку для індексних файлів. 95
STRICTINTEGRTY Параметр, що визначає, чи можуть таблиці Paradox модифікуватися
додатками, що не підтримують посилальну цілісність.
TRUE

Як і у випадку dBase, російські мовні драйвери для Paradox існують для
обох кодувань – і DOS, і Windows. Проте вказівка на мову, що використовується
міститься ще й усередині самих таблиць. Тому при створенні таблиці Paradox
(Наприклад, за допомогою Database Desktop) слід обов'язково вказати використовуваний
мовний драйвер при описі властивостей таблиці. Як показує досвід, при невірному
визначення мови таблиці можуть виникнути проблеми при наступному введенні в неї
даних, що містять російські букви – деякі з них після виходу з
редагованого поля можуть перетворитися на латинські.


ODBC-джерела


При роботі з ODBC-джерелами потрібно налаштування наступних параметрів:















































































Параметр Опис Значення за замовчуванням
VERSION Внутрішній параметр BDE 1.0
TYPE Ідентифікатор ODBC-джерела FILE
DLL Ім'я 16-розрядної динамічної бібліотеки, що містить
драйвер
IDODBC16.DLL
DLL32 Ім'я 32-розрядної динамічної бібліотеки, що містить драйвер IDODBC32.DLL
ODBC DRIVER ODBC-драйвер для з'єднання з сервером  
DRIVER FLAGS Внутрішній параметр BDE  
USER NAME Ім'я користувача в діалозі введення пароля  
ODBS DSN Ім'я джерела даних, описаного в адміністраторові ODBC  
OPEN MODE Параметр, що визначає, в якому режимі відкриваються таблиці –
READ/WRITE eee READ ONLY
READ/WRITE
LANGDRIVER Мовний драйвер, що визначає набір символів і порядок
алфавітного сортування
“ascii”ANSI
SCHEMA CASHE SIZE Число таблиць, чия структура кешується. Можливі значення – від 0
до 32
8
SQLQRYMODE Метод виконання запитів. Можливі значення: LOCAL – запит
обробляється тільки клієнтським додатком, SERVER – запит виконується тільки
сервером, NULL (порожній рядок) – запит передається клієнтові, якщо сервер не може
його обробити.
NULL
SQLPASSTHRU MODE Визначає режим спільного використання одного й того ж
псевдоніма направляються на сервер і локальними запитами: NOT SHARED –
спільне використання заборонено, SHARED AUTOCOMMIT – спільне
використанням дозволено з автоматичним завершенням транзакцій, SHARED
NOAUTOCOMMIT – спільне використанням дозволено з завершенням транзакцій по
правилами сервера.
SHARED AUTOCOMMIT
TRACE MODE Чисельне значення, що визначає рівень виведення налагоджувальної
інформації.
 
SCHEMA CACHE TIME Час знаходження інформації про структуру таблиць в кеші в секундах
від 1 до 2147483647. Інші значення: -1 – до закриття БД, 0 – інформація не
кешується
-1
BATCH COUNT Число записів, які розміщені в пакет до завершення транзакції Число записів, що вміщується в 32 К.
MAX ROWS Максимальне число записів, які драйвер може доставити на
робочу станцію при виконанні одиночного SQL-запиту
-1 (Немає обмежень)
ROWSET SIZE Число записів, що доставляються в одному блоці даних (підтримується
не всіма ODBC-драйверами).
20

При створенні псевдонімів баз даних на сторінку Aliases за замовчуванням
заносяться параметри зі сторінки Drivers для відповідного ODBC-драйвера. При
необхідності багато хто з них можна перевизначити.


Ряд ODBC-джерел вимагає вказівки параметра PATH – шляхи до каталогу, де
знаходиться база даних.


Слід звернути увагу на те, що перед описом ODBC-джерела у файлі
конфігурації BDE обов'язково потрібно встановити відповідний ODBC-драйвер і
описати відповідний джерело даних в панелі управління Windows 95/NT,
використовуючи відповідний ODBC-адміністратор. При цьому слід звернути увагу
на деяку термінологічну неув'язку. Справа в тому, що ODBC-драйвер з точки
зору BDE, створюваний при натисканні кнопки New ODBC Driver на сторінці Drivers
утиліти конфігурації BDE, насправді являє собою вказівку не на
реальний ODBC-драйвер, встановлений в панелі керування Windows, а на
конкретне джерело даних, доступ до якого здійснюється за допомогою реального
ODBC-драйвера (з точки зору панелі управління). При цьому слід ще створити і
відповідний псевдонім бази даних, що остаточно збиває з пантелику
деяких початківців користувачів. Таким чином, послідовність дій
при здійсненні доступу до ODBC-джерелами наступна:




Рис. 6. Опис нового
ODBC-драйвера "з точки зору BDE".

Відзначимо, що у версії BDE, що поставляється з Delphi 3.0, вся ця
термінологічна плутанина ліквідована, а всі описані в реєстрі Windows
джерела даних додаються до списку псевдонімів, і тим самим ліквідується
необхідність виконання описаної вище інструкції. Залишається сподіватися, що в
наступної версії C + + Builder доступ до ODBC-джерелами спроститься таким же
чином


Для коректного відображення російських букв і установки правильного порядку
алфавітного сортування можна спробувати використовувати який-небудь з російськомовних
драйверів dBase або Paradox. Однак слід пам'ятати, що деякі ODBC-драйвери
мають свої процедури налаштування, які можуть, зокрема, включати опцію
перекодування OEM-> ANSI (тобто DOS-> Windows). Крім того, якщо доступ через
ODBC здійснюється до якої-небудь серверної СУБД, слід звернути увагу на
можливості мовної налаштування сервера і клієнтської частини.


Oracle


Для налаштування доступу до серверів Oracle слід налаштувати приблизно той же
набір параметрів, що й у випадку ODBC-джерел. Крім цього, для драйвера
ORACLE існує додатковий набір параметрів:







































Параметр Опис Значення за замовчуванням
VENDOR INIT Ім'я бібліотеки для з'єднання клієнта з сервером (ORANT.DLL,
ORA72.DLL та ін)
ORANT.DLL
SERVER NAME Ім'я псевдоніма (alias) БД, зазначеного у файлі TNSNAMES.ORA. Якщо
сервер локальний, то SERVER NAME = @ 2:
 
NET PROTOCOL TNS – якщо використовується SQL * Net версії 2.0 або вище, або ім'я
мережевого протоколу для доступу до сервера, якщо використовується більш рання версія
SQL*Net.
 
ENABLE SCHEMA CASHE Чи дозволяється кешування на робочій станції структури таблиць,
утримуються на сервері.
FALSE
SCHEMA CASHE DIR Каталог для кешування структури таблиць. 1.0
ENABLE BCD Дозволено чи переклад числових і грошових величин у формат BCD
(Binary coded decimals), щоб уникнути помилок округлення.
FALSE
ENABLE INTEGERS Чи дозволено перетворення числових величин з фіксованою
коми в цілий формат.
FALSE
LIST SYNONYMS Дозволені чи синоніми (альтернативні імена таблиць і
уявлень) в структурах таблиць: NONE – ні, PRIVATE – дозволені особисті
синоніми, ALL – дозволені особисті та спільні синоніми.
NONE

Проблеми встановлення з'єднання з Oracle з додатків Borland пов'язані головним
чином з правильною настроюванням мережного програмного забезпечення Oracle
SQL * Net. Останні версії серверів Oracle (7.2, 7.3) містять у своєму складі
SQL * Net версії 2.0 або вище. Для конфігурації SQL * Net 2.0 і вище слід
налаштувати псевдоніми баз даних Oracle за допомогою утиліти SQL * Net Easy
Configuration, описавши мережеве ім'я або адресу сервера, ім'я бази даних і тип
мережевого протоколу. Після цього рекомендується перевірити наявність з'єднання з
сервером за допомогою утиліти Oracle SQL Plus. Тільки після перевірки з'єднання
можна конфігурувати псевдонім BDE.


При конфігурації псевдоніма BDE в якості мережевого протоколу можна вказати
TNS (Transparent Network Substrate – головна надбудова Oracle над
мережевими протоколами). Як ім'я сервера слід вказати ім'я псевдоніма
бази даних Oracle, вказавши перед цим ім'ям символ "@" (про це в документації
не сказано). Для локального сервера (або у випадку, коли клієнтське додаток
функціонує на одному комп'ютері з сервером баз даних, наприклад, Oracle
Workgroup Server for Windows NT) в якості імені сервера можна використовувати
рядок "@ 2:".


Для коректного відображення російських букв і установки правильного порядку
алфавітного сортування можна використовувати драйвери dBase RUS CP866 або Paradox
ANSI Cyrillic в залежності від того, яка кодування – DOS або Windows – буде
використовуватися. Проте коректна робота з російською мовою буде забезпечена
тільки в тому випадку, якщо вдало підібране поєднання трьох параметрів мовної
налаштування: мовний настройки сервера (вона вказується при його установці),
мовної налаштування клієнтської частини (значення
HKEY_LOCAL_MACHINE / / SOFTWARE) / / ORACLE / / NLS_LANG реєстру Windows 95) і власне
мовного драйвера BDE. Подробиці мовної налаштування клієнтської частини і
сервера можна знайти в документації до сервера Oracle.


InterBase


Для налаштування доступу до серверів InterBase слід налаштувати приблизно той же
набір параметрів, що й у випадку ODBC-джерел. Крім цього, для InterBase
існує додатковий набір параметрів:















Параметр Опис Значення за замовчуванням
BLOBS TO CACHE Визначає, скільки BLOB-полів кешується на робочій станції.
Можливі значення: 64 – 65536
64
BLOB SIZE Визначає розмір буфера для BLOB-полів, переданих в
результаті запиту. Можливі значення – 32-100 К. Параметр застосовується лише у
випадку нередактіруемих даних
32 До

Відзначимо, що при з'єднанні з локальним сервером InterBase слід вказувати
шлях до файлу бази даних.


При виникненні проблем зв'язку C + + Builder з InterBase слід перевірити
наявність зв'язку за допомогою утиліти Interactive SQL. За наявності зв'язку в Interactive
SQL слід перевірити параметри конфігурації драйвера і псевдоніма BDE, а при
відсутності – спробувати знайти помилки в мережевому протоколі, перевіривши з'єднання з
допомогою утиліт PING і TELNET.


Більш докладно про роботу з C + + Builder можна дізнатися з книги М. З. Єлмановою і
С. П. Кошеля "Borland C + + Builder", що виходить в серпні у видавництві
"Діалог-МІФІ".

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*