我正在尝试将旧版客户端 - 服务器GIS应用程序从Microsoft SQL Server迁移到PostgreSQL。在此系统中,SQL Server数据库包含大量T-SQL
存储过程,每个存储过程都是带有一个或多个参数的SQL Select查询。
响应客户端请求,服务器程序 - classic ASP VBScript
- 使用Microsoft ADODB
填写参数值,执行请求的查询并将结果集作为XML文档返回给客户端。
在迁移的初步阶段,我成功了:
在PostgreSQL 9.3
Windows 7 Pro开发PC上安装了PgOleDB 1.0.0.20
for Windows,psqlODBC
和32.bit
将SQL Server数据库表定义和约束迁移到新的PostgreSQL
数据库,并使用psqlODBC填充表
使用pgAdmin III,针对PostgreSQL数据库创建并执行测试查询
使用pgAdmin III,创建两个测试PostgreSQL表值Select函数 - test1()一个没有参数,test2(文本)一个IN参数 - 并验证两者都正确执行
编写了一个测试ASP / VBscript程序,该程序使用ADODB.Connection
和ADODB.Command
连接到PostgreSQL数据库,执行test1() - 无参数存储函数 - 并创建一个{{ 1}}。此测试正常。
但是当我更改我的测试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.TXT
和RELEASENOTES.TXT
文件之外,是否有可用于PgOleDB的公共文档?