Анимация
JavaScript
|
Главная Библионтека .i. Options File Locations View Forms General Projects Edit Cortrols I ln:erna:ional Data !....P!]n°b.D3ta -RenoteViewDefaultsr-~ Share Connection Fetch Memo SQL Updates: Criteria: Keu and Modified FijJ - Method:[sQL Update Records to Fetch at a Time: MaimLTi Records to Fetch: Uss Memo for Fieds Rtuuidi tu EdtuhUpUdte. 31" All 3 IAII !:efautsr- -Connedion I Asijnnhrr nni js £yen jl nn Г Dispbi;\yarnings EatcT Pr Kesshg R Automati Show Loin: Connection "imeoLit (?ec): idle Tinreout (min) QL-eriJ Timeout (sec): Onl/WheiN= J Wait Time (ms): ;TrarsactiDiis Se: as DefatJt j Cancel I Help -Глобальная yqiaHopKcepfttT- i.i-Ddat? Type Hio 6 ал ь H a я ycTs H oe Ejg и ra VVTi e nelyi: e Рис. 7.5. Установка параметров обновления данных Мы уже говорили, что создать представление можно программным путем с помощью команды CREATE SQL VIEW. Свойства, с помощью которых регулируются данные в исходных таблицах, устанавливаются также программным путем с помощью функций DBSETPROP() и CURSORSETPROP(). Узнать значения установленных свойств можно с помощью функций с похожими названиями: DBGETPROP() и CURSORGETPROP(). Отличие их в том, что функции CURSORGETPROP() и CURSORSETPROP() работают с представлениями, которые в данный момент используются в какой-либо из рабочих областей. Функции DBGETPROP() и DBSETPROP() устанавливают свойства для любого представления, которое содержится в текущей базе данных. В приводимой ниже табл. 7.1 обратите внимание на то, что многие свойства можно установить только программным путем. Свойства, которые приводятся в табл. 7.1, относятся к полям представления. То есть вторым аргументом функции DBSETPROP() или функции DBGETPROP() будет "FIELD". Например: DBSETPROP("account and customer.account","FIELD","comment",; "Используйте это поле для ввода номера счета") Последние две кнопки выбора позволяют вам решить, как будут производиться изменения в исходной таблице: путем удаления и вставки новой записи или путем модификации записи. Второй путь предпочтительнее, так как результат достигается много быстрее. Свойства WhereType и UpdateType можно установить глобально для всего Visual FoxPro, используя диалоговое окно Options на странице Remote Data. Там есть два раскрывающихся списка, объединенных общим заголовком SQL Updates, - Criteria и Method, как это показано на рис. 7.5. Таблица Свойство Caption Comment DataType Default value KeyField RuleExpression C RuleText Updatable UpdateName 7.1 Свойства полей представлений Тип Описание C Заголовок поля. Доступно для чтения и записи. С Комментарий поля. Доступно для чтения и записи. С Данное свойство игнорируется для локальных представлений. Доступно для чтения-записи при работе с внешними представлениями. С Значение по умолчанию для поля. Доступно для чтения и записи. L Содержит .T.,, если поле указано как ключевое индексное выражение. Данное свойство можно установить визуально в Конструкторе представлений на странице Update Criteria. Доступно для чтения и записи. Правило проверки ввода уровня поля. Доступно для чтения и записи. C Сообщение, выводимое на экран в случае нарушении правил проверки ввода уровня поля. Доступно для чтения и записи. L Содержит истину (.T.),, если поле доступно для изменений. Это свойство можно установить визуально с помощью Конструктора представлений на странице Update Criteria. Доступно для чтения и записи. C Название поля, которое используется, когда поле модифицируется на таблице внешнего формата. По умолчанию совпадает с именем поля во внешней таблице. Доступно для чтения и записи. В следующей таблице приводятся некоторые свойства представления, которые можно использовать как для локальных, так и внешних представлений. Для их чтения и изменения необходимо использовать функции DBGETPROP() и DBSETPROP() со вторым аргументом VIEW. В следующем примере мы устанавливаем свойство Comment для всего представления, а затем выводим его на экран: =DBSETPROP("account and customer","view", "Comment", "Предназначено для корректировки поставок по счетам") ? DBGETPROP("account and customer","view", "Comment") Таблица 7.2. Свойства полей для представлений Свойство Тип Описание Comment C Текст комментария представления. Доступно для чтения и записи. FetchMemo L Равняется .T., если данные из полей примечаний или типа General выбираются с результатами представления. Имеет смысл ставить значение Обратите особое внимание, что название поля приводится вместе с названием представления "account and customer.account". В противном случае Visual FoxPro не сможет найти это поле. этого поля в .F. В таком случае данные поля этого типа будут выводиться только при прямом обращении к ним. По умолчанию имеет значение .T.. Доступно для чтения и записи. MaxRecords N Устанавливает максимальное значение, которое выбирается в представлении. По умолчанию равно 1, то есть выбираются все записи. Если установить это значение равным 0, то не будут выводиться никакие результаты. Доступно для чтения и записи. C Правило проверки вводимых данных уровня записи. Доступно для чтения и записи. C Сообщение, выводимое на экран при нарушении правил проверки ввода уровня записи. Доступно для чтения и записи. L Eсли установлено в .T., то изменения будут посылаться в исходные таблицы. Доступно для чтения и записи. N Равно 1, если представление использует только локальные таблицы. Равно 2, если представление использует внешние таблицы. Доступно только для чтения. C Возвращает строку запроса, который выбирает данные для представления. Доступно только для чтения. C Разделенный пробелом список таблиц, участвующих в выборке представления Доступно только для чтения. UpdateType N Равняется 1, если старые данные в исходных таблицах модифицируются, 2 - если данные вначале удаляются, а затем добавляются. Доступно для чтения и записи. WhereType N Определяет, по какому принципу будет происходить поиск записи в исходных таблицах при модификации данных в представлении. 1 - Только по ключевым полям. Можно использовать DB KEY из Foxpro.h 2 - По ключевым полям и полям, разрешенным для изменений. Можно использовать DB KEYANDUPDATABLE из Foxpro.h 3 - По ключевым и измененным полям. Используйте DB KEYANDMODIFIED из Foxpro.h 4 - Используется только для внешних представлений. Сравнение проводится по полю TIMESTAMP, если оно поддерживается во внешнем представлении. RuleExpression RuleText SendUpdates SourceType SQL Tables К открытому в текущий момент представлению для установки его свойств применяется функция CURSORSETPROP(). И, соответственно, функция CURSORGETPROP() для чтения свойств представления. Обращаем внимание, что эти две функции работают с любыми курсорами, открытыми в любой рабочей области. Курсоры могут отображать как данные из представлений, так и данные из таблиц. При этом таблицы могут быть свободными, то есть не принадлежать никакой из баз данных. Многие свойства можно изменять как с помощью функции DBSETPROP(), так и с помощью функции CURSORSETPROP(). Есть некоторые свойства, которые характерны только для курсора, такие как Database, которое доступно только для чтения и указывает полный путь к базе данных, служащей контейнером для объекта, данные из которого отображает курсор. Если в свойствах полей представления не указаны ключевые и разрешенные для модификации поля, то можно указать их для уже активного курсора. Например, вы можете проверить для активного курсора представления с помощью функции CURSORGETPROP() наличие ключевого поля и в случае отсутствия установить: USE Account and customer If LEN(ALLT(CURSORGETPROP("keyfieldlist"))) = 0 =CURSORSETPROP("keyfieldlist",; 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 |