У меня есть приложение, которое позволяет пользователю вводить строку SQL с заполнителем для определенных значений, создаваемых моим приложением. Приложение заменит заполнители значениями и выполнит строку SQL через различные базы данных.Выполнение хранимой процедуры через ODBC
Для бэкэнд ODBC я вызываю SQLExecDirect() на SQL-строке, который хорошо работает на регулярных запросах, но не работает для хранимых процедур с параметрами.
Есть ли простой способ расширить этот механизм для поддержки хранимых процедур? Определенный способ написания SQL?
Единственное, что я могу сейчас придумать, это начать разбор строки SQL и вызвать SQLBindParameter() n раз, если она связывает «вызов». Но разбор SQL сложный.
Любые идеи?
Рабочий SQL пример: SELECT Columna из обув где columnB = '% заполнителем'
Неработающий SQL: CALL StoredFoo ('% заполнителем')
Звучит как ужасное приложение .. без обид. Я бы рекомендовал создать определенный интерфейс для хранимых процедур, если это требуется. Как вы доверяете своим пользователям писать хорошие, неразрушающие запросы? – Fosco
Приложение установлено на ПК пользователя и как часть процесса настройки, он может помещать операторы SQL, где сохранять значения в свой файл конфигурации. Таким образом, нет никаких проблем с безопасностью, кроме как он может случайно перезаписать свои собственные данные. –