Главная / Программирование /
Программирование баз данных в Delphi / Тест 22
Программирование баз данных в Delphi - тест 22
Упражнение 1:
Номер 1
В базе данных InterBase
имеется таблица Table_Firma
с полями "FAMILIYA", "IMYA" и "OTCHESTVO". Все поля имеют тип VARCHAR(20)
и могут иметь значение NULL
. Требуется вставить в таблицу новую запись. Укажите правильные варианты вставки записи:
Ответ:
 (1) INSERT INTO Table_Firma(Familiya, Imya) VALUES('Петров', 'Петр')
 
 (2) INSERT INTO Table_Firma VALUES('Петров', 'Петр')
 
 (3) INSERT INTO Table_Firma VALUES('Петров', 'Петр', 'Петрович')
 
 (4) INSERT INTO Table_Firma(Familiya, Imya) VALUES('Петров', 'Петр', 'Петрович')
 
 (5) INSERT INTO Table_Firma VALUES('Петров', 'Петр', NULL)
 
Номер 2
В базе данных InterBase
имеется таблица Table_Firma с полями "FAMILIYA", "IMYA" и "OTCHESTVO". Все поля имеют тип VARCHAR(20)
и могут иметь значение NULL
. Требуется вставить в таблицу новую запись. Укажите неправильные варианты вставки записи:
Ответ:
 (1) INSERT INTO Table_Firma(Familiya, Imya) VALUES('Петров', 'Петр')
 
 (2) INSERT INTO Table_Firma VALUES('Петров', 'Петр')
 
 (3) INSERT INTO Table_Firma VALUES('Петров', 'Петр', 'Петрович')
 
 (4) INSERT INTO Table_Firma(Familiya, Imya) VALUES('Петров', 'Петр', 'Петрович')
 
 (5) INSERT INTO Table_Firma VALUES('Петров', 'Петр', NULL)
 
Номер 3
Можно ли в таблицу InterBase
добавить одним оператором INSERT INTO
больше одной записи из другой таблицы, и если да, то как?
Ответ:
 (1) нет, оператор INSERT
может вставить только одну запись.
 
 (2) да, для этого в параметре VALUES
вместо списка столбцов нужно использовать встроенный оператор SELECT
.
 
 (3) да, для этого вместо параметра VALUES
нужно использовать встроенный оператор SELECT
.
 
Упражнение 2:
Номер 1
В базе данных InterBase
имеется таблица Table_Firma с полями "FAMILIYA", "IMYA" и "OTCHESTVO". Все поля имеют тип VARCHAR(20)
и могут иметь значение NULL
. Требуется изменить запись таблицы, в поле "FAMILIYA" которой имеется значение "Петров". Укажите правильные варианты изменения записи:
Ответ:
 (1) UPDATE Table_Firma SET Imya = 'Григорий'
 
 (2) UPDATE Table_Firma(Familiya, Imya) SET 'Григорьев', 'Григорий'
 
 (3) UPDATE Table_Firma SET Imya = 'Григорий' WHERE Familiya = 'Петров'
 
 (4) UPDATE Table_Firma SET Familiya='Григорьев', Imya = 'Григорий' WHERE Familiya = 'Петров'
 
Номер 2
В базе данных InterBase
имеется таблица Table_Firma с полями "FAMILIYA", "IMYA" и "OTCHESTVO". Все поля имеют тип VARCHAR(20)
и могут иметь значение NULL
. Требуется изменить запись таблицы, в поле "FAMILIYA" которой имеется значение "Петров". Укажите неправильные варианты изменения записи:
Ответ:
 (1) UPDATE Table_Firma SET Imya = 'Григорий'
 
 (2) UPDATE Table_Firma(Familiya, Imya) SET 'Григорьев', 'Григорий'
 
 (3) UPDATE Table_Firma SET Imya = 'Григорий' WHERE Familiya = 'Петров'
 
 (4) UPDATE Table_Firma SET Familiya='Григорьев', Imya = 'Григорий' WHERE Familiya = 'Петров'
 
Номер 3
Можно ли в InterBase
одним оператором UPDATE
изменить значения всех записей таблицы, и если да, то как?
Ответ:
 (1) нет, оператор UPDATE
может изменить только одну запись.
 
 (2) да, если в операторе UPDATE
не указывать параметр выборки WHERE
.
 
 (3) да, если в операторе UPDATE
не указывать параметр SET
.
 
Упражнение 3:
Номер 1
Можно ли в InterBase
одним оператором DELETE
удалить все записи таблицы, и если да, то как?
Ответ:
 (1) нет, оператор DELETE
может удалить только одну запись.
 
 (2) да, если в операторе DELETE
не указывать параметр WHERE
.
 
 (3) нет, если таблица имеет поля NOT NULL
.
 
 (4) нет, если в таблице имеется первичный ключ PRIMARY KEY
.
 
