Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 297

•  TDictionary Custom Sort  6 344

•  Fast Watermark Sources  6 133

•  3D Designer  9 066

•  Sik Screen Capture  6 454

•  Patch Maker  6 869

•  Айболит (remote control)  6 856

•  ListBox Drag & Drop  5 731

•  Доска для игры Реверси  96 604

•  Графические эффекты  7 074

•  Рисование по маске  6 373

•  Перетаскивание изображений  5 247

•  Canvas Drawing  5 619

•  Рисование Луны  5 317

•  Поворот изображения  4 868

•  Рисование стержней  3 453

•  Paint on Shape  2 713

•  Генератор кроссвордов  3 589

•  Головоломка Paletto  2 882

•  Теорема Монжа об окружностях  3 687

•  Пазл Numbrix  2 422

•  Заборы и коммивояжеры  3 104

•  Игра HIP  2 062

•  Игра Go (Го)  1 989

•  Симулятор лифта  2 350

•  Программа укладки плитки  2 050

•  Генератор лабиринта  2 510

•  Проверка числового ввода  2 195

•  HEX View  2 521

•  Физический маятник  2 137

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

SQL - вложенные пробелы



Письмо в компьютерный сервисный центр:
- Этанутипауменяпробелполомалсячеделатьто?
Ответ:
- Настоящие_программисты_не_пользуются_пробелами.

Выполнение SQL с пробелами и специальными символами в имени поля/колонки

Выполнение SQL-запросов в Delphi-компоненте TQuery (или специального средства SQL-запроса в Database Desktop, Visual dBASE или Paradox for Windows) требует специального синтаксиса для любых колонок, содержащих пробелы или специальные символы.

Пользуясь таблицей Biolife.DB из демо-данных Delphi, проиллюстрируем использование любых специфических требований синтаксиса. Запрос SQL Select мог бы быть сформирован следующим образом:

  SELECT
   Species No,
   Category,
   Common_Name,
   Species Name,
   Length (cm),
   Length_In,
   Notes,
   Graphic
  FROM
   BIOLIFE
В нормальной ситуации пробелы в номерах и именах колонок, длина в сантиметрах, круглые скобки и другие символы могут стать причиной синтаксической ошибки.

Для коррекции синтаксиса в вышеприведенном SQL-выражении необходимо внести два изменения. Во-первых, любые колонки, содержищие пробелы или специальные символы должны быть заключены в двойные или одинарные (апострофы) кавычки. Во-вторых, ссылке на имя колонки должна предшествовать ссылка на саму таблицу и точка после нее. Второе требование особенно важно, поскольку заключенная в кавычки строка интерпретируется не как строковое выражение, а как значение колонки. Ниже приведено правильно отформатированное выражение:

  SELECT
   BIOLIFE."Species No",
   BIOLIFE."Category",
   BIOLIFE."Common_Name",
   BIOLIFE."Species Name",
   BIOLIFE."Length (cm)",
   BIOLIFE."Length_In",
   BIOLIFE."Notes",
   BIOLIFE."Graphic"
  FROM
   "BIOLIFE.DB" BIOLIFE
В приведенном выше примере таблицный псевдоним BIOLIFE используется в качестве ссылки на саму таблицу и располагается перед именем колонки . Данная ссылка может принимать форму имени псевдонима, реального имени таблицы, или ссылаться на имя файла при использовании таблиц dBASE или Paradox. Следующее SQL-выражение должно также хорошо работать.

Примечание: Данное SQL-выражение может использоваться при условии, что необходимый псевдоним уже открыт. В случае TQuery это означает, что псевдоним определен в свойстве DatabaseName.

  SELECT
   BIOLIFE."Species No",
   BIOLIFE.Category,
   BIOLIFE.Common_Name,
   BIOLIFE."Species Name",
   BIOLIFE."Length (cm)",
   BIOLIFE.Length_In,
   BIOLIFE.Notes,
   BIOLIFE.Graphic
  FROM
   BIOLIFE
Если псевдоним недоступен, то для таблицы должен быть определен путь целиком, например, так:
  SELECT
   "C:\DELPHI\DEMOS\DATA\BIOLIFE.DB"."Species No",
   "C:\DELPHI\DEMOS\DATA\BIOLIFE.DB"."Category",
   "C:\DELPHI\DEMOS\DATA\BIOLIFE.DB"."Common_Name",
   "C:\DELPHI\DEMOS\DATA\BIOLIFE.DB"."Species Name",
   "C:\DELPHI\DEMOS\DATA\BIOLIFE.DB"."Length (cm)",
   "C:\DELPHI\DEMOS\DATA\BIOLIFE.DB"."Length_In",
   "C:\DELPHI\DEMOS\DATA\BIOLIFE.DB"."Notes",
   "C:\DELPHI\DEMOS\DATA\BIOLIFE.DB"."Graphic"
  FROM
   "C:\DELPHI\DEMOS\DATA\BIOLIFE.DB"

Наконец, есть два средства автоматического форматирования специального синтаксиса. Первым является Visual Query Builder, включаемой в версию Client/Server Delphi. Visual Query Builder выполняет такое форматирование автоматически, по мере создания запроса. Другое средство - Database Desktop Show SQL, доступный при создании и редактировании запроса QBE-типа. После выбора пункта меню Query|Show SQL, отображаемый SQL-текст может быть вырезан и вставлен где необходимо.





Похожие по теме исходники

Конструктор тестов SQL

SQL Zapros




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте