| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > проблема с БД |
| Автор: Vinnety 22.11.2003, 18:07 |
| Написал програмку, которая работает со свой базой данных (тип Paradox). Скажите, как перенести этку програму на другой компьютер на котором не установлен Delphi ? Т.е. как сделать эту програмку "легко переносимой"? Или возможно нужно изменить тип базы данных ? |
| Автор: Pakshin A. S. 22.11.2003, 19:05 | ||
| Всё очень просто: используй компонента вкладки ADO (на всех современных компьтерах поддержка ADO есть!). ADOConnection - соединение с базой данных; ADOQuery - обычный Query; ADOTable - обычный Tabe и т. п. План работы: Помести ADOConnection на форму, заполни ConnectionString, нажав на кнопочку. Помести DataShource и DBGrid, настрой их... Помести ADOQuery, к примеру, свойство Connection должно равняться ADOConnection1, DataSource - DataSource1. работай с ADOQuery, как с обычным. Для большей универсальности помести следующее:
Пример приведён для Access, то же самое будет и для Paradox, только с некоторыми изменениями (додумай сам). Если без ADO! Носи с собой BDEAdministrator и заполняй Alias, что тяжелее... |
| Автор: Vit 23.11.2003, 00:14 | ||||||
А при чём тут BDEAdministrator и заполнение Alias? Просто надо установить BDE (можно без BDEAdministratora), да Alias'ы можно вообще не использовать или устанавливать их правильно в самой программе.
При чём тут современные компьютеры? ADO, а точнее MDAC поставляется только с операционными системами: Win98 (в некоторых конфигурациях), WinME, 2000, XP. На более чем современных компьютерах с другими операционными системами ADO в стандартную поставку не входит.
Прежде чем рекомендовать, лучше бы сам попробовал! Я ведь наверняка могу сказать, что сам то ты не пробовал работать с Парадоксом через ADO, иначе бы не рекомендовал, так как реальный практический опыт работы говорит о том что простым "подумать" дело не обойдётся, это ж ведь для MS Access ADO доступ как родной, а для парадокса ADO реально использует полунедоделанный ODBC драйвер выпуска аж 1994 года! И проблем здесь будет намного больше чем простое переделывание Table->ADOTable. Собственно вот далеко неполный список проблем: 1) ADO, ODBC и DAO поддерживают только совместимость с Paradox до 5й версии включительно, для более поздних версий Paradox совместивость ограниченная, поэтому возможны самые разные варианты, от неправильной работы каких-либо типов полей, до частого corruption table и неиспользования каких-либо индексов при выполнении запросов. 2) Скорость работы ADO, ODBC и DAO с Парадокс примерно на 2 порядка ниже чем скорость работы через BDE 3) Используя ADO, ODBC или DAO невозможны многие низкоуровневые операции с таблицами, например такие как Repair 4) ADO не входит в поставку Windows 95/NT4 и некоторые версии Win98 и его всё равно прийдётся поставлять с программой, иначе она не будет работать на указанных операционках. Правильное решение: Поставлять BDE вместе с программой. Все основные программы, которые делают инсталляционные пакеты умеют работать с BDE, например в InstallShield при изготовлении инсталляционного пакета достаточно лишь поставить галочку напротив BDE и она будет установлена автоматически при установке Вашей программы. |
| Автор: Pakshin A. S. 23.11.2003, 21:01 |
| Приношу свои извинения за неопытность... |
| Автор: Vit 24.11.2003, 00:19 | ||
Ничего страшного, я сам неделю потратил пытаясь с Парадоксом через ADO работать, и плюнул, потому что фигня получилась. Потом уже проверял производительность парадокса для разных типов доступа к данным, например скорость вставки новой записи в таблицу: BDE - 2000 записей в секунду DAO - 500 записей в секунду ADO/ODBC - 30 записей в секунду Результаты меня впечатлили и я решил, что с парадоксом работать надо только через BDE... |
| Автор: Pakshin A. S. 24.11.2003, 19:26 |
| Встречный вопрос: А как обойтись без Алиаса? |
| Автор: Vit 24.11.2003, 21:10 |
| 1) В поле имени базы данных можно указать путь к папке с файлами 2) Можно создать временный (на время работы базы данных) и постоянный Alias в самой программе, см. методы встроенного объекта session |
| Автор: Pakshin A. S. 25.11.2003, 13:12 |
| Ok, гляну... А то на компе, куда должен отнести базу данных, может не быть ADO и BDEAdministrator... |
| Автор: Akella 26.11.2003, 09:43 | ||
| Я с Vit`om полностью согласен с BDE без алиасов DM - DataModule В процедуру передается путь к исполняемому файлу програмыы (это у меня так), можно установить любой путь - это путь к твоейс БД путь к своей проге можно узнать двумя способами: 1. P:=ExtractFileDir(Application.ExeName) 2. P:=EctractFilePath(ParamStr(0))
|