Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы MySQL.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
448.25 Кб
Скачать

3. Компиляция запроса происходят непосредственно перед его вызовом. Т.Е. Обо всех синтаксических ошибках вы узнаете только в этот момент.

3. Методы компонента adoTable. Привести примеры.

TADOTable.Locate(const AnsiString KeyFields, const System::Variant &KeyValues, TLocateOptions Options); Ищет в ключевом поле, заданном в переменной KeyFields, значение переменной KeyValues. В случае если совпадение найдено, найденная запись становится текущей, т.е. курсор устанавливается на нее. В переменной Options указывается как преобразовывать значения для поиска может быть: loCaseInsensitive или loPartialKey.

TADOTable.Seek(const Variant &KeyValues, TSeekOption SeekOption =soFirstEQ); Используется при поиске с помощью индексов. SeekOption определяет как поступать если запись найдена: soFirstEQ, soLastEQ, soAfterEQ , soAfter, soBeforeEQ, soBefore. Подробное описание их вы найдете в мануале по Delphi.

TADOTable.LookUp (const AnsiString KeyFields, const Variant &KeyValues, const AnsiString ResultFields); Возвращает в качестве результата набор типа Variant со значениями всех найденных значений, удовлетворяющих запросу.

Существует еще несколько способов поиска информации в таблице: перебор всех элементов вручную, использование FindFirst, Next и т.д. Но мы перечислили только основные и необходимые, на мой взгляд, методы.

Приведем пример использования метода Locate. Поместите на форму компонент TComboBox, TButton и TEdit, занесите в КомбоБокс названия всех полей вашей таблицы (для этого используется свойство Items). В Edit мы будем вводить значение необходимое для поиска, а из ComboBox выбирать поле, по которому осуществлять поиск.

Теперь дважды щелкните по Button или выберите событие OnClick в инспекторе объектов.

Впишете в него следующий код:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

ADOTable1->Locate(ComboBox1->Text,Edit1->Text,[loCaseInsensitive]);

//здесь по указанному в Combo полю ищем значении из Edit. Все просто

//loCaseInsensitive - это поиск без ориентации на строчные и прописные буквы

}

Видите, для организации простого поиска достаточного всего одной строчки кода.

БИЛЕТ № 5

1. Объединение таблиц в sql-запросах.

Объединение таблиц очень простая процедура. Нужно указать все таблицы, которые будут включены в объединение и "объяснить" СУБД, как они будут связаны между собой. Объединение делается с помощью слова WHERE, например:

SELECT DISTINCT Seller_name, Product FROM Sellers, Sumproduct WHERE Sellers.City = Sumproduct.City

Соединив две таблицы, мы смогли увидеть какие товары реализует каждый продавец. Рассмотрим код запроса подробнее, поскольку он немного отличается от обычного запроса. Оператор SELECT начинается с указанием столбцов, которые мы хотим вывести, однако эти поля находятся в разных таблицах, предложение FROM содержит две таблицы, которые мы хотим объединить в операторе SELECT, таблицы объединяются с помощью слова WHERE, указывающее столбцы для объединения. Обязательно нужно указывать полное название поля (Таблиця.Поле), поскольку поле City есть в обоих таблицах.