Форум программистов CodeGuru
16 Январь 2018, 23:02:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: ADO в Visual C++ .NET 2003  (Прочитано 16348 раз)
0 Пользователей и 1 Гость смотрят эту тему.
DronbI4
Интересующийся
**
Офлайн Офлайн

Сообщений: 10


Просмотр профиля
« : 25 Апрель 2006, 08:19:14 »

Пытаюсь использовать компонент ADO Data Control 6.0 (SP4)
Но почему то отличая от ADO Data Control очень сильные. Допустим нет SetConnectionString, но есть put_ConnectionString. Незнаю равнозначны ли они. Да и еще много чего разного. Поэтому допустим сделать вот эту прогу http://www.firststeps.ru/mfc/steps/r.php?366 неполучается. Где вообще можно посмотреть различия, и что во что перешло.
Кстати почему то в Visual C++ 6 добавлялось довольно много классов. А вот когда классы их этого компонента в .NET вставляешь, получается всего 2 класса.
Может где нибудь есть примеры и нормально об ADO рассказано для VIsual C++ .NET 2003???
Записан
DronbI4
Интересующийся
**
Офлайн Офлайн

Сообщений: 10


Просмотр профиля
« Ответ #1 : 28 Апрель 2006, 09:49:29 »

Так ладно. Тогда попробую конкретный вопрос.
После подключения базы данных через ADO Data Control к ADO Data Grid  - невозможно работать с получившейся таблицей. После нажатия кнопока вврех, вниз, вправ, влево - запись с которой мы уходим, произвольным образом стирается или заменяется какой то другой записью. Так же невозможно добавить какой то элемент, т.к. после введения в таблицу значения и нажатия Enter ничего не сохраняется в таблице...
Пробовал в Builder C++ - там все отлично работает. Но не хочется работать с билдером...
Записан
3V
Администратор
Ветеран
*****
Офлайн Офлайн

Сообщений: 1347



Просмотр профиля WWW
« Ответ #2 : 29 Апрель 2006, 10:14:39 »

Насчет первого поста.
VC6 генерил много классов из OCX потому,что там кросс-ссылка на библиотеку типов msado25.tlb. У меня она лежит здесь:
C:\Program Files\Common Files\System\ADO\msado25.tlb
Надо при создании класса выбрать From Type Library, потом в самом диалоге создания класса выбрать радиокнопку File и указать этот tlb файл.
Там как раз много классов тогда генерироваться и будет.

Только классы так и будут генериться с put_ConnectionString вместо SetConnectionString.
put/get методы - это просто методы для работы со свойствами ActiveX-компонента.

Вообще, сгенерированные классы - это C++ обертка вокруг disp-интерфейсов (те, которые от IDispatch). И идеологически более правильно генерировать такие файлики с помощью директивы #import.
Например, в stdafx.h можно прописать:
#import "C:\Program Files\Common Files\System\ADO\msado25.tlb"
И будет сгенерировано пространство имен, в котором - классы-обертки, и.т.д.

З.Ы. насчет второго вопроса - надо посмотреть... напишу попозже что получилось.
Записан

DronbI4
Интересующийся
**
Офлайн Офлайн

Сообщений: 10


Просмотр профиля
« Ответ #3 : 29 Апрель 2006, 13:32:17 »

Вот... Спасибо большое...
Я просто пытался всегда выбирая файл подключать не tlb, а MSADODC.ocx...
А вот с более сложными способами мне сложно разобраться... Я еще новичек в этом деле...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!