postgresql语法错误,然后光标处于打开状态

postgresql语法错误,然后光标处于打开状态,postgresql,odbc,runtime-error,visual-foxpro,Postgresql,Odbc,Runtime Error,Visual Foxpro,“光标已打开”这一错误花了我几个小时才解决,因此我在此提交解释,以便为遇到相同问题的人提出解决方案 问题描述:试图通过标准函数SQLEXEC从postgreSQL获取数据时引发语法错误,而同一查询在PGAdmin上正确运行。更详细地说,后续的查询系统性地提出,每次需要关闭Postgres进程并重新连接VFP连接时,光标都是打开的 条件:Postgres 9.3.3、Windows XP SP2、PostgreSQL ODBC驱动程序运行代码版本9.02.01.00、Visual FoxPro 9

“光标已打开”这一错误花了我几个小时才解决,因此我在此提交解释,以便为遇到相同问题的人提出解决方案

问题描述:试图通过标准函数SQLEXEC从postgreSQL获取数据时引发语法错误,而同一查询在PGAdmin上正确运行。更详细地说,后续的查询系统性地提出,每次需要关闭Postgres进程并重新连接VFP连接时,光标都是打开的

条件:Postgres 9.3.3、Windows XP SP2、PostgreSQL ODBC驱动程序运行代码版本9.02.01.00、Visual FoxPro 9 SP1

解决方案:SQLExec第三个参数不应包含点。。例如,当SQLExec1、Select 1、F不存在时,命令SQLExec1、“Select 1”、“F”会引发问题


在我的例子中,.F.值是通过编程生成的,这使得诊断变得困难。

这不是VFP错误,而是程序员的错误。第三个参数是结果的游标名称,如文档中所述,游标名称不能有点。OTOH'F'是有效的游标名称


根据语法错误,很可能您试图传递超过255个字符的长sql字符串文字,但无法确定,因为我们没有看到您的代码。在VFP中,还记录了字符文字长度不能超过255。

是否确定Postgres 6.3.3?Windows上从未运行过Postgres 6.x。第一个支持Windows的Postgres版本是8.0抱歉,我说的是Postgres 9.9.3。现在已更正。在第3个参数中使用点肯定是编程错误。然而,“光标处于打开状态”的症状非常混乱,在这种情况下没有记录在案。我写这篇文章是为了向有这个问题的人提出一个解释。此信息现在添加到初始帖子中。