0

我在使用存储过程在 MSSQL 2008 数据库中创建项目时遇到问题。我在客户端使用 Flex 和 ADEP 进行服务器连接。

数据库过程非常简单:

ALTER PROCEDURE [dbo].[testInsert_procedure]
    @id INT OUT,
    @v1 VARCHAR(50) = NULL,
    @v2 VARCHAR(50) = NULL
AS
BEGIN
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    INSERT INTO test1 (v1, v2)
    VALUES (@v1, @v2)

    SET @id = SCOPE_IDENTITY();
    SELECT @id as id;
END
GO

这是此存储过程的配置文件的目标:

<destination id="TestTableInsert">
    <adapter ref="java-dao" />
    <properties>
      <source>flex.data.assemblers.SQLAssembler</source>
      <scope>application</scope>
      <metadata>
        <identity property="id"/>
      </metadata>
      <server>
        <database>
          <datasource>java:comp/env/jdbc/TEST</datasource>
        </database>
        <actionscript-class>classes.TestClass</actionscript-class>
        <create-item>
          <procedure name="testInsert_procedure">
            <procedure-param property-value="#id#" type="OUT" />
            <procedure-param property-value="#v1#" />
            <procedure-param property-value="#v2#" />
          </procedure>
        </create-item>
      </server>
    </properties>
  </destination>

使用此配置会产生下一个错误:

Jun 25, 2013 2:47:26 PM org.apache.catalina.core.ApplicationContext log
INFO: [Data Services] [DEBUG] SQL Assembler jdbc exception on operation=create-item error=com.microsoft.sqlserver.jdbc.SQLServerException: The value is not set for the parameter number 1.
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)

我发现这可能是 JDBC 错误......那么,获取 OUTPUT 参数的配置错误还是这真的是 JDBC 错误?

更新:Java 在服务器端使用 Microsoft JDBC 驱动程序 4.0

4

0 回答 0