Досвід прикладного програміста в справі перекладу бази даних з MS Access на SQL-Server, MS Office, Програмні керівництва, статті

Доброго дня, шановні колеги. Хочу поділитися недавнім досвідом перекладу бази даних з формату Access 2000 на платформу MS SQL Server 7.0. Звичайно, моя стаття не відрізняється професіоналізмом і повнотою викладу. Мій практичний досвід роботи з SQL-Server до цього моменту дорівнював майже абсолютного нуля. Але як можна помітити, влітку статей настільки мало, що щиро хочеться підтримати наше Королівство. Отже, приступимо.
Незважаючи на використання ODBC DSN і рідних майкрософтовські драйверів виявилася деяка несумісність.
Використовувані драйвера:

Операційна система сервера додатків – Windows 2000.

Весь переклад проводився за допомогою майстра “DTS Import Wizard”, що входить до складу SQL-Server.





Переклад даних з датами 


При перекладі однієї з таблиць виявилися дві помилки:




Як виявилося, у таблиці була купа записів з роками на зразок 2089, 2095, 2099. Причина цього зрозуміла – використання маски при некоректній настройці формату дати в системі. Незрозуміло, чому ці дані не прийняв SQL-Server. Тим не менш, спасибі йому за це. Коригуванню були піддані понад 3000 записів (програма не супроводжувалася три роки). Щоб подібне не повторилося надалі, я поставив перевірку на значення дати перед операцією “Post”. Надалі переклад 24 таблиць пройшов швидко і без ускладнень. Обсяг бази даних в форматі Access на момент перекладу складав 7.8 Мб після операції “стиснення-відновлення”.





Особливість типів даних 


За умовчанням в процесі перекладу даних таблиці створювалися з полями формату nvarchar і ntext. Як виявилося, при використанні майкрософтовського ODBC-драйвера “SQL Server” ці формати не сприймаються через BDE. Довелося міняти формати на varchar і text. Varchar відповідає “текстового” формату Access, а text – “полю Memo”. Також було відмічено, що логічні поля, що придбали тепер тип “bit”, не допускають використання порожніх значень. Тому їм необхідно вказати значення за замовчуванням (0 або -1). Після перекладу всі таблиці вільно відкривалися і редагувалися через BDE. Як виявилося, індекси і реляційні зв’язки не були конвертовані. Не бажаючи випробовувати долю, я тут же привласнив всім таблицям первинні індекси.





Деякі особливості побудови SQL-запитів 


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


От і все! Витрачений на переклад час – 2,5 години з трьома перекурами і одним перервою на каву. Незважаючи на відсутність вторинних індексів, виконання запитів сповільнилося не більше, ніж у два рази, а повторне відкриття запиту – близько півтори. Просто так ліпити індекси мені не хочеться, тому поки залишу так, а як з’явиться час, скористаюся утилітою “Query analyzer”, який входить до складу SQL-Server. Як написано в розумній книжці, вона дозволяє відслідковувати етапи виконання запиту за часом, з чого можна зробити висновок про необхідність тих чи інших вторинних індексів. Найприємніше, що відразу кинулося в очі:
На завершення кілька порад з використання Access (досвід – чотири роки):
На цьому бажаю всім приємної роботи. І будь ласка, особливо не критикуйте статтю: по-перше, це моя перша стаття в Королівство, а по-друге, написана вона була виключно для того, щоб не бачити кожен день анотацію, що остання стаття була в королівстві два тижні тому 🙂

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


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

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

Ваш отзыв

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

*

*