通过pgoledb将参数值传递给postgresql存储函数

时间:2014-03-25 03:33:01

标签: postgresql vbscript asp-classic adodb

我正在尝试将旧版客户端 - 服务器GIS应用程序从Microsoft SQL Server迁移到PostgreSQL。在此系统中,SQL Server数据库包含大量T-SQL存储过程,每个存储过程都是带有一个或多个参数的SQL Select查询。

响应客户端请求,服务器程序 - classic ASP VBScript - 使用Microsoft ADODB填写参数值,执行请求的查询并将结果集作为XML文档返回给客户端。

在迁移的初步阶段,我成功了:

  1. PostgreSQL 9.3 Windows 7 Pro开发PC上安装了PgOleDB 1.0.0.20 for Windows,psqlODBC32.bit

  2. 将SQL Server数据库表定义和约束迁移到新的PostgreSQL数据库,并使用psqlODBC填充表

  3. 使用pgAdmin III,针对PostgreSQL数据库创建并执行测试查询

  4. 使用pgAdmin III,创建两个测试PostgreSQL表值Select函数 - test1()一个没有参数,test2(文本)一个IN参数 - 并验证两者都正确执行

  5. 编写了一个测试ASP / VBscript程序,该程序使用ADODB.ConnectionADODB.Command连接到PostgreSQL数据库,执行test1() - 无参数存储函数 - 并创建一个{{ 1}}。此测试正常。

  6. 但是当我更改我的测试ASP / VBscript程序以使用ADODB.Recordset并使用test2()时这样:

    objCmd.Parameters.Append

    指定所需的IN参数,我得到ASP运行时错误:

    objCmd.CommandText = "test2"
    
    objCmd.Parameters.Append objCmd.CreateParameter("p1", adVarChar, adParamInput, 15, "000007-01012013")
    

    Q1。诊断“自动参数的过程名称不是唯一的”是什么意思?

    Q2。除了与PgOleDB error '80004005' “Procedure name for automatic arguments is not unique“ 一起安装的README.TXTRELEASENOTES.TXT文件之外,是否有可用于PgOleDB的公共文档?

0 个答案:

没有答案