|
|
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Слегка подзадолбала (очень сильно мягко сказано) такая фигня: делается пустяковое приложение на Delphi, которое подключается к так называемой базе данных MS Access. Очень часто бывает, что приложение работает. Но стоит лишь просто сменить версию Винды, поставить другой офис или еще какую-нибудь фигню сделать, то приложение перестает работать, а показывает кучу ошибок. Значит, приложение не изменилось, но изменилась обстановка вокруг приложения и оно рухнуло. И эта мелкомягкая фигня сильно бесит! Когда-то еще давно было даже вот так: на XP все отлично работает! Поставил Семерку и АТАС!!! ВСЕ!!! Не работает ничего! Это меня сильно раздражает и я решил, что sqlite тоже неплохая встраиваемая СУБД. Вот все отлично и начало работать при любой винде и при любой власти! А Аксес... горел бы он гаром и шел бы лесом... Но не горит и не идет, так как товарищу понадобился именно аксес... И это спустя столько лет! Ну так вот, стояла 10 винда и Delphi XE. С ходу простейшая прожка создала mdb файлик, нашпиговала в него записей, сделала выборки, показала их... Вроде все работает бесшовно! Тут... случилось... немного полетела винда. Совсем малость полетела... Конечно, она полетела не сама... Мне иногда всякое приходится делать, вот она и не сдюжила... Бывает... Поставил 10-ку заново... Это заняло всего 7 минут, так как ssd винт. Винда стала на девственно чистый винт, от прежней десятки ничего не осталось. Вот все супер, только прожка-то моя перестала теперь работать. ХЗ, какие "ДЖЭТы" стояли ранее и что теперь встало... Запускаем прогу, а она тут же и ошибку... Дескать не могу... невозможно... И все ругает мелкомягкие виндовые прослойки для доступа к СУБД. Ругает ODBC, Jet и так далее... В общем, мне все это надоело, поэтому вопрос: можно ли как-то сделать, чтобы дельфовые ADO или какой иной геморой не лезли бы за дровами в недра системы, а брали бы их тут же - из папки приложения? Может туда надо каких dll накидать, чтоб при любом раскладе все работало? Как выкорчевать мелкомягкие дрова и подсунуть их в папку с прогой? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2017, 13:07:18 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
Galadriel75, Нет. И с msjet давно надо слезать - оно с форматом mdb кажется, совсем уже не поддерживается в новых ОС при 64-бит, accdb еще как-то. Вроде бы есть Access Redistributable, но.... https://www.microsoft.com/en-us/download/details.aspx?id=13255 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2017, 13:22:13 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
SiemarglGaladriel75, Нет. И с msjet давно надо слезать - оно с форматом mdb кажется, совсем уже не поддерживается в новых ОС при 64-бит, accdb еще как-то. Вроде бы есть Access Redistributable, но.... https://www.microsoft.com/en-us/download/details.aspx?id=13255 Ок, спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2017, 13:30:04 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
плюс возможно надо будет подправить ConnectionString, но это понятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2017, 14:00:40 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
Galadriel75, KADAO от Кирилла Антонова ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2017, 17:18:18 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
MaratIskGaladriel75, KADAO Как вариант, го... чем он лучше того же ADO? Это тоже надстройка на виндовыми либами, как я читал про него... Вот мне бы такую же ботву, как, например, sqlit3.dll для SQLITE! Коль MDB или ACCDB - обычные файлы и не более, то зачем столько гемороя и громоздких либ и драйверов для пустяковых задач. Одной бы dll хватило выше крыши! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2017, 17:22:48 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
Galadriel75 Одной бы dll хватило выше крыши! А каковы критерии выбора СУБД? Firebird не устроит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2017, 18:17:18 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
Galadriel75, ничего не сделаешь, имхо. Это ж акцесс. Лучше выбери экспорт в формате, который все понимают - csv, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2017, 18:28:36 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
ДокGaladriel75 Одной бы dll хватило выше крыши! А каковы критерии выбора СУБД? Firebird не устроит? Заказчик просит аксесс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2017, 19:28:26 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
Galadriel75Докпропущено... А каковы критерии выбора СУБД? Firebird не устроит? Заказчик просит аксесс. Ну так и ты не стесняйся, требуй налия акцесса на компе и юзай его как СОМ север. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2017, 23:11:48 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
чччДGaladriel75пропущено... Заказчик просит аксесс. Ну так и ты не стесняйся, требуй налия акцесса на компе и юзай его как СОМ север. А заказчик потом будет размножать прогу и требовать от пользователей наличие аксеса на их компах? Это плохая идея. Я пока что сделал все на sqlite3. Отлично все работает. А если заказчик все же будет настаивать на аксесе, тогда запасной вариант у меня есть - прикручу все на ADO, но... Оно ж может где-то и не заработать! Почему люди не понимают, что mdb и accdb нужны для того, чтобы в самом MS Access и использовать! А как встраиваемая БД он никак не годится! А sqlite великолепно подходит! Тем более - эту базу можно прикрутить к чему угодно при минимуме усилий и навыков. Я все это прикручивал на Windows CE, Andoid, обычную винду и так далее и везде все в момент запускалось с ходу и начинало все работать! А mdb??? Когда-то отлично работавшая моя прога внезапно работать перестала! Винда сменилась! Тогда я решил mdb закинуть в другую базу и для этого взял платный продвинутый конвертер. Но платный крутой конвертер выдал точно такую же ошибку, что и моя прога и не заработал! Хотя на старой винде тоже работал! Так что, когда мелкомягкие рисуют кучи библиотек и технологий, потом все это патчат и переделывают, это плохо! Не все в курсе, что иногда может быть ошибка у разработчика продукта, а не у девелопера, который сий продукт юзает у себя! Так и мозг можно сломать - биться в поисках решения, а оно окажется всего-то лишь в том, что надо байду какую-нибудь пропатчить и жизнь наладится! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2017, 23:43:33 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
Galadriel75, возможно, заказчик желает использовать акцесс для просмотра данных. Что тут сделаешь. Я экспортирую в акцесс, используя джет4, но пока не нарывался на проблемы. И виндовз в т.ч. самые новые используются. А что за ошибки выводятся? И что за код ты используешь для создания мдб файла? Расскажи - может, вопрос и решим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2017, 01:01:48 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
чччДGaladriel75, возможно, заказчик желает использовать акцесс для просмотра данных. Что тут сделаешь. Я экспортирую в акцесс, используя джет4, но пока не нарывался на проблемы. И виндовз в т.ч. самые новые используются. А что за ошибки выводятся? И что за код ты используешь для создания мдб файла? Расскажи - может, вопрос и решим. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Я использую не ADO, а UniQuery! И вот именно этот кусочек кода на одной из Windows 10 отлично создавал базу данных! С ходу и не выдавал ни единой ошибки! А на другой Windows 10 сказал, что не может создать источник данных ODBC! То есть: "Can't create alias". Так и сказал! В обоих случаях прога стартовала под админской учеткой. В обоих случаях в системе стоял один и тот же офис! Единственное отличие - винда ставилась из разных дистрибутивов! Так вот,прога запустилась на упрощенном дистрибутиве, а на "правильном" дистрибутиве ни в какую! А ADO раньше тоже использорвал. Все шикарно работало, потом с Хрюшки переполз на Семеру и вот атас и случился! Так это еще тогда было на ADO... И при этом тогда же перестали и конвертеры Баз данных работать. С другой стороны... я то и сам систему вымучиваю так, что может все, что угодно случиться! Хотя... Все перестало работать как раз на свежей и не замученной системе! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2017, 22:44:37 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
Galadriel75чччДGaladriel75, возможно, заказчик желает использовать акцесс для просмотра данных. Что тут сделаешь. Я экспортирую в акцесс, используя джет4, но пока не нарывался на проблемы. И виндовз в т.ч. самые новые используются. А что за ошибки выводятся? И что за код ты используешь для создания мдб файла? Расскажи - может, вопрос и решим. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Я использую не ADO, а UniQuery! И вот именно этот кусочек кода на одной из Windows 10 отлично создавал базу данных! С ходу и не выдавал ни единой ошибки! А на другой Windows 10 сказал, что не может создать источник данных ODBC! То есть: "Can't create alias". Так и сказал! В обоих случаях прога стартовала под админской учеткой. В обоих случаях в системе стоял один и тот же офис! Единственное отличие - винда ставилась из разных дистрибутивов! Так вот,прога запустилась на упрощенном дистрибутиве, а на "правильном" дистрибутиве ни в какую! А ADO раньше тоже использорвал. Все шикарно работало, потом с Хрюшки переполз на Семеру и вот атас и случился! Так это еще тогда было на ADO... И при этом тогда же перестали и конвертеры Баз данных работать. С другой стороны... я то и сам систему вымучиваю так, что может все, что угодно случиться! Хотя... Все перестало работать как раз на свежей и не замученной системе! В коде есть немного лажи! fFirstRun := DB_UNKNOWN_STATE; - нафик не нужен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2017, 22:49:13 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
[quot Galadriel75]Galadriel75пропущено... Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Я использую не ADO, а UniQuery! И вот именно этот кусочек кода на одной из Windows 10 отлично создавал базу данных! С ходу и не выдавал ни единой ошибки! А на другой Windows 10 сказал, что не может создать источник данных ODBC! То есть: "Can't create alias". Так и сказал! В обоих случаях прога стартовала под админской учеткой. В обоих случаях в системе стоял один и тот же офис! Единственное отличие - винда ставилась из разных дистрибутивов! Так вот,прога запустилась на упрощенном дистрибутиве, а на "правильном" дистрибутиве ни в какую! А ADO раньше тоже использорвал. Все шикарно работало, потом с Хрюшки переполз на Семеру и вот атас и случился! Так это еще тогда было на ADO... И при этом тогда же перестали и конвертеры Баз данных работать. С другой стороны... я то и сам систему вымучиваю так, что может все, что угодно случиться! Хотя... Все перестало работать как раз на свежей и не замученной системе! В коде есть немного лажи! fFirstRun := DB_UNKNOWN_STATE; - нафик не нужен! Result := createData; fFirstRun := DB_CREATED; - лажа! А если ошибка, result будет false, а fFirstResult будет типа DB_CREATED. Это я в спешке делал и ночью, вот и накосячил безбашенно! Но не это влияет на создание самой базы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2017, 22:52:52 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
Galadriel75, ой, я даже не знаю, что такое UniQuery. :( Я создаю .mdb вот таким кодом, как здесь: 19170656 (см. функцию CreateMSAccessFile()). Попробуй постучать в этот бубен - может, получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2017, 22:54:01 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
Galadriel75, он просто лучше ))) потому что работает напрямую с движком Jet, который, если не изменяет память, есть во всех версиях винды без наличия офиса без всяких ado и иже с ним прокладок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2017, 08:30:18 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
чччДGaladriel75, ой, я даже не знаю, что такое UniQuery. :( Я создаю .mdb вот таким кодом, как здесь: 19170656 (см. функцию CreateMSAccessFile()). Попробуй постучать в этот бубен - может, получится. Ну попробую! Спасибо огромное! А UniQuery - компоненты для прямого доступа ко многим СУБД! Так говорят сами создатели этих компонентов. А на самом деле - без прослоек эти компоненты до баз не могут достучаться! Да и баги встречались и встречаются. Нарвался на один из багов, не помню какой уже, но исправлен он был в новом релизе компонента и этот новый релиз уже не подходил для той версии Embarcadero, которая стояла у меня. А ставить новую версию, крякать ее ой как не хотелось... Не помню уже как, но баг тот как-то обошел... Нет идеального кода, что-нибудь да всплывет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2017, 17:55:03 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
Куда делись мои сообщения??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2017, 12:07:15 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
MaratIskКуда делись мои сообщения??? Я не знаю, я ничего не удалял, да и скорее всего и не могу удалять... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2017, 12:47:45 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
2 Galadriel75 честно говоря не разделяю вашего гнева. я не идеализирую access. по мне так много странного там. в частности куда как больше бесит подчас существенная разница в конструкциях sql запросов в mssql и access. одна ж контора. уж можно было сделать однообразно. однако не могу сказать, что сталкивался с кучей косяков в разных ОС, при разных офисах и т.п. вполне всё недурно работает. а разных проги с БД на access я делал не мало. и крутились и крутятся они весьма разнообразно где. отмечу, что цепляюсь через стандартный ADO. и юзаю лишь как БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2017, 00:39:26 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
Достаточно стандартная проблема. Решается IMHO разными методами: 1) организационными Точно в документации описываете окружение которое должно быть. Версия Windows, офиса, какие галочки надо ставить при установке.... если окружение другое - то не еб.... unsupported configuration 2) аккуратный и правильный код Сами внимательно читаете документацию по функция Windows API и пищите 100% документированный код AFAIK у M$ продуктов достаточно хорошая совместимость между версиями, и раньше (до 2005-2010 года) была достаточно хорошая и понятная документация (MSDN). Только, работать нужно в строгом соответствие с документацией.... а не методом, взяли какую-то библиотеку, за 5 минут слепили пример hello world, в одном окружение работает, в другом нет... Windows виноват Когда занимался программированием под Win API (лет 10 назад), 95% проблем совместимости были исключительно мои косяки. Тут не прочитал, тут упростил обработку ошибок и так далее. 3) тестирование Тестировать в разных средах. В Internet'е с совместимостью между браузерами еще все хуже и ничего, живут же люди ))), сайты разрабатывают p.s. В современном MSDN IMHO черт ногу сломит. Интерфейс и разбивка на разделы - совершенно перестала быть интуитивно понятной. По сравнению с бывшим лет 15 назад TechNet - полный ужас. На мой вкус. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2017, 12:42:15 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
dalx... однако не могу сказать, что сталкивался с кучей косяков в разных ОС, при разных офисах и т.п. вполне всё недурно работает. а разных проги с БД на access я делал не мало. и крутились и крутятся они весьма разнообразно где. отмечу, что цепляюсь через стандартный ADO. и юзаю лишь как БД. So do I Когда занимался похожими вещами для Www.kamis.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2017, 12:43:11 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
то у заказчика крутились версии от первых Windows 95 до Windows Server 2003 много разных "косяков" вылезало, но большинство описано в документации Банальная задача: Запуск внешнего приложения или команды ОС. Много ли из тех, кто это делает, помнят о переменной окружения COMSPEC ? А это __стандартная__ вещь начиная еще с MS DOS 3.1 В результате: тут работает, тут не работает. А виноват Windows ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2017, 12:49:30 |
|
||
|
Доступ к mdb через Jet
|
|||
|---|---|---|---|
|
#18+
2 Leonid Kudryavtsev мои извинения. уж 95-ю я ни как не рассматриваю как ось применения. равно как и 98. а jet есть в комплекте начиная с 98SE, насколько я помню. потому в требованиях к ПО - обычно так и пишу :) . да и что бы работать удобно с бникодом надо хотя бы 2К. потому чаще - начиная с 2К :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2017, 16:43:09 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39450486&tid=2042259]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
210ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 501ms |

| 0 / 0 |
