Визуальные средства разработки программных приложений
Краткое изложение материала по визуальным средствам разработки программных приложений. Рассмотрение диалоговых окон, элементов управления, переключателей, доступа к данным, обработки, анализа, технологий, библиотек, экспорта, приложений, потоков.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | шпаргалка |
Язык | русский |
Дата добавления | 26.06.2014 |
Размер файла | 285,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
· Создание объекта. Имеется только конструктор для создания объекта.
· Атрибуты данных. Три функции, используемые для получения информации результирующем наборе, к которому присоединена форма.
· Операции, Единственная функция, позволяющая программисту изменить указатель на текущую запись.
Ниже приведено описание каждой из этих категорий.
28.Анализ текстов, созданных АррWizard для класса, производного от CRecordSet. (Функции DoFieldExchange(), GetDefaultConnect(), GetDefaultSQL() и др.)
Переопределяемые методы
В эту категорию входят восемь функций, которые можно переопределить в каждом конкретном приложении, чтобы настроить его на выполнение текущих задач. Мы рассмотрим только некоторые из них.
virtual void CRecordset:: DoFieldExchange (CFieldExchange* pFX)
Вызывается для организации обмена данными между полями результирующего набора и соответствующими столбцами текущей записи в источнике данных.
В качестве параметра функция принимает указатель на объект CFieldExchange, который авт-ески создается и передается библиотекой MFC.
Примечание Эти функции доступны только в том случае, если для результирующего набора используется класс, производный от CRecordset. Если же применяется непосредственно класс CRecordset, то для получения данных необходимо вызывать функцию GetFieldValue.
Собственно обмен данными осуществляется с помощью механизма RFX (Record Field Exchange, Обмен полями записи), который работает в обоих направления от полей данных результирующего набора к записям источника данных и наоборот. Ниже приведен фрагмент, демонстрирующий переопределение функции DoFieIdExchange.
void CDBSet::DoFildExchange(CFieldExchange* pFX)
{ //{{AFX__FIELD__MAP(CDBSet)
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Text(pFX, _T("(ProductName]"), m_ProductName);
RFX_Long (pFX, _T (" [CategoryID] "),, m__CategoryID) ;
RFX_Text(pFX, _T("[QuantityPerUnit]''), m__QuantityPerUnit);
RFX_Text(pFX, _T("[UnitPrice]"), m_UnitPrice);
//}}AFX_FIELD_MAP }
Примечание
Мастер CiassWizard не поддерживает обмен полями блочных записей, и необходимо переопределить соответствующую функцию вручную, реализовав в ней вызовы функций BulkRFX (блочный обмен полями записи).
virtual CString CRecordset::GetDefaultConnect ( )
Библиотека MFC вызывает данную функцию, чтобы получить строку, содержащую источник данных, на котором базируется результирующий нa6op. Ниже приведен фрагмент кода, подробно рассматриваемый в следующей главе и иллюстрирующий использование этой функции.
CString CDBSet::GetDefaultConnect()
{ return _T("ODBC;DSN=MS Access 97 Database"); }
virtual CString CRecordset::GetDefaultSQL ( )
Библиотека MFC вызывает эту функцию, чтобы получить строку, содержащую оператор SQL, на котором базируется результирующий набор. Это должно быть или имя таблицы, или непосредственно оператор SELECT. Можно также определить здесь вызов предопределенного запроса, используя оператор CALL. Ниже приведен фрагмент кода, который иллюстрирует использование этой функции.
CString CDBSet::GetDefaultSQL( )
{ return _T{"[Products]");}
Если библиотека MFC не сможет найти имя таблицы или корректно интерпретировать оператор CALL, функция возвращает пустую строку.
Примечание
Между круглой скобкой и ключевым словом, например, CALL или SELECT, не должно быть пробелов.
Рассмотренные классы, безусловно, существенно облегчают работу с результирующими наборами, однако без предоставления этой информации пользователю, да еще в удобном виде, она мало что значит. К счастью, в библиотеке MFC реализовано множество классов представления (view), которые сделают эту paботу достаточно простой.
CWnd
CView
CScrollView
CFormView
CRecordView
29.Анализ текстов, созданных Арр Wizard для класса, производного от CRecordView. (Функции DoDataExchange(), OnInitialUpdate(), OnMove()). Связь ресурсов с ассоциированными переменными. Доступ к объекту «набор данных» (класса CRecordSet) из класса CRecordView
Класс CRecordView
Объекты этого класса предоставляют для изображения записей базы данных в элементах управления форму, которая непосредственно соединена с объектом CRecordset. Объекты CRecordView используют механизм DDX (Dialog Data Exchange, Обмен данными с блоком диалога) и RFX (Record Field Exchange, Обмен полями записей) для автоматического перемещения данных между элементами управления формы и полями результирующего набора. Кроме того, можно воспользоваться реализованными возможностям перемещения по записям и обновления текущей записи.
Вce компоненты и методы этого класса можно условно разбить на три категории.
· Создание объекта. Имеется только конструктор для создания объекта.
· Атрибуты данных. Три функции, используемые для получения информации результирующем наборе, к которому присоединена форма.
· Операции, Единственная функция, позволяющая программисту изменить указатель на текущую запись.
Ниже приведено описание каждой из этих категорий.
Создание объекта
В эту категорию входит только конструктор, имеющий две реализации.
CRecordView::CRecordView(LPCSTR lpszTemplateName)
CRecordView::CRecordView{UINT nIDTemplate)
Создает объект класса. В качестве параметра конструктор принимает идентификатор шаблона блока диалога, задаваемый либо строкой (lpszTemplateName), либо номером (nlDTemplate), При создании класса, производного от CRecordView, в нем можно определить только один конструктор, в котором необходимо вызвать конструктор базового класса CRecordView::CRecordView с идентификатором ресурса в качестве параметра, как это показано в приведенном ниже фрагменте:
CDBView::CDBView() : CRecordView(CDBView::IDD)
{ // {{AFX__DATA_ INIT (CDBView)
m_pSet = NULL;
m_strPrice =_ T("");
// }} AFX_DATA_INIT
m_bAdd = FALSE;
m_nSort = ID_SORT_TITLE; }
Атрибуты данных
Функции этой категории позволяют получить информацию о представлении записи
virtual CRecordset* CRecordView::OnGetRecordset ( )
Возвращает указатель на объект CRecordset, ассоциированный с формой, позволяет тем самым работать с некоторым результирующим набором. Чисто виртуальная функция, которая требует обязательного переопределения. Причина этого понятна -- библиотека не может знать, с каким результирующим набором, т. e. объектом класса CRecordset, вы работаете.
Ниже показан фрагмент кода, который выдает мастер AppWizard при создании приложения для работы с базой данных:
CRecordset* CDBView::OnGetRecordset()
{ eturn m_pSet }
BOOL CRecordView::IsOnFirstRecord ( )
Позволяет определить, является ли текущая запись первой в результирующем наборе, ассоциированном с данной формой. Когда пользователь перемещается за первую запись, библиотека блокирует доступ к элементам пользовательского интерфейса для перемещения на первую и предыдущую запись.
BOOL CRecordView::IsOnLastRecord( )
Позволяет определить, является ли текущая запись последней в результирующем наборе, ассоциированном с данной формой. Когда пользователь перемещается за последнюю запись, библиотека блокирует доступ к элементам пользовательcкого интерфейса для перемещения на последнюю и следующую запись.
Операции
В этой категории имеется единственная функция, позволяющая программисту перемещаться по записям результирующего набора.
virtual BOOL CRecordView::OnMove(UINT nIDMoveCommand)
Позволяет изменять указатель на текущую запись, или, другими словами, перемещаться no записям результирующего набора и отображать его поля в элементах управления формы. Параметр nIDMoveCommand задает направление перемещения и может принимать следующие значения:
ID_RECORD_FiRST Переход к первой строке в результирующем наборе
ID_RECORD_LAST Переход к последней строке в результирующем наборе
ID_RECORD_NEXT Переход к следующей строке в результирующем наборе
ID_RECORD_PREV Переход к предыдущей строке в результирующем наборе
Реализация этой функции по умолчанию обновляет текущую запись источника данных, если пользователь изменил ее в форме.
Примечание Если результирующий набор не имеет записей, то вызов функции OnMove приводит к исключению. Поэтому перед ее использованием необходимо определить, имеются ли записи в результирующем наборе.
Как видите, функций совсем немного, но не следует забывать, что класс CRecordView базируется на многих других классах, откуда и наследует все их возможности.
Иерархия вызовов функций при организации модального диалога
После вызова DoModal управление возвращается Вашей программе, только когда пользователь закрывает диалоговое окно. Если Вы понимаете это, значит, Вы понимаете, что такое модальный диалог. Перейдя к немодальным диалогам, Вы еще оцените, насколько просто было программировать модальные диалоги. Но вернемся к нашей теме и рассмотрим, как выглядит краткая сводка "кто кого вызывает":
CDialog::DoModal
CEx06aDiaiog::OnInitDialog
Дополнительная инициализация…
CDialog::OnInitDialog
CWnd::UpdateData(FALSE)
CEx06aDialog::DoDataExchange
пользователь вводит данные...
пользователь щелкает кнопку ОК
CEx06aDiaiog::OnOK
…дополнительная проверка…
CDialog::OnOK
CWnd::UpdateData(TRUE)
CEx06aDialog::DoDataExchange
CDialog::EndDialog(IDOK)
OnInitDialog и DoDataExchange-- виртуальные функции, замещенные в классе CEx06aDialog. Windows вызывает OnInitDialog при инициализации диалогового окна, и это приводит к вызову DoDataExchange, виртуальной CWnd-функции, замещенной мастером ClassWizard. Взгляните на листинг этой функции:
void CEx06aDia.log: :DoDataExchange(CDataExchange* pDX)
{
CDiaIog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CexO6aDialog)
DDX_Text(pDX, IDC_BIO, m._strBio);
DDX_Radio(pDX, IDC_CAT, m_nCat);
DDX_LBString(pDX, IDC_DEPT, m_strDept);
DDX_Check(pDX, IDC_DIS, m.bInsDis);
DDX_BString(pDX, IDC_LANG, m_strLang);
DDX_Check(pDX, IDC_LIFE,m_bInsLife);
DDX_Scroll(pDX, IDC_LOYAL, m_nLoyal);
DDX_Check(pDX, IDC_MED, m_bInsMed);
DDX_Text(pDX, IDC_NAME, m_strName);
DDX_Scroll(pDX, IDC_RELY, m_nRely);
DDX_CBString(pDX, IDC_SKILL, m_strSkill);
DDX_Text(pDX, IDC_SSN, m_nSsn);
DDV_MinMaxInt(pDX, m_nSsn, 0, 999999999);
DDX_CBString(pDX, IDC_EDUC, m_strEduc);
//>}AFX_DATA_MAP
DoDataExchange и функции DDX__ (обмен) и DDV__ (проверка достоверности) являются "дву-сторонними". Если UpdateData вызывается с параметром FALSE, то переносит данные из элементов данных в элементы управления диалогового окна. Если же этот параметр -- TRUE, функция передает данные из элементов управления в элементы данных. DDX_Text замещается для подстройки под множество типов данных.
Функция EndDialog критична для процедуры завершения диалогового окна. DoModal возвращает параметр, передаваемый в EndDialog. IDOK принимает данные из диалогового окна, а IDCANCEL отменяет диалог.
30.Основные методы класса CDatabase
Класс Cdatabase
Объекты этого класса используются для соединения с базами данных, посредством которого можно манипулировать источником данных. Чтобы у вас сразу же сложилось представление о заложенных в этот класс возможностях, приведут список категорий, на которые можно условно разделить все его компоненты и методы:
· Данные. Эти компоненты класса CDatabase хранят информацию, используемую в том случае, когда вы хотите работать непосредственно с базой данных, к которой присоединен объект CDatabase.
· Создание соединения. В эту категорию входят конструктор и методы для открытия/закрытия базы данных.
· Атрибуты данных. Сюда отн-ся десять ф-ий, используемых для пол-ия инфо- о базе данных, к которой присоединен объектов CDatabase.
· Операции -- пять функций, позволяющих обрабатывать транзакции и не-посредственно выполнять команды SQL
· Переопределяемые методы. Один метод, позволяющий программисту более конкретно настроить функционирование объекта CDatabase.
Создание соединения
CDatabase::CDatabase {}
Служит для создания объекта CDatabase:
Class cPublDoc: public CDocument
{public: // Объявляем объект CDatabase в документе
CDatabase m_dbPubl; ... };
После того как объект создан, необходимо установить соединение с определенным источником данных, для чего следует вызвать одну из приведенных ниже функций.
virtual BOOL CDatabase::Оpen (
LPCTSTR lpszDSN,
BOOL bExclusive = FALSE,
BOOL bReadOnly = FALSE,
LPCTSTR lpszConnect = "ODBC;",
BOOL bUseCursorLib = TRUE)
Параметр lpszDSN определяет имя источника данных, которое должно быть зарегистрировано с помощью программы ODBC Administrator. Это значение должно быть равно NULL, если DSN (Data Source Name, Имя источника данных) определено в строке lpszConnect, или может быть равно NULL, если необходимо предоставить пользователю блок диалога для выбора источника данных.
Параметр bExclusive (в Visual С++ 5.0 не поддерживается): источник данных всегда открывается для совместного использования, и значение параметра должно быть равно FALSE, в противном случае будет выдано сообщение об ошибке.
Параметр bReadOnly позволяет установить соединение с источником данных в режиме "только для чтения" (TRUE), что приводит к запрещению его обновления. После установления такого соединения все зависимые результирующие множества наследуют этот атрибут.
Параметр lpszConnect определяет строку, описывающую соединение, которая содержит информацию об источнике данных, идентификаторе пользователя, имеющего к нему доступ, пароль, если он тре-я ист-ку данных, и другую информацию. Для совместимости с будущими версиями требуется, чтобы эта строка начиналась с подстроки "ODBC", указ-щей на то, что соединение устан-вается с источником данных ODBC.
Параметр bUseCursorLib указывает на необходимость (TRUE) или необязательность загрузки динамической библиотеки ODBC Cursor Library, позволяющей работать с курсорами базы данных.
Упрощенная версия рассмотренной функции имеет вид:
virtual BOOL CDatabase::OpenEx (
LPCTSTR lpszConnectString,
DWORD dwOptions = 0)
Параметр lpszConnectString определяет строку соединения с источником данных ODBC, которая включает его имя, а также дополнительную необязательную информацию, такую как идентификатор и пароль пользователя, например,
"DSN=Publisher;UID=sa;PWD=irishka".
Если в качестве параметра передается NULL, то выводится блок диалога Data Source, в котором пользователь может выбрать источник данных. Параметр dwOptions -- битовая маска, которая определяет комбинацию следующих значений:
CDatabase::openExclusive В Visual C++ до версии 6.0 не поддерживается источник данных всегда открывается для совместного использования. При задании этой опции будет выдано сообщение об ошибке.
CDatabase::openReadOnly Источник данных открывается в режиме “только для чтения”
СDatabase::openUseCursorLib Указывает на необходимость загрузки динамической библиотеки ODBC Cursor Library, позволяющей работать с курсорами
CDatabase::noOdbcDialog Не выводить блок диалога
CDatabase::forceOdbcDialog Всегда выводить блок диалога соединения
Значение, заданное по умолчанию (0), означает, что база данных открывается для совместного использования, с доступом для записи, динамическая библиотека поддержки курсора не загружается и блок диалога для выбора источника данных отображается только в том случае, если не указана дополнительная информация о соединении.
Как видите, обе функции выполняют одну и туже задачу - установить соединение с источником данных. Разница заключается только в способе задания параметров.
Примеры.
Cdatabase m_dbSamp; // Создаем объект класса Cdatabase
// Открываем соединение с источником данных, указав имя источника и идентификатор //пользователя (без пароля)
m_dbsamp.Open(_T(»Samples»), FALSE, FALSE, _T(«ODBC;UID=sa»));
//или запрашиваем всю информацию у пользователя
m_dbsamp.Open(NULL);
Закрытие соединения
//Закрываем текущее
m_dbsamp.Close();
// … и открываем новое
m_dbPubl.OpenEx (_T(“DSN=Authors; UID=sa”), CDatabase::openReadOnly|
CDatabase::noOdbcDialog));
Атрибуты данных
Входящие в эту категорию функции используются для предоставления ин-формации о соединении, драйвере и источнике данных, а также для установки некоторых опций источника данных. Наиболее часто они применяются в интерфейсных приложениях. Рассмотрим основные из них.
const CString& CDatabase: :GetConnect()
Вызов этой функции позволяет получить описывающую соединение строку, которая использовалась во время вызова функций открытия соединения (Open или OpenEx). Если до момента вызова этой функции соединение не было установлено, то возвращается ссылка на пустую строку.
BOOL CDatabase::IsOpen ()
Позволяет определить, имеется ли (возвращается ненулевое значение) или нет (0) текущее соединение объекта CDatabase с источником данных.
BOOL CDatabase: :CanUpdate ()
Устанавливает, может ли пользователь обновлять базу данных. Сама возможность обновления определяется двумя факторами -- возможностями драйвера ODBC (не все драйверы предоставляют возможность обновления) и режимом, в котором была открыта база данных. Если такая возможность есть, то функция возвращает ненулевое значение, а в противном случае 0. Фактор, влияющий на возможность обновления, можно задать, вызвав функцию ::SQLGetlnfo с парамeтpoм SQL_DATASOURCE_READ_ONLY.
ОПЕРАЦИИ
Функции этой категории используются для непосредственной работы с базой данных. К ним относятся функции обработки транзакций (используемые для обновления базы данных) и непосредственного выполнения команд SQL: void CDatabase::ExecuteSQL (LPCSTR lpszSQL)
Позволяет непосредственно выполнить команду SQL, задаваемую в завершающейся нулем строке, на которую указывает параметр lpszSQL. В качестве параметра можно использовать объект класса CString. Следует иметь в виду, что выполнение этой функции не возвращает записей из базы данных и, следовательно, не рекомендуется для выполнения операций выборки:
CString strCmd = "UPDATE Products SET UnitPrice = 30";
try
{ m_dbCust.ExecuteSQL(strCmd) ; }
catch (CDBException, e)
{ // Код ошибки находится в e->m_nRetCode }
31.Класс CRecordset. Компоненты данных и основные методы (открытие набора, получение атрибутов результирующего набора IsOpen, IsBOF, IsEOF, IsDeleted, обновление результирующего набора)
Класс CRecordset
Все компоненты и методы этого класса можно разбить на семь категорий:
· Компоненты данных. Служат для хранения информации, используемой для непосредственной работы с базой данных, к которой объект этого класса был присоединен.
· Конструирование. В эту категорию входят конструктор и методы для от-крытия/закрытия форм базы данных.
· Атрибуты результирующего набора. Функции, используемые для получе-ния информации о результирующем наборе, к которому присоединен объект класса CRecordset.
· Операции обновления результирующего набора. Четыре операции, предна-значенные для обработки транзакций.
· Операции перемещения по результирующему набору. Функции, позволяю-щие перемещаться по записям результирующего набора.
· Другие операции над результирующим набором. Восемь функций, предос-тавляющие дополнительные функциональные возможности.
· Переопределяемые методы. Пять переопределяемых функций, позволяю-щие программисту настроить функционирование объекта класса CRecordset.
BOOL CRecordset::IsOpen ()
Позволяет определить, открыт ли уже результирующий набор. Хорошим стилем программирования является использование этой функции перед тем, как вызывать функцию Open.
BOOL CRecordset::IsBOF ()
Позволяет определить, является ли текущая запись первой в наборе данных. Она возвращает ненулевое значение, если результирующий набор не содержит записей или указатель помещен до первой записи, и 0 -- в противном случае. Если функция возвратила ненулевое значение, то текущая запись не определена, и при вызове функции MovePrev возникает ошибка.
BOOL CRecordset::IsEOF ( )
Позволяет определить, является ли текущая запись последней в наборе данных. Возвращает ненулевое значение, если результирующий набор не содержит записей или указатель помещен за последней записью, и 0 -- в противном случае. Если функция возвратила ненулевое значение, то текущая запись не определена, и при вызове функции MoveNext возникает ошибка.
BOOL CRecordset::IsDeleted ( )
Позволяет определить, была ли текущая запись удалена. Если при перемещении на запись и вызове этой функции она возвращает ненулевое значение, необходимо перейти к другой записи до того, как производить какие-либо операции над результирующим набором.
Эту функцию не следует использовать при работе с блочной выборкой строк. Вместо нее следует вызывать функцию GetRowStatus,
Примечание: Результат, возвращаемый функцией IsDeleted, зависит от многих факторов, таких как тип результирующего набора, можно ли его обновлять, определена ли при открытии опция CRecordset ::skipDeletedRecords, позволяет ли используемый драйвер удалять записи и каково число работающих пользователей.
32.Класс CRecordset. Компоненты данных и осн.методы (операции перемещения пo результир-му набору, операции IsFieldDirty, IsFieldNull, Requary, SetFieldDirty, SetFieldNull)
Все компоненты и методы этого класса можно разбить на семь категорий:
1)Компоненты данных. Служат для хранения информации, используемой для непосредственной работы с базой данных, к которой объект этого класса был присоединен.
2)Конструирование. В эту категорию входят конструктор и методы для открытия/закрытия форм БД.
3)Атрибуты результирующего набора. Функции, используемые для получения информации о результирующем наборе, к которому присоединен объект класса CRecordset.
4)Операции обновления результирующего набора. Четыре операции, предназначенные для обработки транзакций.
5)Операции перемещения по результирующему набору. Ф-ции, позволяющие перемещ-ся по записям результирующего набора.
6)Другие операции над результирующим набором. Восемь ф-ций, предоставляющие доп-е функциональные возможности.
7)Переопределяемые методы. Пять переопр-х ф-ций, позвол-е прогр-ту настроить функционир-е объекта класса CRecordset.
1)Компоненты данных
В классе CRecordset определены следующие основные компоненты данных:
UINT CRecordset::m_nFields
Содержит число полей данных в результирующем наборе -- число столбцов, получ-х из источника данных.
(Если воспольз-ся ClassWizard, то это б.сделано автоматически UINT CRecordset::m_nParams).
CDatabase CRecordset: :m_pDatabase
Содержит ук-ль на объект класса CDatabase, посредством кот-го результирующий набор соединяется с источником данных.
CString CRecordset::m_strFilter
Исп-ся в кач-ве фильтра, что позв-т выбирать только записи, удовлетв-е заданному критерию.
CString CRecordset::m_strSort
Исп-ся в качестве фильтра, позв-го сортир-ть записи, удовлетв-е заданному критерию.
Операции перемещения пo результир-му набору
К основным функциям этой категории относятся следующие: Move, MoveFirst, MoveLast, MoveNext и MovePrev.
virtual void CRecordset::Move -- Функция имеет два парам-ра: nRows - кол-во строк, на кот-е необх-мо переместиться вперед («+» знач-е) или назад («-») и wFetchType -- опред-т набор строк, которые функция должна выбрать.
void CRecordset::MoveFirst () -- Делает текущей первую запись результирующего набора. Перед использованием данной функции рекомендуется вызвать функцию lsBOF.
void CRecordset::MoveLast () Делает текущей последнюю запись результирующего набора. Перед использованием данной функции рекомендуется вызвать функцию IsEOF.
void CRecordset: :MoveNext () Делает текущей первую запись следующего набора строк. Перед использованием реком-ся вызвать ф-цию IsBOF. Если работа идет не с блоками, а с отдельными записями, то текущей становится след-я запись.
voidCRecordset::MovePrev ()
Делает текущей первую запись предыдущего набора строк. Перед ее испольванием рекомендуется вызвать функцию IsEOF. При работе не с блоками, а с отдельными строками текущей становится предыдущая запись.
Другие операции над результирующим набором
В эту категорию входят функции, которые трудно отнести к какому-то типу.
void CRecordset::Cancel ()
Вызов этой ф-ции явл-ся просьбой к источнику данных отменить либо oбрабат-ю асинхронную операцию, либо второй поток.
BOOL CRecordset::IsFieldDirty(void*pv)
Возвращает ненулевое значение, если поле данных было изменено после вызова AddNew или Edit, в противном случае О. Проверяемое поле данных задаете указателем pv, если это значение равно NULL, то проверяются все поля.
BOOL CRecordset::IsFieldNull (void*pv)
Возвращает ненулевое значение, если поле данных отмечено как содержащее значение Null, и 0 - в противном случае. Проверяемое поле данных задается указателем pv, если это значение равно Null, то проверяются все поля.
virtual BOOL CRecordset::Reguery ()
Позволяет обновить результирующий набор. Функцию следует вызывать для результирующего набора типа «мгновенный снимок» (snapshot) после того, как вы или другой пользователь внесли в него изменения. Для динамического (dynaset) результирующего набора обновление производится автоматически, кроме случая добавление новой записи.
void CRecordset::SetFieldDirty (void*pv,BOOL bDirty = TRUE)
Позволяет пометить поле данных результирующего набора (парам-р pv) как измененное (bDirty=TRUE) или не изменившееся (bDirty=FALSE). Если в кач-ве pv передается NULL, помечаются все поля. Использование этой функции позволяет снизить трафик SQL, если изменились не все поля записи.
void CRecordset::SetFieldNull (void*pv,BOOL bNull = TRUE)
Позволяет пометить поле данных результирующего набора (параметр pv) как содержащее (bNull = TRUE) или не содержащее (bNull = FALSE) значение Null. Если в качестве pv передается NULL, помечаются все поля.
33.Класс CRecordset. Переопределяемые методы (DoFieldExchange, GetDefoltSQL, GetDefoltConnect)
В эту категорию входят ф-ции, кот-е можно переопред-ть в каждом конкретном прилож-и, чтобы настроить его на выполнение текущих задач.
virtualvoidCRecordset::DoFieldExchange(СFieldExchange*pFx
Вызывается для организации обмена данными между полями результирующего набора и соответствующими столбцами текущей записи в источнике данных.
В качестве параметра функция принимает указатель на объект CFieldExchange, кот-й авт-ки созда-ся и передается библ-й MFC.
Собственно обмен данными осуществляется с помощью механизма RFX (Record Field Exchange, Обмен полями записи), который работает в обоих направления от полей данных результирующего набора к записям источника данных и наоборот.
virtual CString CRecordset::GetDefaultConnect()
Библиотека MFC вызывает данную функцию, чтобы получить строку, содержащую источник данных, на котором базируется результирующий нaбop.
virtual CString CRecordset::GetDefaultSQL()
Библиотека MFC вызывает эту функцию, чтобы получить строку, содержащую оператор SQL, на кот-м базируется результир-й набор. Это должно быть или имя таблицы, или непосредственно оператор SELECT. Можно также определить здесь вызов предопределенного запроса, используя оператор CALL.
34.Класс CRecordView. Осн.методы (конструктор, OnGetRecordSet, OnMove)
CWnd-> CView->CScrollView->CFormView->CRecordView
Объекты этого класса предоставляют для изображения записей БД в элементах управл-я форму, кот-я непосредственно соед-на с объектом CRecordset. Объекты CRecordView исп-т мех-м DDX (Dialog Data Exchange, Обмен данными с блоком диалога) и RFX (Record Field Exchange, Обмен полями записей) для автомат-го перемещения данных м/у элем-ми упр-я формы и полями результир-го набора. Кроме того, м.восп-ся реализованными возм-ми перемещ-я по записям и обновления текущей записи.
Вce компон-ты и методы этого класса м.разбить на три категории:
1)Создание объекта. Имеется только конструктор для создания объекта.
2)Атрибуты данных. Три функции, используемые для получения информации результирующем наборе, к которому присоединена форма.
3)Операции.Единственная функция, позволяющая программисту изменить указатель на текущую запись.
1)Создание объекта
В эту категорию входит только констр-р, имеющий две реализации.
CRecordView::CRecordView(LPCSTR lpszTemplateName)
CRecordView::CRecordView(UINT nIDTemplate)
Создает объект класса. В кач-ве парам-ра конструктор принимает идентификатор шаблона блока диалога, задаваемый либо строкой (lpszTemplateName), либо номером (nlDTemplate), При создании класса, производного от CRecordView, в нем можно определить только один конструктор, в котором необходимо вызвать конструктор базового класса CRecordView::CRecordView с идентификатором ресурса в качестве параметра.
2)Атрибуты данных
Функции этой категории позволяют получить информацию о представлении записи
virtual CRecordset*CRecordView::OnGetRecordset()
Возвращает указатель на объект CRecordset, ассоциированный с формой, позволяет тем самым работать с некот-м результир-м набором. Чисто виртуальная функция, которая требует обязательного переопределения.
Фрагмент кода (AppWizard):
CRecordset* CDBView::OnGetRecordset()
{ eturn m_pSet }
BOOL CRecordView::IsOnFirstRecord( )
Позволяет определить, является ли текущая запись первой в результирующем наборе, ассоциированном с данной формой. BOOL CRecordView::IsOnLastRecord( )
Позволяет определить, является ли текущая запись последней в результирующем наборе, ассоциированном с данной формой. 3)Операции
Имеется единственная функция, позволяющая программисту перемещаться по записям результирующего набора.
virtual BOOL CRecordView::OnMove(UINT nIDMoveCommand)
Позволяет изменять указ-ль на текущую запись (перемещаться no записям результирующего набора и отображать его поля в элементах управления формы).
Параметр nIDMoveCommand задает направление перемещения:
ID_RECORD_FiRST переход к первой строке в результир-м наборе
ID_RECORD_LAST переход к посл-й строке в результир-м наборе
ID_RECORD_NEXT переход к след-й строке в результир-м наборе
ID_RECORD_PREV переход к пред-й строке в результир-м наборе
Реализация этой функции по умолчанию обновляет текущую запись источника данных, если пользователь изменил ее в форме.
35.Технология ADO. Объектная модель, наборы ADO
ADO представляет собой открытую спецификацию набора системных интерфейсов уровня приложения, базирующихся на COM и созданных для поддержки разработки. ADO использует OLE DB для доступа к данным и предоставляет разработчику, знакомому с DAO и RDO, удобный интерфейс.
OLE DB определяет открытый, расширяемый набор интерфейсов, которые выделяют и инкапсулируют независимые части функциональности СУБД (контейнеры рядов, процессоры запросов и координаторы транзакций) обеспечивающие унифицированный доступ к разнообразным источникам информации. В свою очередь функциональность OLE DB включает доступ и обновление данных, обработку запросов, уведомления, транзакции, защиту и удалённый доступ к данным. Определяя унифицированный набор интерфейсов доступа к данным, компоненты OLE DB не только способствуют унификации доступа к разным источникам информации, но и позволяют уменьшить требования приложений к объёму памяти, позволяя им задействовать только те возможности СУБД, которые действительно необходимы.
Технология ADO предлагает разработчику удобный прикладной интерфейс для OLE DB. ADO удобна в обращении, так как предоставляет объекты Automation, скрывающие интерфейсы OLE DB, что позволяет программисту уделять основное внимание решаемым задачам, а не сложностям технологии OLE DB.
ADO Data Control - это графический элемент управления на базе технологии ActiveX с кнопками навигации по записям. Он предоставляет приложению удобный интерфейс для работы с базами данных и позволяет избежать дополнительного кодирования. В ADO Data Control механизм ADO применяется для оперативного создания соединений между поставщиками данных и связанных с данными элементами визуализации. Элементы визуализации, связанные с данными, представляют собой ActiveX-элементы пользовательского интерфейса с двумя важными свойствами:
-наличием параметра DataSourse, в котором можно задать идентификатор элемента ADO Data Control;
-способностью отображать данные, выбранные связанным с ним элементом ADO Data Control.
Когда элементы управления связаны с ADO Data Control, при просмотре записей все поля отображаются и обновляются автоматически. Такое поведение реализовано в самих элементах, и для этого не требуется ни одной дополнительной строчки кода. Примерами ActiveX-элементов для работы с данными являются, например Microsoft DataGrid, Microsoft DataList. Кроме того, допускается самостоятельно создавать собственные элементы управления, а также приобретать их у других поставщиков программного обеспечения.
36.Применение ADO Data Control и DataGrid Control
Технология ADO предлагает разработчику удобный прикладной интерфейс для OLE DB. ADO удобна в обращении, так как предоставляет объекты Automation, скрывающие интерфейсы OLE DB, что позволяет программисту уделять основное внимание решаемым задачам, а не сложностям технологии OLE DB.
ADO Data Control - это графический элемент управления на базе технологии ActiveX с кнопками навигации по записям. Он предоставляет приложению удобный интерфейс для работы с базами данных и позволяет избежать дополнительного кодирования. В ADO Data Control механизм ADO применяется для оперативного создания соединений между поставщиками данных и связанных с данными элементами визуализации. Элементы визуализации, связанные с данными, представляют собой ActiveX-элементы пользовательского интерфейса с двумя важными свойствами:
-наличием параметра DataSourse, в котором можно задать идентификатор элемента ADO Data Control;
-способностью отображать данные, выбранные связанным с ним элементом ADO Data Control.
Когда элементы управления связаны с ADO Data Control, при просмотре записей все поля отображаются и обновляются автоматически. Такое поведение реализовано в самих элементах, и для этого не требуется ни одной дополнительной строчки кода. Примерами ActiveX-элементов для работы с данными являются, например Microsoft DataGrid, Microsoft DataList. Кроме того, допускается самостоятельно создавать собственные элементы управления, а также приобретать их у других поставщиков программного обеспечения.
Методические указания
Пусть наша программа называется lab_actx., создаем заготовку программы.
После этого мы можем перейти к добавлению элементов ActiveX Microsoft ADO Data Control и Microsoft DataGrid Control на форму.
Для этого выполним такую последовательность действий.
Выберем в меню пункт Project. В этом пункте - меню Add to project, а в нём - Components and Controls.
Щёлкнем этот пункт. В результате появится диалог “Components and Controls Gallery”- диалог выбора компонентов. Теперь в этом диалоге откроем папку “Registered ActiveX Controls ”, в которой находятся все зарегистрированные в системе компоненты ActiveX. Теперь из списка элементов ActiveX выберем компонент “Microsoft ADO Data Control, version 6.0 (OLEDB)” и нажмём кнопку “Insert”. Сразу же мы увидим диалог подтверждения вставки выбранного компонента
Согласимся и нажмём кнопку “Ok”. Теперь мы увидим новый диалог в котором нам предлагается подтвердить добавление классов, связанных с компонентом “Microsoft ADO Data Control, version 6.0 (OLEDB)”.
Подтвердим его. После этого, классы, реализующие элемент управления “Microsoft ADO Data Control, будут добавлены в наш проект. Теперь таким же образом добавим компонент “Microsoft DataGrid Control, Version 6.0 (OLEDB)”.
Для простоты последующего описания будем называть компонент “Microsoft DataGrid Control, Versiongjc6.0 (OLEDB)” - “Грид”, а компонент “Microsoft ADO Data Control, version 6.0 (OLEDB)” - “ Адо”.
37.Удаление, добавление и редактирование записей в технологии ADO
Для того чтобы реализовать возможности удаления, добавления и редактирования, необходимо настроить свойства компонента Грид. Выполним такую последовательность действий. Вызовем меню “Properties” элемента Грид. Перейдём на закладку “Control”. Поставим пометки напротив следующих свойств: AllowAddNew, AllowDelete,AllowUpdate Теперь перейдём к настройке свойств элемента Адо. Для этого вызовем меню “Properties” элемента Адо, в котором выберем закладку “All”. Теперь установим значения некоторых свойств:
“Cursor Locations” на “2-Use server cursor”
“Cursor Type” на “1-Keyset Cursor Type”
Теперь, после запуска приложения, переместимся в ячейку, которую хотим редактировать. Отредактируем её. Для подтверждения изменений, сделанных в ячейке,необходимо убрать фокус, например, нажатием клавиши “Enter”. Для добавления новой записи необходимо переместиться в самую нижнюю строку элемента Грид и добавить данные. После завершения заполнения этой строки данными и перемещения фокуса на другую строку к элементу Грид автоматически добавляется ещё одна строка, которая располагается ниже текущей. Удаление записей производится следующим образом. Для удаления нужной строки необходимо щелкнуть мышью по заголовку строки, таким образом выделив целую строку. После этого, при нажатии клавиши “Delete” на клавиатуре, происходит удаление выбранной строки.
38.Сортировка и фильтрация записей
Часто при работе с БД треб-ся изменить порядок, в кот-м записи отображ-ся на экране, или же осущ-ть поиск записей, удовлетв-х опред-му критерию. Существующие в MFC классы работы с БД ODBC располагают методами, позвол-ми сортир-ть выбранные записи по любому из их полей. Кроме того, вызов опред-х мет-в этих классов предоставит возм-ть ограничить набор отображ-х записей только такими, поля кот-х содержат указ-ю инф-цию, например конкретное имя или идентиф-р. Данная операция назыв-ся фильтрацией.
1)Добавьте меню Sort (Сортировка) в основное меню приложения. Предоставьте VS автоматически определить идентификаторы команд.
2)С помощью мастера ClassWizard организуйте в классе CEmployeeView перехват четырех новых команд сортировки, используя имена функций, предложенные этим мастером. Окончательный вид окна ClassWizard показан.
3)Добавьте меню Filter (Фильтрация) в строку меню приложения. Предоставьте Visual Studio установить идентификаторы команд.
4)С пом-ю мастера ClassWizard организ-те в классе CEmployeeView перехват четырех новых команд фильтрации, используя имена функций, предложенные этим мастером.
Выберите команду InsertResource и создайте новое диалоговое окно, сделав двойной щелчок на элементе Dialоg, а затем отредакт-те диал.окно. Присвойте элементу упр-я -- текстовому полю -- идентификатор ID_FILTERVALUE.
5)Оставив новое диал.окно раскрытым на экране, запустите мастер ClassWizard. Раскроется диал.окно Adding a Class установите опцию Create a new class и щелкните на кнопке ОК.
6)Раскроется диал.окно New Class. В поле Name введите значение CFilterDlg.
7)В окне мастера ClassWizard щелкните на корешке вкладки Member Variables. Свяжите элемент упр-я IDC_FILTERVALUE с переменной-членом m_filterValue. Завершите работу с мастером ClassWizard, щелкнув на кнопке ОК.
Теперь, когда меню и диал.окна уже созданы и связаны с заготовками ф-ций, необх-мо добавить в эти заготовки опред-й программ-й код. На панели ClassView сделайте двойной щелчок на функции OnSortDepartment(), а затем отредактируйте ее текст.
Также и для всех.
В начало EmployeeView.cpp, после уже имеющихся директив #include,добавьте следующую строку: #include "FilterDlg.h"
Отредактируйте текст функций OnFilter…….
Все эти четыре ф-ции выз-т ф-цию DoFilter(). Далее необх-мо будет написать эту ф-цию, выполн-ю фильтрацию записей БД, представл-х в классе выборки данных. На панели ClassView щелкните правой кнопкой мыши на классе CEmployeeView и выберите в раскрывшемся контекстном меню команду Add Member Function. Укажите в раскрывшемся диалоговом окне тип функции void и введите ее объявление как DoFilter(CString col). Данный метод должен быть защищенным, так как он выз-ся только другими методами этого же класса CEmployeeView. На панели ClassView сделайте двойной щелчок на функции DoFilter() и поместите в нее текст программы.
Теперь можно сортировать записи по любому полю, для чего достаточно просто выбрать имя поля в меню Sort. Кроме того, появилась возможность задать фильтрацию отображаемых записей, выбрав имя требуемого поля в меню Filter, а затем введя значение фильтра в раскрывшемся диалоговом окне Filter.
Анализ функции OnSort()
Все ф-ции сортировки имеют одинаковую стр-ру. Они закрывают выборку данных, устан-т свои переменные-члены m_strSort и снова открывают выборку данных, а затем вызывают функцию UpdateData() для обновления окна представления данными из вновь полученной отсортир-й выборки данных. Однако в тексте ф-ций сортировки нет ни одного вызова ф-ции, в названии кот-й было бы слово Sort. Когда же выполн-ся сортировка? Она выполняется, когда выборка данных открывается заново.
Объект класса CRecordset исп-т спец-ю строковую переменную m_strSort для опред-я способа упорядоч-я записей. Объект анализ-т эту строковую переем-ю при формир-и выборки данных и соответственно упорядочивает выбранные из базы записи.
Анализ функции DoFilter()
Всякий раз, когда польз-ль выбирает команду из меню Filter, управляющая прог-ма вызывает соотв-й этой команде метод: OnFilterDept(), OnFilterID(), OnFilterName() или OnFilterRate(). Каждая из этих ф-ций ничего не делает, кроме вызова лок-го метода DoFilter(), передавая ему в кач-ве парам-ра строковую перем-ю, опред-ю поле, по кот-му треб-ся вып-ть фильтрацию.
Функция DoFilter() всегда отображает одно и то же диал.окно, создавая экземпляр объекта класса диалогового окна и вызывая его метод DoModal().
Если значение result не равно IDOK, значит, пользователь выполнил щелчок на кнопке Cancel и весь оператор if пропускается, а функции DoFilter() остается только закончить свою работу.
Внутри конструкции if прежде всего создается строковая перем-я, кот-я будет использ-ся для фильтрации записей БД. Строковая перем-я примен-ся для вып-я фильтрации записей так же, как это происходит при сорт-ке. В данном случае строковая перем-я наз-ся m_strFilter. Строка, кот-я исп-ся для фильтрации записей БД, д.иметь след. формат: ИдентификаторПоля = Значение
Здесь ИдентификаторПоля является аргументом типа CString функции DoFilter(), а Значение вводится польз-м в диал.окне. Сформировав указанную строку, прог-ма будет готова к вып-ю фильтрации записей. Для этого, как и в случае сорт-ки, выборка данных должна быть закрыта, а затем, при ее повторном открытии, ф-ция DoFilter() выполнит формирование выборки данных с учетом требуемой фильтрации.
Если в результате работы установленного фильтра не будет выбрано ни одной записи, ф-ция DoFilter() обнаруж-т подобную ситуацию, подсчитывая кол-во записей в создаваемой выборке и сравнивая затем это число с нулем. Если набор записей пуст, прог-ма выводит окно сообщения, информирующее польз-ля о сложившейся ситуации. Затем прог-ма закрывает выборку, присваивает строковой перем-й фильтра пустое знач-е и снова открывает выборку записей. Таким образом, восстанавливается выборка, включающая все записи таблицы.
И, наконец, независимо от того, удалось ли обнаружить записи, отвечающие заданному фильтру, или же выборка данных включает всю базу данных, программа должна заново отобразить данные на экране. Для этого вызывается функция UpdateData().
39.Настройка Эл-тов упр-ния ADO Data Control и DataGrid Control из кода приложения
ADO (Объекты данных ActiveX).
Технология ADO предлагает разработчику удобный прикладной интерфейс для OLE DB. ADO удобна в обращении, так как предоставляет объекты Automation, скрывающие интерфейсы OLE DB, что позволяет программисту уделять основное внимание решаемым задачам, а не сложностям технологии OLE DB.
ADO Data Control - это графический элемент управления на базе технологии ActiveX с кнопками навигации по записям. Он предоставляет приложению удобный интерфейс для работы с базами данных и позволяет избежать дополнительного кодирования. В ADO Data Control механизм ADO применяется для оперативного создания соединений между поставщиками данных и связанных с данными элементами визуализации. Элементы визуализации, связанные с данными, представляют собой ActiveX-элементы пользовательского интерфейса с двумя важными свойствами:
-наличием параметра DataSourse, в котором можно задать идентификатор элемента ADO Data Control;
-способностью отображать данные, выбранные связанным с ним элементом ADO Data Control.
Когда элементы управления связаны с ADO Data Control, при просмотре записей все поля отображаются и обновляются автоматически. Такое поведение реализовано в самих элементах, и для этого не требуется ни одной дополнительной строчки кода. Примерами ActiveX-элементов для работы с данными являются, например Microsoft DataGrid, Microsoft DataList. Кроме того, допускается самостоятельно создавать собственные элементы управления, а также приобретать их у других поставщиков программного обеспечения.
Итак, начинаем настройку компонентов.
Прежде всего, займёмся компонентом Адо. Щёлкнем правой кнопкой мыши на этом компоненте. В появившемся контекстном меню выберем пункт “Properties”. Для изменения заголовка компонента выберем закладку “General” и в поле “Caption” напишем своё название (например “Click”). Теперь переходим на закладку “Control”, выбираем опцию “Use ODBC Data Source Name”, после чего в ставшем активном элементе Combo Box выбираем нашу базу данных
Теперь нам необходимо сформировать запрос к базе данных. Запрос к базе данных может быть представлен так:
??SQL-запрос к базе данных (1-adCmdText);
??подключение таблицы (2-adCmdTable);
??вызов хранимой процедуры из базы данных (4-adCmdStoredProc).
Выберем “SQL-запрос к базе данных”. Данный метод позволит нам осуществить выборку данных сразу из нескольких таблиц. Для этого перейдём в меню “Properties” элемента Адо и выберем закладку “RecordSource”. В элементе с именем “Command Type” выберем “1-adCmdText”, Навигация осуществляется по элементу Грид как с помощью элемента управления Адо, так и с помощью мыши.
40.Обзор технологий ActiveX и OLE
Рассмотрим теорию и концепции технологии ActiveX, которая построена на основе модели СОМ (Component Object Model -- модель многокомпонентных объектов). До недавнего времени технология, построенная на основе СОМ, носила название OLE (Object Linking and Embedding-- связывание и внедрение объектов), но теперь она обозначается термином ActiveX. Большинство программистов нового поколения используют OLE довольно осторожно, и замена названия на ActiveX, к несчастью, только укрепила осторожное к ней отношение. Тем не менее, если вы расцените технологию ActiveX как способ многократного использования программ, уже написанных и протестированных кем-то другим, и как защиту от необходимости самому повторно изобретать колесо в каждом новом приложении, вы поймете, что эта овчинка стоит выделки и времени на ее изучение. Наличие Developer Studio и MFC делает использование технологии ActiveX намного проще, поскольку они выполняют большую часть черновой работы, оставляя ее невидимой для вас. Технология ActiveX дает возможность пользователю и приложениям ориентироваться на работу с документами, и это, пожалуй, самое главное. Если пользователь решает подготовить годовой отчет с помощью приложений, поддерживающих ActiveX, он может сосредоточиться именно на отчете как таковом. Вероятно, часть этой работы будет выполнена в Word, a еще некоторая ее часть -- в Excel, но для пользователя суть дела заключена не в приложениях. Подобная переориентация сейчас происходит во многих направлениях и вызвано это объектно-ориентированным образом мышления большинства программистов. Ныне кажется более естественным разделить работу между несколькими различными приложениями, способными взаимодействовать между собой, чем написать одно гигантское приложение на все случаи жизни.
...Подобные документы
Современные средства информационных технологий для разработки пользовательских приложений. Ввод и вывод информации. Встроенные диалоговые окна. Использование элементов управления, встраиваемых на рабочие листы. Создание диалоговых окон пользователей.
учебное пособие [2,1 M], добавлен 27.04.2011Обзор программных средств разработки приложений и обоснование выбора языка программирования. Классификация приложений для работы с базами данных. Функциональная структура базы данных с указанием назначения программных модулей, руководство пользователя.
дипломная работа [645,3 K], добавлен 21.11.2010Средства и технологии разработки приложений баз данных. Компоненты управления доступом к БД. Описание программного окружения доступа к данным. Механизм получения и отправки данных. Специфика связи внутреннего представления с интерфейсом приложения.
презентация [29,4 K], добавлен 19.08.2013Web-дизайн, web-страница, основы строения сайта. Текстовые редакторы для разработки Web приложений. Стандартные средства разработки для Unix систем. Профессиональные среды разработки и их ответвления. Визуальные редакторы для разработчиков Web.
курсовая работа [1,4 M], добавлен 12.08.2015Устройство веб-приложений, преимущества их построения. Характеристика технологий веб-программирования, используемых на стороне сервера и на стороне клиента. Формирование и обработка запросов, создание интерактивного и независимого от браузера интерфейса.
контрольная работа [76,4 K], добавлен 08.07.2014Структурные подразделения и отделы организации, ее технические программные средства. Разработка приложений обработки данных на ассемблере, языке программирования высокого уровня. Тестирование и оптимизация программных модулей. Разработка документации.
отчет по практике [175,0 K], добавлен 30.09.2022Вопросы программирования в Maple версий 6-11 и разработка приложений. Рассматривает эффективные приемы программирования и разработки приложений для многих разделов техники, математики, физики, для решения которых пакет не имеет стандартных средств.
монография [4,8 M], добавлен 13.03.2008Преимущества операционной системы Android. Проектирование интерфейса приложений. Визуальные редакторы и средства кроссплатформенной разработки. Оптимизация игрового процесса, выбор фреймворка и библиотек. Классификация и характеристика игр по жанрам.
дипломная работа [2,6 M], добавлен 10.07.2017Сущность языков разметки и этапы проектирования. Общая характеристика бесплатных приложений для работы с кодом в текстовом формате. Особенности визуальных редакторов и суть платных приложений. Стандартные средства разработки для Unix систем и их замена.
курсовая работа [49,6 K], добавлен 04.06.2013Архитектура операционной системы Android, набор библиотек для обеспечения базового функционала приложений и виртуальная машина Dalvik. Объектно-ориентированный язык программирования Java как инструмент разработки мобильных приложений для ОС Android.
дипломная работа [1,6 M], добавлен 08.07.2015Разработка критериев оценки экрана веб-приложений. Основные подходы к защите веб-приложений. Анализ российских нормативных документов. Зарубежная практика выбора экрана веб-приложений. Разработка и обоснование общих требований к механизмам защиты.
дипломная работа [68,7 K], добавлен 04.08.2016Разработка приложений на платформе Win32 для исследования взаимодействия между процессами через отображение файла в память. Модель приложений "клиент - сервер". Описание алгоритма работы программы-клиента и программы-сервера. Результаты работы приложений.
курсовая работа [869,3 K], добавлен 18.05.2014Жизненный цикл программного продукта. Современные среды разработки приложений. Защита информации в базах данных. Особенности разработки приложения с помощью среды Delphi 7. Проверка программного модуля на предмет соответствия стандартам кодирования.
отчет по практике [589,0 K], добавлен 18.05.2017Приложение для организации и контроля разработки программного обеспечения, сокращающее сроки проектирования программных продуктов и оптимизирующее данный процесс. Технологии создания приложений на платформе .NET. Алгоритм получения и обновления списка.
дипломная работа [861,9 K], добавлен 27.11.2014Проектирование системы управления базами данных. Особенности реализации в MS SQL. Разработка пользовательского интерфейса. Тестирование и отладка приложения. Руководство пользователя и системного администратора. Анализ и методы разработки приложений.
курсовая работа [867,9 K], добавлен 16.07.2013Средства разработки, ориентированные на конкретные СУБД. Наиболее известные приложения на основе Eclipse Platform. Проект NetBeans IDE, его возможности. KDevelop — свободная интегрированная среда разработки для UNIX-подобных операционных систем.
реферат [107,5 K], добавлен 14.04.2014Преимущество построения Web-приложений для поддержки стандартных функций браузера. Настройка проекта Web-приложения. Создание и изменение исходных файлов. Изменение файла JavaServer Pages по умолчанию. Основные проблемы при выполнении Web-приложений.
контрольная работа [362,8 K], добавлен 10.11.2013Подходы и алгоритмы автоматизации тестирования. Анализ специфики работы с локальными и веб-приложениями, внедрение автоматических тестов в процесс контроля качества приложений Global XB, GCube и Thistle. Оптимальный инструмент разработки скриптов.
дипломная работа [1,5 M], добавлен 15.01.2012Знакомство с этапами разработки трёх приложений для системы семейства Linux с использованием языка программирования С++. Анализ особенностей операционной системы Ubuntu 12.10. Характеристика способов тестирования команд с помощью стандартных средств.
контрольная работа [732,1 K], добавлен 06.08.2013Основные принципы написания оконных приложений с графическим интерфейсом на языке Java в среде Eclipse. Управление компоновками компонентов: показ диалоговых окон, вывод графической информации. Структура приложения и размещение элементов интерфейса.
лабораторная работа [1,1 M], добавлен 01.05.2014