Я пытаюсь выяснить, как параметризовать строку SQL перед тем, как передать ее для выполнения, но, к сожалению, я нахожу много этого в Интернете:
sql = "SELECT * FROM table_name WHERE thing LIKE '%#{input}%'"
Что плохо... однако, параметрирование sql-запросов доступно в базовой библиотеке Sequel, что и делает TinyTDS поверх. Поэтому я знаю, что это возможно. Мне просто сложно понять это.
Мне бы очень хотелось, чтобы это было так просто, как this:
@client = TinyTds::Client.new(
:adapter => 'sqlserver',
:host => host,
:database => db,
:username => username,
:password => password)
sql = "SELECT * FROM table_name WHERE thing LIKE ?"
safe_sql = @client.prepare(sql, input)
result = @client.execute(safe_sql)
Кажется, я нашел что-то, называемое Dataset
в исходном коде, который имеет метод подготовки. Вопрос в том, как мне его использовать? Мне нужно создать другой объект, прежде чем передать его методу execute()
в объекте @client
? Я не смог найти метод initialize
или new
, поэтому простое создание экземпляра кажется неправильным.