【发布时间】:2021-12-28 06:54:05
【问题描述】:
我想将一些 maximo 数据插入到另一个数据库服务器的表中。我创建了一个这样的自动化脚本
from psdi.security import UserInfo
from psdi.server import MXServer
from psdi.util import MXApplicationException
from psdi.util import MXException
from java.rmi import RemoteException
from java.lang import System
from java.text import Format, DateFormat, SimpleDateFormat
from java.lang import System
mx = MXServer.getMXServer();
ui = mx.getSystemUserInfo();
url= "jdbc:sqlserver://MAXIMODEMO:1433; database=IntegrationTest; user=maxadmin; password=password; encrypt=false; trustServerCertificate=false; loginTimeout=30;";
from java.lang import Class
from java.sql import DriverManager,SQLException
#load driver and register
Class.forName(jdbc_driver).newInstance()
DriverManager.registerDriver(Class.forName(jdbc_driver).newInstance())
#get Connection
#connection = DriverManager.getConnection(jdbc_url, jdbc_user), jdbc_password)
connection = DriverManager.getConnection(url)
#find if item exist
sql = "Select itemnum from item where itemnum='"+mbo.getString("ITEMNUM")+"'"
result = connection.createStatement().executeQuery(sql)
sqlinsert = ""
sdf = SimpleDateFormat("yyyy-MM--dd");
if(result.next()) :
sqlinsert = "Update Item set description='"+mbo.getString("DESCRIPTION")+"', orderunit='"+mbo.getString("ORDERUNIT")+"', status='"+mbo.getString("STATUS")+"' where ItemNum='"+mbo.getString("ITEMNUM")+"'"
else:
sqlInsert="Insert into item(itemnum, description, orderunit, statusdate, status, groupname) values('" + mbo.getString("ITEMNUM")+ "','" + mbo.getString("Description") + "', '" + mbo.getString("ORDERUNIT") + "','" + sdf.format(mbo.getDate("STATUSDATE")) + "', '" + mbo.getString("STATUS") + "','" + mbo.getString("GROUPNAME") + "') "
result.close()
result = connection.createStatement().executeQuery(sqlinsert)
connection.close()
没有错误但没有插入数据。选择查询工作正常,它可以返回值,但插入/更新不起作用。 我在执行插入/更新查询时是否遗漏了什么?
【问题讨论】:
-
您只需要导入您直接引用的类。因此,例如,您不需要
from psdi.security import UserInfo,因为您从不直接实例化该类——即通过调用UserInfo("SOMEUSERID")。
标签: maximo