Статические и динамические встроенные SQL-предложения

Большинство прикладных программ разрабатывается таким образом, что в момент написания программы разработчик знает, какие объекты БД будут задействованы при реализации алгоритма обработки данных (т.е. какие таблицы и какие именно столбцы этих таблиц будут выбираться из БД, какие транзакции будут выполняться и какие SQL-операторы будут включены в эти транзакции). Поэтому конструкция таких SQL-предложений известна на момент написания прикладной программы и остается неизменной в процессе выполнения, т.е. такие SQL-предложения являются статическими SQL-предложениями. Текст статических SQL-предложений может быть явно вставлен в исходный текст C/C++ программы (кроме, возможно, некоторых подставляемых в запрос значений переменных). Поэтому на этапе прекомпиляции статические SQL-предложения проходят не только синтаксическую проверку, но и семантическую (наличие в БД указанной таблицы и столбцов, соответствие типов данных и др.).

В некоторых случаях до начала выполнения программы и, тем более, при ее написании, невозможно предсказать, какое конкретно SQL-предложение должно быть выполнено. Например, в графической утилите «Рабочий стол СУБД ЛИНТЕР» при просмотре объектов базы данных пользователь может выбрать любую таблицу БД. Поэтому при написании программы имя выбираемой таблицы неизвестно, неизвестно также количество столбцов в ней, их имена и тип данных, следовательно, запрос на выборку данных из такой таблицы может быть сконструирован программным способом только в процессе выполнения программы. Подобный тип SQL-предложений называется динамическими SQL-предложениями. Естественно, что синтаксическая и семантическая проверка динамического SQL-предложения возможна СУБД ЛИНТЕР только в момент обработки этого запроса при выполнении программы.