Sql 如何避免问号字符的ODBC参数化?在文字和注释中?

Sql 如何避免问号字符的ODBC参数化?在文字和注释中?,sql,parameters,odbc,visual-foxpro,Sql,Parameters,Odbc,Visual Foxpro,我遇到了一个问题,我的SQL脚本中有问号字符“?”,注释中的问号会导致问题。当我使用VisualFoxproSQLExec函数通过ODBC连接运行这些语句时,这些字符被视为参数,VFP提示输入值 在使用SQLEXEC时,我可以选择哪些选项来处理注释中的问号字符?我希望我可以在将字符串作为命令传递之前,先了解如何关闭参数化,或者了解如何对这些字符进行转义。到目前为止,我还没有找到这种解决方案的任何证据,所以看起来我可能不得不删除所有不受欢迎的注释,因为它们通常是存储过程的create语句,我们希望

我遇到了一个问题,我的SQL脚本中有问号字符“?”,注释中的问号会导致问题。当我使用VisualFoxproSQLExec函数通过ODBC连接运行这些语句时,这些字符被视为参数,VFP提示输入值


在使用SQLEXEC时,我可以选择哪些选项来处理注释中的问号字符?我希望我可以在将字符串作为命令传递之前,先了解如何关闭参数化,或者了解如何对这些字符进行转义。到目前为止,我还没有找到这种解决方案的任何证据,所以看起来我可能不得不删除所有不受欢迎的注释,因为它们通常是存储过程的create语句,我们希望保留这些注释。我希望有人能有一个比完全去掉注释更令人愉快的解决方案。

当遇到问号字符时,可能是一个不考虑SQL命令中注释的问题?通常在ODBC和VFP中表示参数

只是一个警告-VFP的解析器将 捕捉SQL中的任何问号 字符串,即使它位于SQL中 注释(即在以开头的行上 --或括在/**/)之间,如果没有,则会出错 这可能是一个变量。如果是 可以是变量,但您没有 它在运行时定义,您将得到一个丑陋的 输入框来输入它。更糟糕的是,你的用户 明白了

所以要当心德拉甘·内德尔伊科维奇


你试过用ascii码替换它吗?类似于:“+chr(63)+”

对于诸如“where mycolumn='what'+char(63)”之类的文字来说,这是一个可用的变通方法,但由于问题似乎是由表达式内将chr(63)与VFP串联在一起的注释引起的,因此只会产生包含问号的相同字符串,该字符串将传递给SQLEXEC。因此,基本上,这与将问号保持在文字范围内是一样的。