[英]Converting MS Access Queries to PostgreSQL queries (format())
[英]Ms Access, parameterized queries, What is wrong with this code?
我喜欢使用参数化查询通过ADO / Ms Access访问PostreSQL数据库。
'sql-statement: SELECT id, str FROM tbl WHERE str LIKE '<userstring>';
'str is character varying in the DB
Dim cmd As ADODB.Command
Dim param1 As ADODB.Parameter
Set cmd = New ADODB.Command
Set cmd.ActiveConnection = con 'connection is open
cmd.CommandText = "SELECT id, str FROM tbl WHERE str LIKE @FirstParameter"
Set param1 = cmd.CreateParameter("@FirstParameter", adVarWChar, adParamInput)
param1.Value = userstring
cmd.Parameters.Append param1 ' ERROR
我必须翻译错误:“参数对象设置不正确。不一致或无效。”
ADO使用问号表示参数。 可能,通过使用提供程序和参数指示符的组合,无法识别参数。
PostgreSQL使用Dollarsigns使用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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.