Рефераты. Курс лекций по V B 5.0 p> Строковые функции:

= Space (число пробелов) - выдает строку, состоящую из одних пробелов, причем число символов в строке определяется параметром в скобках.

= String (число, строковое выражение $) - формирует строку, содержащую одинаковые символы.

Например, X$=String (10, “z”) - 10z

= Len (строковое выражение) - длина текущей строки с проблемами и напечатанными символами.

= Mid (строка, начало [, длина])

Mid (“Visual Basic”, 1,6) = “Visual”

Mid (“Visual Basic”, 8,6) = “Basic”

Mid (“Visual Basic”, 8) = “Basic”

Пример. Подсчет числа точек в строке

Points % = 0

Length % = Len (Text $)

For I% = 1 to Length %

If Mid (Text $, I%, 1) = “.” then

Points $ = Points $ + 1

End If

Next I%

= Left (cтрока, № до позиции)

= Right (строка, с № позиции)

Функцию Mid можно использовать для изменения содержания внутри текущей строки. Например

X $ = “Best Basic”

Mid (X $,1,5) = “Quick” какое количество символов с какого символа будет взято из новой строки вставляется новая строка поверх части старой

= Insert ([начальная позиция], строка для поиска, подстрока) является ли данная строка частью другой строки, выдает номер позиции, с которой начинается подстрока.

Text $ = “QuickBasic”

X $ = Instr (1, Text $, “Basic”)=6.

Если подстрока не найдена Instr возвращает нулевое значение (False).

Пример.

