3. Первые четыре символа строки CompName составляют слово File. Остальная часть строки содержит имя компонента и после пробела имя файла, содержащего компонент.
4. Если во время выполнения запроса возникает ошибка, то генерируется внутренняя ошибка 102 – ошибка чтения задачника. Управление передается обработчику ошибок. Выполнение запроса прекращается. В противном случае выполнение запроса успешно завершается.
Описание запроса:
Pascal:
Function tbWrite( CompName, FileName : PString) : Logic;
C:
Logic tbWrite(PString CompName, PString FileName)
Описание аргументов:
CompName – указатель на строку символов, содержащую имя задачника.
FileName – имя файла, куда надо записать компонента.
Назначение – сохраняет задачник в файле.
Описание исполнения.
1. Если Error <> 0, то выполнение запроса прекращается.
2. Если в момент получения запроса отсутствует считанный задачник, то возникает ошибка 101 – запрос при отсутствии задачника, управление передается обработчику ошибок, а обработка запроса прекращается.
3. Задачник записывается в файл FileName под именем CompName.
4. Если во время выполнения запроса возникает ошибка, то генерируется внутренняя ошибка 103 – ошибка записи задачника. Управление передается обработчику ошибок. Выполнение запроса прекращается. В противном случае выполнение запроса успешно завершается.
Function tbDelete : Logic;
Logic tbDelete()
Назначение – удаляет из памяти ранее считанный задачник.
2. Если есть открытые сеансы, то возникает ошибка 105 – закрытие задачника при открытых сеансах. Управление передается обработчику ошибок. Выполнение запроса прекращается.
3. Задачник закрывается. Запрос успешно завершается.
К этой группе запросов относятся два запроса, открывающие и закрывающие сеансы работы с задачником.
Function InitSession( NewColor : Color; Oper : Integer; Var Handle: Integer ) : Logic;
Logic InitSession(Color NewColor, Integer Oper, Integer* Handle)
NewColor – цвет для отбора примеров задачника в текущую выборку.
Oper – операция для отбора в текущую выборку. Должна быть одной из констант CEqual, CIn, CInclude, Cxclude, CIntersect
Handle – номер сеанса. Начальное значение не важно. В этом аргументе возвращается номер сеанса.
Назначение – начинает сеанс. Отбирает текущую выборку.
2. Если аргумент Oper является недопустимым, то возникает ошибка 106 – недопустимый код операции при открытии сеанса, управление передается обработчику ошибок. Сеанс не открывается. Возвращается значение ложь.
3. Создается новый сеанс (в одно-сеансовых задачниках просто инициируется сеанс). Номер сеанса заносится в аргумент Handle.
4. Значения аргументов NewColor и Oper сохраняются во внутренних переменных задачника
5. Указателю текущего примера присваивается состояние «до первого примера»
6. InitSession := Next(Handle) – результат выполнения запроса совпадает с результатом выполнения вызванного запроса «Следующий пример».
Procedure EndSession( Handle : Integer );
void EndSession(Integer Handle)
Назначение – закрывает сеанс.
Handle – номер сеанса.
2. Если аргумент Handle не корректен возникает ошибка 107 – неверный номер сеанса. Управление передается обработчику ошибок. Выполнение запроса прекращается.
3. Освобождается вся память, взятая для выполнения сеанса. После этого сеанс завершается.
В эту группу запросов входят запросы позволяющие управлять положением текущего указателя в текущей выборке.
Function Íîìå( Handle : Integer ) : Logic;
Logic Íîìå(Integer Handle)
Назначение – делает текущим первый пример текущей выборки.
3. Указателю на текущий пример присваивается значение «до первого примера»
4. Home := Next(Handle) – результат выполнения запроса совпадает с результатом выполнения вызванного запроса «Следующий»
Function End( Handle : Integer ) : Logic;
Logic End(Integer Handle)
Назначение – делает текущим последний пример текущей выборки.
3. Указателю на текущий пример присваивается значение «после последнего примера»
4. Home := Prev(Handle) – результат выполнения запроса совпадает с результатом выполнения вызванного запроса «Предыдущий»
Function Next( Handle : Integer ) : Logic;
Logic Next(Integer Handle)
Назначение – делает текущим следующий пример текущей выборки.
3. Если значение указателя равно «после последнего примера», то возникает ошибка 108 – переход за конечную границу текущей выборки, и управление передается обработчику ошибок. В случае возврата управления в запрос, происходит немедленный выход из запроса с возвращением значения ложь.
4. Если значение указателя текущего примера равно «до первого примера», то присваиваем указателю адрес первого примера задачника. Если адрес в переменной в задачнике нет примеров, то возникает ошибка 108 – переход за конечную границу текущей выборки, и управление передается обработчику ошибок. В случае возврата управления в запрос, происходит немедленный выход из запроса с возвращением значения ложь. В противном случае переходим к шагу 6
5. Указатель перемещается на следующий пример задачника. Если следующего примера задачника нет, то указателю присваивается значение «после последнего примера».
6. Переходим к шагу 5, если не верно условие:
((GetColor Oper NewColor) And Last,
где Oper и NewColor – аргументы запроса InitSession, которым был открыт данный сеанс.
7. Next := Not Last (Переход к следующему примеру завершился удачно, если указатель не установлен в значение «после последнего примера»).
Function Prev( Handle : Integer ): Logic;
Logic Prev(Integer Handle)
Назначение – делает текущим предыдущий пример текущей выборки.
3. Если значение указателя равно «до первого примера», то возникает ошибка 109 – переход за начальную границу текущей выборки, и управление передается обработчику ошибок. В случае возврата управления в запрос, происходит немедленный выход из запроса с возвращением значения ложь.
4. Если значение указателя равно «после последнего примера», то присваиваем указателю адрес последнего примера задачника. Если в задачнике нет примеров, то возникает ошибка 109 – переход за начальную границу текущей выборки, и управление передается обработчику ошибок. В случае возврата управления в запрос, происходит немедленный выход из запроса с возвращением значения ложь.
5. В противном случае шаг 7.
6. Указатель перемещается на предыдущий пример задачника. Если предыдущего примера задачника нет, то указателю присваивается значение «до первого примера».
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76