Номер 2
В базе данных InterBase
имеется таблица Table_Firma с полями "FAMILIYA", "IMYA" и "OTCHESTVO". Требуется удалить запись таблицы, в поле "FAMILIYA" которой имеется значение "Петров". Укажите правильный вариант удаления записи:
Ответ:
 (1) DELETE Familiya = 'Петров' FROM Table_Firma.
 
 (2) DELETE FROM Table_Firma WHERE Familiya = 'Петров'.
 
 (3) DELETE FROM Table_Firma (Familiya = 'Петров').
 
Номер 3
В базе данных InterBase
имеется таблица Table_Firma с полями "FAMILIYA", "IMYA" и "OTCHESTVO". Требуется удалить запись таблицы, в поле "FAMILIYA" которой имеется значение "Петров". Укажите неправильные варианты удаления записи:
Ответ:
 (1) DELETE Familiya = 'Петров' FROM Table_Firma.
 
 (2) DELETE FROM Table_Firma WHERE Familiya = 'Петров'.
 
 (3) DELETE FROM Table_Firma (Familiya = 'Петров').
 
Упражнение 4:
Номер 1
Для чего в компонентах связи с базой данных InterBase
используется дополнительный параметр lc_ctype
?
Ответ:
 (1) для указания типа связи чтение/запись или только/чтение.
 
 (2) для указания кодировки символов.
 
 (3) для указания, что связь должна быть в монопольном режиме.
 
Номер 2
Выберите из списка компонентов связи с базой данных InterBase
компонент, в параметрах которого для корректной работы с русскими символами нужно использовать дополнительный параметр lc_ctype
?
Ответ:
 (1) TDatabase (BDE).
 
 (2) TSQLConnection (dbExpress).
 
 (3) TIBDatabase (IBX).
 
Номер 3
Выберите из списка компонентов связи с базой данных InterBase
компоненты, в параметрах которых для корректной работы с русскими символами не нужно использовать дополнительный параметр lc_ctype
?
Ответ:
 (1) TDatabase (BDE).
 
 (2) TSQLConnection (dbExpress).
 
 (3) TIBDatabase (IBX).
 
Упражнение 5:
Номер 1
В базе данных InterBase
имеется таблица с ключевым полем. Автоинкремент этого поля обеспечивается генератором и триггером BEFORE INSERT
. Для связи с таблицей мы используем механизм BDE
и табличный компонент TTable
. Можно ли редактировать таблицу?
Ответ:
 (1) любое редактирование таблиц InterBase
компонентом TTable
невозможно, произойдет ошибка; для этого следует использовать компонент TQuery
.
 
 (2) можно удалить или исправить существующую запись; при попытке добавления новой записи выйдет ошибка, если не заполнить вручную автоинкрементное поле.
 
 (3) можно добавить новую запись или редактировать существующую; при попытке удаления записи выйдет ошибка.
 
 (4) можно добавлять или удалять записи, редактировать их нельзя.
 
Номер 2
Для работы с базой данных InterBase
мы используем табличный компонент TTable
механизма BDE
. У редактируемой таблицы имеется триггер BEFORE INSERT
. Когда сработает этот триггер, если мы добавим новую запись?
Ответ:
 (1) триггер вообще не сработает.
 
 (2) сразу после выполнения метода Append
или Insert
компонента TTable
.
 
 (3) после выполнения метода Post
компонента TTable
.
 
 (4) до выполнения метода Post
компонента TTable
.
 
Номер 3
Для работы с базой данных InterBase
мы используем табличный компонент TTable
механизма BDE
. У редактируемой таблицы имеется ключевое автоинкрементное поле, работу которого обеспечивает триггер BEFORE INSERT
и генератор. В каком случае мы сможем без ошибок добавить новую запись компонентом TTable
, не нарушая работы генератора?
Ответ:
 (1) это вообще невозможно, для добавления новой записи нужен компонент TQuery
.
 
 (2) в любом случае новая запись будет добавлена без ошибок, автоинкремент будет обеспечен генератором и триггером.
 
 (3) в случае, когда мы вначале удалили запись, а затем добавили новую, с таким же значением в ключевом поле, заполненным вручную.
 
Упражнение 6:
Номер 1
Выберите механизм подключения к базе данных InterBase
, который требует обязательного использования хотя бы одного компонента транзакций:
Ответ:
 (1) BDE
 
 (2) dbExpress
 
 (3) IBX
 
Номер 2
Выберите механизмы подключения к базе данных InterBase
, которые не используют специальные компоненты транзакций:
Ответ:
 (1) BDE
 
 (2) dbExpress
 
 (3) IBX
 
Номер 3
Сколько компонентов IBTransaction
нужно использовать в приложении, которое соединяется с базой данных InterBase
механизмом IBX
?
Ответ:
 (1) как минимум один компонент.
 
 (2) обязательно по одному компоненту на каждый набор данных.
 
 (3) компонент может вообще не присутствовать в приложении.
 
 (4) компонент используется только с наборами данных IBQuery
, по одному на каждый НД.