2012-08-01 2 views
1

저는 mirth, java script, mysql에 처음입니다. 텍스트 파일을 읽고 xml로 변환하기 위해 mirth에 채널을 설정했습니다. 그것은 잘 작동합니다. 다른 채널의 데이터베이스 작성기를 사용하여 mysql 데이터베이스에 xml을 보내려고했습니다.mirth connect : mysql의 javascript inser xml

이 위의 코드는 '1234'의 값으로 존 테이블에 레코드를 삽입

var dbConn = DatabaseConnectionFactory.createDatabaseConnection('com.mysql.jdbc.Driver','jdbc:mysql://192.168.1.4:3306/mirth','root',''); 
var result = dbConn.executeUpdate('INSERT INTO jon (xml) values ('1234')'); 
dbConn.close(); 

같은 자바 스크립트 코드는 모습입니다. 하지만 내가 소스를 통해 읽은 XML을 어떻게 보낼 수 있습니까? 채널 리더는 데이터베이스에 있습니까? ('+ messageObject.getEncodedData() +) 또는 rawdata 또는 transformeddata를 사용하여'1234 '를 리 스플레이하려고했습니다. 그들 중 누구도 일하지 않았다. 나는 folowing 오류 :

ERROR (org.mule.impl.DefaultComponentExceptionStrategy:95) .... Wrapped com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<?xml version="1.0" encoding="UTF-8"?><delimited><row><column1>1234</column1><co' at line 1 (1cf6717f-4818-4b18-acb2-3b93079f2e95#7) ..... 

내 의도는 하나 개의 필드, 아직 필요하지 구문 분석에서 전체 XML을 작성하는 것입니다. 환자 분께 고마워요. . janmohamamdi

답변

0

이 오류는 간단한 구문 문제 인 것처럼 보입니다. Mirth을 잠시 잊어 버리십시오. 당신은 DB에 문자 필드에 값을 삽입하는 경우 일반적으로, 당신은 당신이 환희에 자바 스크립트에서 쿼리를 만들 때

INSERT INTO jon (xml) values ('1234') //single quotes around 1234 

를 삽입 값 주위에 작은 따옴표가 필요합니다, 당신은 기본적으로 동일한 쿼리를 복제 당신이 mysql에서 사용할 것이지만, 그것을 프로그램 적으로 문자열로 만들면된다. 당신은 기본적으로 다음과 같은 문자열을 구축하고 실행하는 자바 스크립트 알려주기 :

"INSERT INTO jon (xml) values ('1234')" //single quotes around 1234 

당신이 XML 매핑 변수가 있다면, 당신은 당신의 DB가 가치를 알 수 있도록 쿼리 문자열에 작은 따옴표에 의해 포위해야한다는 것을 의미합니다 그 삽입하려고합니다. 귀하의 오류 메시지를 기반으로, 그게 문제가 될 것 같습니다. 삽입을 위해 사용하고있는 실제 코드를 게시하면 확인할 수 있습니다.

var xmlVar = $('XmlVar'); //fill a variable 
    var query = "INSERT INTO testMRN (sendingfacility) VALUES ('" + xmlVar + "')"; //notice the quotes around the variable 
    var update= dbConn.executeUpdate(query);