Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Переход с VBA на VC  (Прочитано 13999 раз)
0 Пользователей и 1 Гость смотрят эту тему.
little
Помогающий

de
Offline Offline
Пол: Мужской

« : 03-12-2003 14:51 » 

Есть у меня база на Access 2000 и клиент к ней на том же Access-е. Заеколебал он меня конкретно уже. То нельзя, се нельзя. Буть любезен, поставь офис на клиентскую машину, да еще и с соотвествующей версией библиотек... и т.д. и т.п.

Вопрос такой: насколько геморойно мне будет перевести это дено на VC ?
Какие классы использовать для работы с данными и их отображением? Сами данные останутся в mdb-шнике, клентом планирую пользовать ADO для общения с базой.

Что посоветуете? И стоит ли это делать вообще? В общем сможет ли VC-шный клиент полноценно заменить Access-овский?
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #1 : 03-12-2003 15:15 » 

little, насчет VC незнаю я в Борланде с АДОй ковырялся. Очень всё замечательно получается и нечего не просил. АДЕ вообще пофигу где твоя база и начем.
Записан

Странно всё это....
Diletant
Помогающий

de
Offline Offline

« Ответ #2 : 03-12-2003 16:15 » 

Класс называется CRecordset и замечательно работает  c Access как  через ODBC, так и через ADO. Только ODBC или ADO на клиентской машине все-таки установить придется.
Записан
Alf
Гость
« Ответ #3 : 03-12-2003 23:36 » 

Цитата: little
Вопрос такой: насколько геморойно мне будет перевести это дено на VC ?

Думаю, что изрядно.
Если речь идет о VC++ 6.0, то лично я бы для этой цели предпочел Visual Basic. Намного проще будет построить клиентский интерфейс, гораздо легче работать с ActiveX объектами (если планируется использование ADO). А если к тому же в клиенте использовались фрагменты на VBA, то они перенесутся практически без изменений.
Хотя, конечно, и на VC++ 6.0 все проблемы решаемы.
Если речь о платформе .NET, то там различия между языками вообще стали условными (если, конечно, не продолжать использовать MFC, но тогда никакого смысла нет переходить на .NET). Тут уж выбор языка не имеет значения.
Цитата: little
Какие классы использовать для работы с данными и их отображением? Сами данные останутся в mdb-шнике, клентом планирую пользовать ADO для общения с базой.

Выбор есть как минимум из 3-х вариантов.

Можно реализовать работу с данными через ODBC. Интерфейс хоть и устаревший, но хорошо известный и отлаженный. Да и поддержка в MFC имеется (см. выше).

Можно поработать через DAO, тем более что это "родная" объектная модель для ядра Jet, на котором построен Access.
Достоинства: если в клиенте использовались макросы и модули Access, наверняка они работали через DAO, поэтому перенос приложения будет легче.
Недостатки: проблемы с переносом на другие платформы.

Наконец, вариант, который предпочитаю лично я: ADO.
Достоинства: относительно современная технология доступа к данным (правда, сейчас ее теснит ADO.NET, которая не очень-то совестима с ADO). Простая и удобная в использовании объектная модель.
Недостатки: в случае использования на компьютерах с ОС младше Win2K придется инсталлировать MDAC, что увеличит дистрибутив программы примерно на 11 Мбайт.

Можно, конечно, поработать и с OLE DB напрямую, но это только на большого любителя или же если накладные расходы ADO оказываются слишком велики для данной задачи (в чем я сомневаюсь).
Цитата: little
Что посоветуете? И стоит ли это делать вообще? В общем сможет ли VC-шный клиент полноценно заменить Access-овский?

Конечно, сможет. Только в данной задаче на VB получится попроще.
Записан
Alf
Гость
« Ответ #4 : 04-12-2003 00:06 » 

Цитата: Diletant
Класс называется CRecordset и замечательно работает  c Access как  через ODBC, так и через ADO.

Можно с этого места поподробнее? О каком именно классе идет речь?
Если о том, который находится в MFC, то он работает исключительно с ODBC. Для работы с ADO необходимо использовать соответствующие ActiveX компоненты. Один из них - Recordset - имеет весьма мало общего с CRecordset из MFC.
Или же я неправильно понял, и речь идет о совершенно другом классе CRecordset, из другой библиотеки?
Цитата: Diletant
Только ODBC или ADO на клиентской машине все-таки установить придется.

О какой платформе идет речь? Если о Windows, то я не припомню версии, которая поставлялась бы без встроенной поддержки ODBC. Кажется, даже c Windows95 поставлялась ODBC с базовым набором драйверов, в том числе и для MS Jet. Или я неправ?
Что касается ADO, тут ситуация немного хуже. Для систем младше MS Win2K придется установить MDAC. Если вы не любители систем ретро, то проблема не актуальна.
Записан
little
Помогающий

de
Offline Offline
Пол: Мужской

« Ответ #5 : 04-12-2003 07:25 » 

Я понял, что общение с базой особых проблем не несет, но остался вопрос отображения. Чем заменить Access-овские формы и отчеты?
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #6 : 04-12-2003 07:30 » 

little, самому на воять. для ентих целей есть всякие компоненты. При этом можно легко добится боьшей функциональности.
Записан

Странно всё это....
NetRaider
Гость
« Ответ #7 : 04-12-2003 08:46 » 

Цитата

Можно, конечно, поработать и с OLE DB напрямую, но это только на большого любителя или же если накладные расходы ADO оказываются слишком велики для данной задачи (в чем я сомневаюсь).

 
Для облегчения есть ATL OLEDB Templates.
Записан
Alf
Гость
« Ответ #8 : 04-12-2003 09:43 » 

Цитата: NetRaider
Для облегчения есть ATL OLEDB Templates.

Есть, но настолько ли с ними легко - вопрос спорный. Не в последнюю очередь именно из-за этой "легкости" и реализовали ADO в качестве обертки вокруг OLE DB.
Записан
little
Помогающий

de
Offline Offline
Пол: Мужской

« Ответ #9 : 04-12-2003 12:17 » 

Цитата: LogRus
little, самому на воять. для ентих целей есть всякие компоненты. При этом можно легко добится боьшей функциональности.

Дык, я и спрашиваю - какие именно? Что использовать вместо того, что имеется?
Записан
Kuzmich
Гость
« Ответ #10 : 05-12-2003 04:37 » 

Цитата: LogRus
АДЕ вообще пофигу где твоя база и начем.
Впрочем как и ODBC.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #11 : 05-12-2003 12:02 » 

little,  Посмотри на "Первых шагах", помнится как-то там была статейка как сделать БД в VC++ за несколько шагов a la VB.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
little
Помогающий

de
Offline Offline
Пол: Мужской

« Ответ #12 : 06-12-2003 06:42 » 

А что за "первые шаги"? Где их искать?
Записан
Kuzmich
Гость
« Ответ #13 : 08-12-2003 05:08 » 

www.firststeps.ru
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines