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