Сначала мой ответ на ваш первый вопрос: Да, насколько я знаю, с помощью параметризованных запросов SQL-инъекции больше не будут возможны. Что касается ваших следующих вопросов, я не уверен и могу только рассказать вам о причинах:
Я думаю, что проще «просто» написать строку запроса SQL, объединив некоторые разные части (возможно, даже зависимые на некоторых логических проверках) вместе со значениями, которые нужно вставить. Он просто создает запрос и выполняет его. Другим преимуществом является то, что вы можете печатать (эхо, вывод или что-то еще) строку запроса sql, а затем использовать эту строку для ручного запроса к движку базы данных.
При работе с подготовленными операторами вы всегда имеете как минимум еще один шаг: вам нужно построить свой запрос (включая параметры, конечно). Вы должны подготовить запрос на сервере. Вы должны привязать параметры к фактическим значениям, которые вы хотите использовать для своего запроса. Вы должны выполнить запрос .
Это немного больше работает (и не так просто программировать), особенно для некоторых «быстрых и грязных» заданий, которые часто оказываются очень долговечными ...
С наилучшими пожеланиями ,
Коробка
Свяжите свое приложение с библиотекой Python (pythonXX.lib в Windows) и добавьте следующее к Вашему основному () функция.
Py_NoSiteFlag = 1; // Disable importing site.py
Py_Initialize(); // Create a python interpreter
Помещенный биты библиотеки стандарта Python Вы нуждаетесь в zip-файл (названный pythonXX.zip) и помещаете это и pythonXX.dll около исполняемого файла, который Вы распределяете. Взгляните на PyZipFile в zipfile модуль.
Процесс встраивания полностью документируется: Встраивание Python в Другом Приложении . Документы предлагают несколько уровней, на которых сделано встраивание, выберите любой, лучше всего соответствует Вашим требованиям.
А простая демонстрация встраивания Python может быть найдена в каталоге Demo/embed/исходного распределения.
демонстрация здесь , должен смочь создать из дистрибутива.
- Очень Высокий уровень, Встраивающий
- Вне Встраивания Очень Высокого уровня: Чистое Встраивание обзора
- Расширение Встроенный Python
- , Встраивающий Python в C++
Из стандартной библиотеки, можно выбрать компоненты, которые не несут слишком много зависимости.
Для расширения ответа gimel нет ничего, чтобы мешать Вам поставить python.dll, с помощью него, и установка a исправляет PYTHONPATH для использования собственной установки библиотеки стандарта Python. Они - просто библиотеки и файлы, и Ваш процесс установки может просто иметь дело с ними как таковой.
При поиске способа просто развернуть приложение Python Вы могли бы использовать Py2Exe. Это позволило бы Вашему приложению все зависимости, в которых требуется, не волнуя то, что или уже не установлено на пользовательской машине.
[Редактирование], Если Py2Exe является остановкой для встраиваемых приложений, Вы могли бы просто заставить свой установщик проверять на соответствующие файлы, и загрузка / устанавливают что-нибудь, что это пропускает? [/Редактирование]
[Edit2] Elmer мог быть тем, что Вы ищете? [/Edit2]