2017-05-23 35 views
1

我使用CData(cdata.com)中的JDBC驱动程序访问QuickBooks实例。下面的代码就在CData网站上(除了qbConnString)。 getConnection调用可以正常工作,但执行查询时会引发异常。什么是RSBOperation,在用于访问QuickBooks的CData的JDBC库的上下文中=

  connection = DriverManager.getConnection(qbConnString); 

      String cmd = "INSERT INTO Customers (LastName) VALUES (?)"; 
      QuickBooksPreparedStatement pstmt = 
       (QuickBooksPreparedStatement) connection.prepareStatement(cmd, 
       Statement.RETURN_GENERATED_KEYS); 
      pstmt.setString(1, "Hook"); 
      int count = pstmt.executeUpdate(); 
      System.out.println(count + " rows are affected"); 
      ResultSet rs = pstmt.getGeneratedKeys(); 
      while (rs.next()) { 
       System.out.println(rs.getString("ListId")); 
      } 
      connection.close(); 

这里是当executeUpdate的被调用时产生的堆栈跟踪:

XcoreXquickbooksX160X6254.ymc: The attribute name is required by RSBOperation. 
    at XcoreXquickbooksX160X6254.qi.executeUpdate(Unknown Source) 
    at app.JDBCConnect.qbConnect(JDBCConnect.java:49) 
    at app.JDBCConnect.<init>(JDBCConnect.java:34) 
    at app.JDBCConnect.main(JDBCConnect.java:25) 

所以我的问题是:什么是RSBOperation我在哪里能找到有关失踪需求文档?

+0

听起来像驱动程序中的一个错误,向供应商报告。 –

回答

1

其实这是用户错误。我混淆了;咄。

我的代码针对的是QuickBooks Desktop。我从QuickBook POS(销售点)页面复制了该代码,而不是常规的QuickBooks Desktop页面。

POS应用程序中的Customer表显然具有名为“name”而非“LastName”的列。常规QuickBooks应用程序中的Customer表有一个名为“LastName”的列,这正是我想要做的。

有人请纠正我,如果我错了,但是,“属性名称由RSBOperation要求”的消息可以用类似“客户表中没有一个名为列‘姓’所取代。

+0

您可能是对的,可能值得作为改进请求报告。 –

相关问题