2017-05-23 4 views
1

CData(cdata.com)のJDBCドライバを使用してQuickBooksインスタンスにアクセスしています。以下のコードは、CDataのWebサイト(qbConnStringを除く)のすぐ外にあります。 getConnection呼び出しは正常に動作しますが、クエリが実行されると例外がスローされます。ここでQuickBooksにアクセスするためのCDataのJDBCライブラリのコンテキストでのRSBOperationとは=

  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をターゲットにしています。通常のQuickBooksデスクトップページではなく、QuickBook POS(point of sale)ページからそのコードをコピーしました。

POSアプリケーションのCustomerテーブルには、 "LastName"ではなく "name"という名前の列があります。通常のQuickBooksアプリケーションのCustomerテーブルには "LastName"という名前の列があり、それは私がやりたいことでした。私が間違っている場合

誰かが私を修正してください、しかし、「属性名はRSBOperationによって要求された」というメッセージは、姓 『「という名前の列を持っていない顧客テーブル』のようなものに置き換えることができる。

+0

あなたはおそらく正しいかもしれませんが、改善要求として報告する価値があるかもしれません。 –

関連する問題