В последнее время я пишу параметризованные запросы, как это:
SQL = " INSERT INTO myTable (column1, column2, column3) VALUES (?, ?, ?); "
Set newParameter = cmdConn.CreateParameter("@column1", ad_Integer, ad_ParamInput, Len(input1), input1)
cmdConn.Parameters.Append newParameter
Set newParameter = cmdConn.CreateParameter("@column2", ad_Integer, ad_ParamInput, Len(input2), input2)
cmdConn.Parameters.Append newParameter
Set newParameter = cmdConn.CreateParameter("@column3", ad_Integer, ad_ParamInput, Len(input3), input3)
cmdConn.Parameters.Append newParameter
И я понял, что, когда я использовал @ column1 при добавлении нового параметра, он назначал этот параметр этому конкретному столбцу в запросе ... но недавно мне сообщили об обратном. Это вызвало некоторую путаницу и возникло несколько вопросов.
Возьмите вышеуказанный параметр, @ column1. Откуда этот параметр знает, что он будет использоваться в первом вопросительном знаке (?) Запроса? Нужно ли добавлять параметры в том же порядке, что и знаки вопроса, или не имеет значения, в каком порядке? Кроме того, если я хочу добавить пользовательский ввод в два столбца, использовать ли два параметра или один и тот же?
Любая помощь с благодарностью получена. Это было в моей голове в течение нескольких недель, поэтому очень жду объяснений:)