Cannot update read-only view RASXODDOC
INSERT INTO Rasxod (KOD_RASH,DATA_RASH,KOLVO,STOIM,KOD_TOVAR,KOD_POKUP) VALUES (20,'23.05.02',110,1100,4,5); SELECT * FROM RasxodDoc ORDER BY KOD_RASH; См. результат RDOC.DOC
SELECT * FROM Rasxod ORDER BY KOD_RASH; KOD_RASH DATA_RASH KOLVO STOIM KOD_TOVAR KOD_POKUP =========== =========== =========== =========== =========== =========== 2 12-APR-1998 10 120 1 6 5 12-JUL-2000 12 120 4 5 6 13-SEP-2000 5 25 2 2 7 15-SEP-2000 1 10 6 6 8 16-JUL-2000 7 70 6 1 9 23-MAY-2000 11 110 4 1 11 12-APR-2003 10 50 2 6 20 23-MAY-2002 110 1100 4 5
CREATE VIEW RasxodNoKz AS SELECT * FROM RASXOD WHERE ('Казань'<>(SELECT GOROD FROM POKUPATELI WHERE (RASXOD.KOD_POKUP=POKUPATELI.KOD_POKUP))); SELECT * FROM RasxodNoKz ORDER BY KOD_RASH;
KOD_RASH DATA_RASH KOLVO STOIM KOD_TOVAR KOD_POKUP =========== =========== =========== =========== =========== =========== 2 12-APR-1998 10 120 1 6 5 12-JUL-2000 12 120 4 5 6 13-SEP-2000 5 25 2 2 7 15-SEP-2000 1 10 6 6 11 12-APR-2003 10 50 2 6 20 23-MAY-2002 110 1100 4 5 INSERT INTO RasxodNoKz (KOD_RASH,DATA_RASH,KOLVO,STOIM,KOD_TOVAR,KOD_POKUP) VALUES (21,'23.05.02',120,1200,4,5);
SELECT * FROM RasxodNoKz ORDER BY KOD_RASH; KOD_RASH DATA_RASH KOLVO STOIM KOD_TOVAR KOD_POKUP =========== =========== =========== =========== =========== =========== 2 12-APR-1998 10 120 1 6 5 12-JUL-2000 12 120 4 5 6 13-SEP-2000 5 25 2 2 7 15-SEP-2000 1 10 6 6 11 12-APR-2003 10 50 2 6 20 23-MAY-2002 110 1100 4 5 21 23-MAY-2002 120 1200 4 5 SELECT * FROM Rasxod ORDER BY KOD_RASH; KOD_RASH DATA_RASH KOLVO STOIM KOD_TOVAR KOD_POKUP =========== =========== =========== =========== =========== =========== 2 12-APR-1998 10 120 1 6 5 12-JUL-2000 12 120 4 5 6 13-SEP-2000 5 25 2 2 7 15-SEP-2000 1 10 6 6 8 16-JUL-2000 7 70 6 1 9 23-MAY-2000 11 110 4 1 11 12-APR-2003 10 50 2 6 20 23-MAY-2002 110 1100 4 5 21 23-MAY-2002 120 1200 4 5
EXIT; ¨ Представление RasxodDoc для каждого документа о покупке содержит полную пользовательскую информацию – включает реквизиты покупателя и товара вместо их кодов. Отметим, что реквизит «стоимость покупки» вычислим и определен в этом представлении (KOLVO_ZENA)... использование хранимого значения этого реквизита в поле STOIM таблицы RASXOD требует обоснования... К сожалению, так определенное представление не является модифицируемым, сообщение об ошибке к первому INSERT это иллюстрирует. Второй оператор INSERT иллюстрирует специфику представлений – изменение внесено в таблицу Rasxod, но оно отобразилось и в RasxodDoc.
¨ Представление RasxodNoKz имеет такие же поля, как и таблица Rasxod, но оно включает строки только о покупках не Казанских покупателей. RasxodNoKz – модифицируемое представление, это иллюстрирует третий INSERT, который добавляет строку в RasxodNoKz. Эта строка появляется и в таблице Rasxod, что опять же иллюстрирует специфику представлений.
3.Администрирование базы данных. Мощность и гибкость Delphi при работе с базами данных основана на низкоуровневом ядре - процессоре баз данных Borland Database Engine (BDE). BDE представляет собой совокупность динамических библиотек и драйверов, позволяющих осуществлять доступ к данным как с использованием традиционного record-ориентированного (навигационного) подхода (обрабатывается отдельно каждая запись таблицы), так и с использованием set-ориентированного подхода, используемого в SQL-серверах баз данных(одновременно обрабатывается группа записей). Приложение через BDE передает запрос к базе данных и получает требуемые данные. Кроме BDE, Delphi позволяет осуществлять доступ к базам данных, используя технологию (и, соответственно, драйверы) Open DataBase Connectivity (ODBC) фирмы Microsoft. Но, как показывает практика, производительность систем с использованием BDE гораздо выше, чем оных при использовании ODBC. ODBC драйвера работают через специальный «ODBC socket», который позволяет встраивать их в BDE. Все инструментальные средства баз данных Borland - Paradox, dBase, Database Desktop - используют BDE. Все особенности, имеющиеся в Paradox или dBase, «наследуются» BDE, и поэтому этими же особенностями обладает и Delphi. Таблицы сохраняются в базе данных. Некоторые СУБД сохраняют базу данных в виде нескольких отдельных файлов, представляющих собой таблицы (в основном, все локальные СУБД), в то время как другие состоят из одного файла, который содержит в себе все таблицы и индексы. InterBase сохраняет все таблицы в одном файле, имеющем расширение .GDB, поэтому этот файл и есть база данных InterBase.
Удобно не указывать путь доступа к таблицам базы данных, а использовать для этого некий заменитель - псевдоним, называемый алиасом. Он сохраняется в отдельном конфигурационном файле и позволяет исключить из программы прямое указание пути доступа к базе данных. Такой подход дает возможность располагать данные в любом месте, не перекомпилируя при этом программу. Кроме пути доступа, при алиасе указываются тип базы данных, языковый драйвер и много другой управляющей информации. Поэтому использование алиасов позволяет легко переходить от локальных баз данных к SQL-серверным базам (естественно, при выполнении требований разделения приложения на клиентскую и серверную части). Для создания алиаса необходимо запустить утилиту конфигурации BDE (BDE administrator, программу BDEADMIN.EXE), находящуюся в директории, в котором располагаются динамические библиотеки BDE. После запуска необходимо выбрать режим создания нового алиаса (пункт меню Object\New), выбрать в появившемся списке драйверов драйвер IntrBase и настроить следующие пункты появившейся формы: ¨ LangDriver – Pdox Ansi Cyrillic(определяет драйвер языка, для кодировки символов, для обработки русской кириллицы в Ansi-кодировке необходимо использовать драйвер Pdox Ansi Cyrillic) ¨ Server Name - C:\UCHBASE\SKLAD\Ib_sklad.gdb(полный путь к базе данных) ¨ User Name – SYSDBA(системное имя пользователя) В правой части экрана необходимо заменить стандартный алиас (псевдоним) IntrBase на свой (в примере использован алиас Al_Sklad).
После настройки параметров необходимо подтвердить или отменить сделанные изменения, с использованием команд Apply и Cancel главного или контекстного меню. Слева от объектов, имеющих неутвержденные изменения, загорается зеленый треугольник.
Читайте также: Воспользуйтесь поиском по сайту: ![]() ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|