
- •1.Стандартный внешний вид окна приложения Windows.
- •1. Рамка
- •3. Интерфейс Visual Studio. Ресурсы приложения.
- •4. Интерфейс Visual Studio. Окно вывода Output.
- •Окно редактирования текстов программ
- •5. Система меню. Меню File, Edit, View.
- •Advanced… вывод на экран еще одного меню.
- •6. Система меню. Меню Insert, Project.
- •7. Система меню. Меню Build, Tools. Меню Build
- •8. Мастер создания приложения. Шаг 1,2.
- •9. Мастер создания приложения. Шаг 3,4.
- •10. Мастер создания приложения. Шаг 5,6,7.
- •11. Диалоговые окна и элементы управления
- •12. Формирование нового ресурса диалогового окна.
- •13. Задание идентификаторов диалогового окна.
- •14. Организация вывода диалогового окна на экран.
- •15.Использование элемента управления типа список
- •Некоторые методы класса cListBox
- •16. Комбинированные списки (класс cCombobox).
- •17. Использование элементов типа переключатель Статические поля (класс static). Окна редактирования Edit Box. Методы класса cEdit.
- •19. Обработка сообщений. Карты сообщений.
- •Некоторые макросы карты сообщений
- •20.Реал-ция обр-ки сообщ-й с пом.ClassWizard. Виды сообщ-й.
- •Вкладки диалогового окна ClassWizard.
- •Какой класс должен перехватывать сообщение
- •Список сообщений
- •21. Команды. Реал-ция обр-ки команд с помощью ClassWizard
- •Обновление команд.
- •22. Архитектура «Документ/представление».
- •23. Вывод на экран. Контекст устройства. Классы контекстов устройства в mfc.
- •24.Классы изобразительных средств. Примеры рисования простейших фигур.
- •Рисование простейших фигур (пример)
- •Изменение размеров и положения окна
- •25. Использование перьев. Работа с кистью.
- •Работа с кистью
- •26. Концепция сохран.-восстановл. Объектов. Необходимые действия по сохр.-востан. Объектов класса cDocument. Разбор примера с сериализацией в классе документа.
- •Создание класса, обеспечивающего сериализацию данных
- •27. Создание класса, обеспечивающего сохран.-восстан. Объектов. Разбор примера с сериализацией cMessage. Создание класса, обеспечивающего сериализацию данных
- •28. Непосредственное чтение и запись файлов. Класс сFile. Методы сFile. Режимы доступа к файлу.
- •29. Использование на примере основных методов класса cFile (открыть, записать, считать из файла). Использование стандартн. Диалог. Панелей для открытия и записи в файл.
- •30.Панель инструментов и строка состояния. Создание панели инструментов. Добавление и удаление пиктограмм.
- •31.Разработка ф-ций обработки сообщений, связ-х с пиктограммой на панели инструм-в. Класс панели инстр-в.
- •32. Доступ к базам данных в vs. Классы odbc.
- •34. Регистрация бд. Создание заготовки приложения.
- •35.Создание экранной формы для отображ-я содерж-го бд.
- •36.Добавление и удаление записей.
- •37. Сортировка и фильтрация записей.
- •3)Атрибуты данных
- •4) Операции
- •43.Класс cRecordset. Компоненты данных и осн.Методы (открытие набора, получ-е атрибутов результ. Набора IsOpen, IsBof, IsEof, IsDeleted, обновл-е результ. Набора)
- •1)Компоненты данных
- •2)Конструирование
- •44.Класс cRecordset. Компоненты данных и осн.Методы (операции перемещения пo результир-му набору, операции IsFieldDirty, IsFieldNull, Requary, SetFieldDirty, SetFieldNull).
- •1)Компоненты данных
- •45. Класс cRecordset. Переопределяемые методы (DoFieldExchange, GetDefoltSql, GetDefoltConnect).
- •46.Класс cRecordView.
- •1)Создание объекта
- •2)Атрибуты данных
- •47. Основные технологии com. Автоматизация. Перманентность. Моникеры.
- •48. Единообразная передача данных и объекты с подключением.
- •49. Технология ado. Объектная модель, наборы ado.
- •50. Применение ado Data Control и DataGrid Control.
- •2.2. Методические указания
- •51. Удаление, добавление и редактирование записей в технологии ado
- •52.Настройка Эл-тов упр-ния ado Data Control и DataGrid Control из кода приложения
- •53. Возможности AppWizard по созданию приложений, поддерживающих технологию ActiveX.
- •54.Библиотеки динамической компоновки dll
- •55.Создание и использование 32-битовых динамически связываемых библиотек
- •56. Создание рабочего потока. Управление приоритетами потоков
- •57. Синхронизация потоков. Объекты синхронизации и классы mfc.
- •Объекты синхронизации и классы mfc.
- •58.Отладка программ в vs. Точка останова. Установка точек останова. Команды и окна отладки.
- •Терминология отладки
- •Команды и окна отладки
- •Команды меню
- •Установка точек останова
- •Другие окна для отладки
- •Окно Memory
- •Применение утилиты mfc Tracer
- •59. Отладка программ в vs. Анализ значений переменных. Окно CallStact.
2)Конструирование
В эту категорию входят всего три ф-ции: констр-р, Open и Close, отвечающие за создание объекта, открытие и закрытие соед-я с источником данных.
CRecordset::CRecordset(CDatabase* pDatabase = NULL)
Служит для создания и инициализации объекта класса CRecordset. В кач-ве парам-ра в констр-р м.передать либо ук-ль на открытую БД (параметр pDatabase), либо NULL.
virtual BOOL CRecordset::Open (
UINT nOpenType=AFX_DB_USE_DEFAULT_TYPE,
LPCTSTR lpszSQL = NULL,
DWORD dwOptions = none)
При успешном выполнении функции возвращается ненулевое значение и 0 противном случае. Если получ-й результир-й набор не пустой, то текущей явл-ся первая запись.
Парам-р nOpenType определяет тип доступа к источнику данных и может принимать следующие значения:
CRecordset::dynaset – результир-й набор с возможн-ю двунаправл-го просм-ра (измен-я, вносимые в БД другими польз-ми, отображ-ся сразу же).
CRecordset::snapshot – статич. результир-й набор с возм-ю двунапр-го просмотра (изменения отображ-ся не сразу, а только после закрытия и повторного открытия peзультир-го набора).
CRecordset::dynamic – результир-й набор с возм-ю двунапр-го просмотра (изменения отобр-ся при выполн-и след-й операции).
CRecordset::forwardOnly – результир-й набор "только для чтения" с возможностью просмотра "только вперед".
Парам-р lpszSQL — ук-ль на строку, содерж-ю одно из значений: NULL, имя табл, оператор SQL, или оператор CALL(запрос). Параметр dwOptions – определяет комбинацию значений:
CRecordset::none – опции не установлены.
CRecordset::appendOnly – нельзя редактировать и удалять записи результирующего набора, можно только добавлять.
CRecordset::readOnly – результир-й набор открывается в режиме "только для чтения".
CRecordset::skipDeletedRecords – пропускает все удаленные записи при перемещении по результирующему набору. Функцию CRecordset::Open следует вызывать для выполнения запроса, определяющего результирующий набор. Очевидно, что перед ее вызовом объект класса СRесоrdsеt должен быть создан. Более того, соединение с источником данных зависит от того, как именно он создан.
Если в кач-ве парам-ра был исп-н указ-ль на объект CDatabase, кот-й еще не соединен с источником данных, то ф-ция Open исп-т метод GetDefaultConnect для открытия объекта БД. Если в кач-ве парам-ра использ-ся NULL, то автоматич-ки создается объект класса CDatabase и осущ-ся попытка соединения с БД.
При вызове ф-ции Open выполн-ся запрос, обычно оператор SELECT, в рез-те чего выбир-ся записи на основе критериев.
virtual void CRecordset::Close() -- используется для закрыия результирующего набора.
Атрибуты результирующего набора:
BOOL CRecordset::CanAppend() -- позволяет определить, можно ли добавлять записи в результирующий набор. Да — если она возвращает ненулевое значение и нет — если 0.
BOOL CRecordset::CanBookmark() -- вызов этой ф-ции позволяет определить, можно ли отмечать записи в результирующем наборе с помощью закладок. Да — если она возвращает ненулевое значение, и нет— если 0.
BOOL CRecordset::CanRestart() – позв-т опред-ть, можно ли обновлять данные в результир-м наборе, исп-я для этого функцию Requery. Да— если она возвращает ненулевое значение, и нет — если 0.
BOOL CRecordset::CanUpdate() -- позволяет определить, можно ли обновлять записи в результирующем наборе. Да - если она возвращает ненулевое значение, и нет — если 0.
long CRecordset::GetRecordCount() -- позволяет определить размер результирующего набора. Она возвращает или число записей в результирующем наборе, или 0-если он не содержит записей, или -1,если число записей не может быть определено.
BOOL CRecordset::IsOpen ()
Позволяет определить, открыт ли уже результирующий набор. BOOL CRecordset::IsBOF ()
Позволяет определить, является ли текущая запись первой в наборе данных. Она возвращает ненулевое значение, если результирующий набор не содержит записей или указатель помещен до первой записи, и 0 — в противном случае.
BOOL CRecordset::IsEOF ( )
Позволяет определить, является ли текущая запись последней в наборе данных. Возвращает ненулевое значение, если результирующий набор не содержит записей или указатель помещен за последней записью, и 0 — в противном случае. BOOL CRecordset::IsDeleted ( )
Позв-т определить, была ли текущая запись удалена. Если при перемещении на запись и вызове этой ф-ции она возвращает ненулевое значение, необх-мо перейти к другой записи до того, как производить какие-либо операции над результир-м набором.
Операции обновления результирующего набора
В эту категорию входят ф-ции, которые позволяют добавлять, удалять и редактировать записи в результирующем наборе.
virtual void CRecordset::AddNew ( )
Используется для подготовки новой записи к добавлению в результирующий набор. Все поля записи исходно устанавливаются в Null (в терминологии БД это означает " значение не задано"). Чтобы сохранить внесенные в эту пустую запись изменения в источнике данных, необходимо вызвать функцию Update.
virtual void CRecordset::Delete()
Удаляет текущую запись. После успешного удаления необходимо вызвать одну из функций перемещения по записям, чтобы корректно завершить операцию.
virtual void CRecoidset::Edit( )
Позволяет изменять поля текущей записи. Для корректного заверш-я операции обновления записи и сохранения изменений в источнике данных необходимо вызвать функцию Update.
virrual BOOL CRecordset::Update( )
Вызов этой функции является обязательным для корректного завершения операции добавления и обновления записей в результирующий набор и возвращает ненулевое значение, если запись была успешно обновлена, и 0 — в противном случае. Вызов функции Update сохраняет данные в источнике данных.