Я использовал базу данных IBM DB2 iSeries в своем приложении. Я подключил свое приложение к базе данных с помощью метода DataDirect с помощью db2.jar (DataDirect, заданного Progress) в node.js. При таком подходе я могу получать данные по запросу select, но я не могу обновлять/вставлять данные в таблицы, не связанные с журналом. Но такое же обновление/вставка хорошо работает, если я использую jt400.jar JTOpen.Обновление/Вставка запросов с помощью Data Direct DB2 JDBC-драйвер для таблиц, которые не зарезервированы
Но в нашем приложении node.js подключается через db2.jar не с jt400.jar. Я сталкиваюсь с такой же проблемой, если я использую Java-код вместо узла. Я использовал ниже запроса обновления в клиенте Белка, связанных с db2.jar -
UPDATE MSSTQACEYK.MXAPGI001 SET PRCSD = 'Y' WHERE ORDNO = 'P544901'
Он бросает ниже ошибки в обоих случаях либо я использую node.js или Java -
Error: [DataDirect][DB2 JDBC Driver][DB2]Error occured with SQLCode -7008 with the following parameters: MXAPGI001 , MSSTQACEYK, 3, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null
SQLState: 55019
ErrorCode: -7008
Ниже приведен пример кода Java Я использовал, чтобы проверить эту операцию -
{
String sql = "INSERT INTO MSSTQACEYK.MXAPGI001 (ORDNO) VALUES ('P544901') ";
Class.forName("com.ddtek.jdbc.db2.DB2Driver");
String url = "jdbc:datadirect:db2://hostname:port;DatabaseName=APG;";
Connection con = DriverManager.getConnection(url, "UName","Pass");
PreparedStatement preparedStatement = con.prepareStatement(sql);
preparedStatement.executeUpdate();
System.out.println("Record Inserted");
}
спасибо заранее -
Это можно сделать в Java с помощью setIsolationLevel(), но я с Node.js как слой данных, и здесь я не имея никаких опций, как это. Есть ли другой способ сделать это ??? –