ADO использует вопросительные знаки для указания параметров.Вероятно, если вы используете комбинацию провайдера и индикатора параметров, параметр не распознается.
Postgresql использует знаки доллара для обозначения параметров с использованием синтаксиса PREPARE ... EXECUTE
, но для этого требуется передать параметрыснова (с вопросительными знаками) в предложении EXECUTE
, поэтому я не рекомендую
К сожалению, у меня нет удобной настройки postgresql, но попробуйте следующее:
Set cmd = New ADODB.Command
Set cmd.ActiveConnection = con 'connection is open
cmd.CommandText = "SELECT id, str FROM tbl WHERE str LIKE ?"
Set param1 = cmd.CreateParameter(, adVarWChar, adParamInput, Len(userstring), userstring) 'Unnamed parameter
cmd.Parameters.Append param1