Анимация
JavaScript


Главная  Библионтека 

0 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 77 78 79 80 81 82 83 84 85 86 87 88 89 [ 90 ] 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146

Data i Documentsl Classes

Code

= 1 Databases

0" 0 auto store

= 0 Sergey

Tables

riPj? Local Views

> Remote Views

Connections

Stored Procedures

Ш Free Tables

= nP Queries

queryS

Other New...

Add...

Modity

Browse

Remove...

Build...

Description: Path:

Рис. 8.4.

После этого появится диалоговое окно, в котором вам будет предложен выбор среди имеющихся в текущей базе данных соединений или среди источников данных, установленных на вашем компьютере. При этом вы можете создать новое соединение и затем снова вернуться в текущее диалоговое окно. С источниками данных дело обстоит хуже, но в конце концов мы работаем в многозадачной среде. Загрузите ODBC, создайте нужный источник данных, естественно при наличии на компьютере необходимого драйвера, и снова переключитесь в Visual FoxPro.

В зависимости от того, к данным какого формата вы хотите обратиться, будут доступны либо таблицы из конкретного каталога, либо из конкретной базы данных. В случае с SQL Server и Microsoft Access это будут таблицы из баз данных, которые вы укажете в источнике данных.

После того как вы выберете необходимое вам соединение или источник данных и нажмете кнопку OK, станет доступен Конструктор представлений вместе с диалогом по выбору таблиц из внешней базы данных, к которой вы присоединились. В остальном различий с Конструктором локальных представлений нет.

Если необходимо смешивать локальные данные с внешними, то надо построить по крайней мере два представления. Первое - это представление, которое будет состоять из данных на сервере, а второе будет состоять из данных из локальной таблицы или таблиц и полученного на первом этапе представления. Для того что ваши изменения после модификации данных в полученном представлении второго уровня отображались на сервере, необходимо использовать функцию TABLEUPDATE() дважды - вначале в представлении второго уровня, затем в представлении первого уровня. Другой способ - это последовательно закрыть представление второго уровня, а затем первого.

Выше были описаны два способа работы с внешними данными, SQL pass-through и внешние представления. SQL pass-through требует большего объема программирования, но в то же время, используя эту технологию, вы практически не ограничены в своих возможностях по управлению внешними данными. Внешние представления легче использовать, значительно меньше объем программирования, но с их помощью можно только модифицировать данные: редактировать, удалять и добавлять записи.

Любой набор данных или курсор, который вы получите, можно просматривать с помощью окна Browse или объекта Grid. Говоря другими словами, вся эта технология тесно интегрирована. Объекты Grid или Browse сами по себе можно считать средствами управлениями данными, по гибкости не имеющими аналогов среди других популярных систем. Можете проверить, что скорость доступа к данным уменьшается незначительно, даже если эти объекты активны. Все замедление отнесите на счет вашего видеоадаптера, а объекты достаточно быстро отображают искомую информацию.

Но все-таки у вас могут возникнуть потребности выбирать данные еще быстрее, по крайней мере будет казаться, что вы можете этого добиться, если залезете в глубь процесса технологии ODBC или какой-либо другой, в случае если ее функции будут доступны с помощью какого-нибудь API. Тогда вспомните, что Visual FoxPro поддерживает вызовы DLL, что, впрочем, делали и его недавние предшественники, правда, посредством немного более сложных манипуляций.

Поэтому в следующем разделе при обсуждении вопросов взаимодействия Access и Visual Basic с внешними данными все, что касается доступа к данным через ODBC API, RDO (объекты доступа к внешним данным), SQL-DMO, в равной мере относится и к Visual FoxPro.



Опоена I

2\ Тдил- [сеойстео]: ~

"3 I

noyMOntinj

ifirraHoehH.

кнопку "Etrij

Найдено фа

MiirrOiuflAc-cs;*

dEAE fll dEftSE W dEftSE S

I файлов. Для икдойабления -запцстнге npofpii.irAy йигь>г41№«л е Флаж)йк Лоот х данным к гажкмтв

Рис. 8.5. Диалоговое окно Связь в Access 7.0

После выбора этого элемента перед вами возникнет следующее диалоговое окно, в котором вы увидите список всех источников данных (Data Source), доступных на компьютере. Если нужного источника данных в списке нет, то вы с помощью кнопки New легко можете перейти в Администратор ODBC и создать требуемый источник (рис. 8.6).

8.3. Использование Access и Visual Basic для разработки клиентского приложения

Access и Visual Basic предоставляют разнообразные средства для работы с внешними данными.

В этом параграфе мы кратко расскажем об этих средствах, снабдив изложение небольшими примерами, которые вы можете развить до более высокой степени функциональности.

Технологии, доступные как в обоих продуктах, так и в каждом по отдельности, будут описываться в зависимости от степени сложности, а не отдельно для каждого пакета. Это делается специально, так как переход от одной среды разработки к другой достаточно легок в связи с тем, что в основе этих продуктов лежит один язык.

При работе в Microsoft Access самый простой способ обработки информации с SQL Server -использование присоединенных таблиц. Для этого используйте команду Внешние данные из меню Файл. Из двух опций Импорт и Связь с таблицами нас интересует вторая, так как после импорта способы передачи обновленной информации на сервер не так легки, как во втором случае. После того как вы выберете команду Связь с таблицами, вы попадете в диалоговое окно Связь. Главный элемент на первом этапе для нас - это список Тип файла. В этом списке перечисляются все типы файлов, с которыми работает процессор баз данных Microsoft Access, достаточно впечатляющий по количеству поддерживаемых СУБД различных версий. Но нас интересует элемент, который расширяет этот список еще значительнее. Как вы уже догадались, этот элемент называется базы данных ODBC (рис. 8.5).



SQL Data Sources

Select Data Source:

FoodTwo

Meandpdx

mvfox

myteach

myvvod

newlycreatedaccessbase?. Sergey

New...

Cancel

Рис. 8.6.

После выбора источника данных в следующем диалоговом окне вам останется только выбрать из списка доступных таблиц те, которые вы хотите присоединить. При этом обратите внимание, что вы можете выбрать несколько или даже все имеющиеся таблицы. На этом процесс присоединения закончен. В случае отсутствия в присоединяемой таблице уникального индекса вам будет предложено выбрать это поле самостоятельно. Это делается для того, чтобы процессор баз данных Jet Access мог однозначно передавать изменения в данных на сервер. Поэтому тщательно следите, чтобы поле, определяющее уникальность записи, всегда присутствовало в ваших таблицах. Теперь вы можете работать с внешней таблицей так же, как и с таблицей самого Access. Вам будут недоступны только операции по модификации структур таблиц непосредственно визуальными средствами Access. Обратите внимание, что в предыдущем предложении сказано "непосредственно визуальными средствами". Потому что способы изменить структуру таблиц на сервере у вас еще остаются.

Среди дополнений (Add-In) Visual Basic присутствует Data Manager. Если на компьютере установлен Visual Basic, то в качестве упражнения предлагаем проделать аналогичную манипуляцию с присоединением внешних таблиц к базе данных с помощью Data Manager. В случае затруднений обратите внимание на рис. 8.7-8.9.

Та Ы е s/Q U е гу D ef S


Рис. 8.7.



0 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 77 78 79 80 81 82 83 84 85 86 87 88 89 [ 90 ] 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146