If Instr (Text $, “(”) then

Print “символ найден”

Else

Print “Не найден”

End If

= LСase, = UСase - преобразует все символы строки в нижний (верхний) регистр

Вместо Lcase $ Ucase$

= Str lomp - для сравнения строк

Пусть X = StrComp (A$, B$) = [pic]

Если A$ или B$ пуста, то х=NULL

Если использовать StrComp (A$,B$,1) - регистр не учитывается, а если
StrComp (A$,B$,0) - регистр учитывается.

= Trim (строка $) - уничтожает пробелы начале и конце строки

LTrim (строка $) - уничтожает пробелы в левой части строки

RTrim(строка $) - уничтожает пробелы в правой части

Все строковые функции, за исключением Mid, не изменяют строку, а создают ее копию и потом с ней работают.

Управляющие структуры в программе

Определенные циклы

For ___ Next

For I% = 1 to 10 (% - целочисленный тип для ускорения работы цикла)

Print I%

Next I%

Цикл завершается, не в тот момент, когда значение счетчика равняется конечному, а когда оно превышает его.

Пример. Печать всеми доступными шрифтами экрана.

Private Sub Form_Click()

Dim I As Integer

For I=0 to Screen.FontCount - 1

FontName = Screen.Fonts (I)

Print “Это шрифт”; Screen.Fonts (I)

Next I

End Sub

Неопределенные циклы

Не выполняются фиксированное число раз. Цикл может выполняться или нет в зависимости от результата, вычисляемого внутри цикла

Do

Выражение

Loop Until выполняется условие

Пример. Проверка пароля

Private Sub Form_Load ()

Do

X$ = InputBox$ (“Пароль ?”)

Loop Until X$ = “VB”

End Sub

Для остановки бесконечного процесса используют клавиши “Break” или
Run|End или закрыть приложение. В программе можно использовать оператор
Exit Do (или Exit For), которые переводят программу к оператору следующему после цикла.

Сложные неопределенные циклы

В неопределенных циклах проверка происходит в конце цикла и счетчика увеличивается еще на 1. Иногда это вызывает лишнее обновление счетчика.
Можно передвинуть проверку условия на начало цикла:

Do Until условие

Тело цикла Выражение

Loop

Do While

Do

Loop Until аналогичен

Do

Loop While условие

Пример.

Do Do

Loop Until N>5 ( Loop While N =0 and N - следующая запись, >
- последующая запись), будет изменять содержимое связанного элемента управления.

Другие свойства элемента управления Data.

Connect - определяет тип БД, например, FoxPro 3.0.

Exclusive = True - запрет доступа к БД, пока пользователь ее не закроет (после этого необходимо ... Share.exe)

ReadOnly (True/False)

RecordSetType - если RecordSet создается с помощью кода или элемента управления.

Метод Refresh- по этому методу все связанные элементы формы обновляют свое состояние в соответствии с текущим состоянием таблицы.

Data1.Refresh.

Он открывает БД, а также устанавливает указатель записи на первую строку в таблицу или сети просмотра.

Свойство RecordSet объекта Data - это воображаемая таблица, к которой подключен элемент Data. Это может быть реальная таблица из RecordSource или сетка просмотра, определяемая SQL-выражением.

Методы RecordSet

AddNew - очистка буфера копирования, содержащего данные, которые должны быть записаны в БД, и перемещение текущей записи в конец. =
Добавление записи, которая становится текущей.

Data1.RecordSet.AddNew.

Delete - удаление текущей записи.

Update - реальная пересылка содержимого буфера копирования в таблицу или dynaset.

Edit - копирует текущую запись в буфер копирования для возможности ее редактирования.

MoveNext - перейти на следующую запись

MovePrevious - перейти на предыдущую запись

MoveLast - перейти на последнюю запись

MoveFirst - перейти на первую запись

BOF - начало файла.

EOF - конец файла.

RecordCount - количество записей с первой до текущей.

Пример. Удаление всех записей в таблице.

Data1.RecordSet.MoveFirst

Do While Data1.RecordSet.EOF

Data1.RecordSet.Delete

Data1.RecordSet.MoveNext

Loop

Свойство RecordSource - источник записей, позволяет помимо таблиц БД использовать операторы SQL, чтобы выделить подмножество записей, удовлетворяющих некоторым условиям. Это позволяет создавать программные элемента dynaset или snapshop.

Ввод следующий фраз:

Select - отбор информации из полей.

From - указывает имя таблицы.

Where - определяет условия выборки.

Group By - для распределения выбранных записей в определенные группы.

Having - определяет условие, которому должна удовлетворять следующая группа записей.

Order By - порядок сортировки выбранных записей.

Например.

Data1.RecordSource = “Select Name, Address From AdressBook ...

Data1.RecordSource = “Select Name, Address From AdressBook

Data1.RecordSource = “Select Name, Address From AdressBook Where Name
= ‘Иванов’‘’

“ . . . . Like ‘’Иван” (Ивасев, Иваницкий, Иванченко...)

Select Employers.Dept, MName From Supervisors, Employers Where
Employers.Dept = Supervisiors.Dept

Можно использовать переменные

Data1.RecordSource = “Select * From Telephone Where Name = ‘ “& A &”’”

Text1.Text

В фразе Where можно использовать конечные операции And, Or, Not для соединения нескольких выражений или операции сравнения =, ,
Between, Like, In (для записей в БД)

Например

Data1.RecordSource = “Select * From Products

Where Tovar in (Select Tovar From_ Details Where Price>=25)”

Помимо запросов SQL можно изменять (Update, Set - новое значение
Where), добавлять (Insert into), удалять (Delete From) записи в таблице.

Например

Dim A As String

A = “Update Orders”

A = A + “Set Amount = Amount * 1.1, Cast = Cast * 0.97”

A = A+ ”Where Order = ‘Цемент’”

Data1.Database.Execute ... Query - запрос с воздействием

Свойство Value

Можно ссылаться на некоторое поле текущей записи, даже если на форме нет связанного элемента.

Например

Sub

Dim A As String

A = Data1.RecordSet.Fields(“Name”).Value

MsgBox “Фамилия: ” + A

End Sub

Объектная модель DAO

Объектная модель DAO - объектно - ориентированный интерфейс процессора БД Jet . Это иерархия классов, которые являются логическим представлением реляционной модели базы данных. Эти классы используются для создания объектов доступа к данным, обращающихся к конкретной базе данных.

DBEngine

Workspace

Database

TableDef QueryDef Recordset Container
Relation

Field Field Field
Document Field

Index Parameter

Error Field

Рис. Фрагмент объектной иерархии DAO.

Наличие объектной иерархии означает, что объекты могут содержать другие объекты, которые, в свою очередь, могут содержать другие объекты.
Эта объектное включение реализуется через специальный вид объекта- коллекцию. Основное назначение объекта- коллекции - содержать и группировать другие объекты. Все объекты, содержащиеся в данной коллекции, одного вида.

Элементы в иерархии DAO фактически классы, а не объекты. Это макеты для объектов, создаваемых при формировании приложения базы данных, Класс подобен типу данных в том смысле, что он описывает, к какому виду объекта происходит обращение. Например, в объявлении Dim Ws As устанавливается, что переменная Ws будет служить ссылкой на объект класса Workspace.

Наверху иерархии - объект DBEngine, непосредственно процессор базы данных MS Jet. Он является владельцем коллекции Workspaces (рабочая область), которая содержит объекты Workspace. Каждый объект Workspace включает коллекцию Databases, которая содержит один или больше объектов
Database. Каждый объект Database включает коллекцию TableDefs, которая содержит один или больше объектов TableDef (определение таблицы) и т.д.

Объекты члена коллекции индексируются, начиная с 0 и могут быть доступны через этот индекс. Например, первый объект TableDef объекта
Database, именуемого Database1, будет адресоваться как Database1. TableDefs
(0). Второй TableDef того же объекта Database - Database1. TableDefs (1) и т.д. Объекты в иерархии идентифицируются полным путем через вложенные коллекции, к которым они принадлежат. Например,

DBEngine. Workspaces(0). Databases(0). ss TableDefs
(0).Fields(“Customer”) адресуется к полю Customer в первом TableDef коллекции TableDefs первого Database коллекции Databases первого Workspace коллекции Workspaces объекта DBEngine. Кроме того, для коллекции Fields можно вместо индекса использовать свойство Name объекта Field коллекции. При явном обращении к члену коллекции по именивместо точки используется восклицательный знак.
Например, ss

TableDefs (0).Fields(“Customer”) эквивалентно

TableDefs (0).Fields!Customer.

Большинство объектов доступа к данным имеет умолчательные коллекции.
Это позволяет упрощать программный код. Например, умолчательная коллекция, которую содержит объект Recordset - коллекция Fields. Например, все 3 записи эквивалентны:

Cust= Recordset1! Customer

Cust= Recordset1 .Fields!Customer

Cust= Recordset1 . Fields(“Customer”).

Страницы: 1, 2, 3



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.