У меня проблема с получением списка полей из запроса, определенного во время выполнения пользователями моей программы. Я позволил своим пользователям вводить SQL-запрос в элемент управления memo, а затем я хочу позволить им пройти через поля, которые будут возвращаться, и выполнять такие операции, как форматирование вывода, значения столбцов суммы и так далее. Поэтому мне нужно получить имена столбцов, чтобы у них было место для ввода дополнительной информации.
Я бы хорошо, если бы не было параметров, но я также должен позволить им определить параметры фильтра для запроса. Итак, если я хочу установить для параметров значение null, я должен знать, каков тип данных параметра.
Я использую Delphi 2006. Я подключаюсь к базе данных Firebird 2.1, используя компоненты DBExpress TSQLConnection и TSQLQuery. Ранее я успешно использовал:
для i: = 0 до Qry.Params.Count - 1 до Qry.Params [i] .value: = varNull;
Я обнаружил, что у меня возникла проблема при попытке использовать параметр даты. Это было просто совпадение, что все мои параметры до этого были целыми числами (идентификаторы записей). Оказывается, что varNull - это просто перечисляемая константа со значением 1, поэтому я получаю приемлемые результаты (без записей), все в порядке.
Мне нужен только список полей. Может быть, я должен просто разобрать предложение SELECT оператора SQL. Я думал, что установка Qry.Prepared в True даст мне список полей, но не повезло. Он хочет значения для параметров.
Если у вас есть идея, я бы очень хотел ее услышать. Спасибо за любую помощь.