|  | 
 
  
    | RSS Feed - WebSphere MQ Support | RSS Feed - Message Broker Support |  
 
  
	|    |  |  
  
	| Inserting into SolidDB using ESQL | « View previous topic :: View next topic » |  
  	| 
		
		
		  | Author | Message |  
		  | tank_n_spank | 
			  
				|  Posted: Mon Sep 22, 2014 7:20 am    Post subject: Inserting into SolidDB using ESQL |   |  |  
		  | Apprentice
 
 
 Joined: 02 Sep 2014Posts: 37
 
 
 | 
			  
				| Hello, 
 I am currently trying to insert an XML file into a SolidDB table by just using an ESQL note.
 
 
 
   
	| Code: |  
	| CREATE COMPUTE MODULE InstProc_Compute
 CREATE FUNCTION Main() RETURNS BOOLEAN
 BEGIN
 -- CALL CopyMessageHeaders();
 CALL CopyEntireMessage();
 
 DECLARE MsgBlob BLOB;
 DECLARE Msg CHARACTER;
 DECLARE MID CHARACTER;
 
 DECLARE Table  CHARACTER 'xmlstuff';
 
 
 
 DECLARE SQLState1 CHARACTER;
 DECLARE SQLErrorText1 CHARACTER;
 DECLARE SQLCode1 INTEGER;
 DECLARE SQLNativeError1 INTEGER;
 
 --Retrieve the database return codes --
 SET SQLState1 = SQLSTATE;
 SET SQLCode1 = SQLCODE;
 SET SQLErrorText1 = SQLERRORTEXT;
 SET SQLNativeError1 = SQLNATIVEERROR;
 
 --Use the THROW statement to back out the database and issue a user exception--
 THROW USER EXCEPTION MESSAGE 2950 VALUES
 ( 'The SQL State' , SQLState1 , SQLCode1 , SQLNativeError1 ,
 SQLErrorText1 );
 
 SET OutputRoot.MRM = InputRoot.MRM;
 
 INSERT INTO Database.xmlstuff (INSTRUCTIONS, TASK)
 VALUES(InputRoot.XMLNSC.INSTRUCTIONS.COMPLETED.TASK.INSTRUCTIONS.TASK,
 InputRoot.XMLNSC.Reservation.ListOfPassengers.PassengerDetails.TASK);
 
 
 RETURN TRUE;
 END;
 
 CREATE PROCEDURE CopyMessageHeaders() BEGIN
 DECLARE I INTEGER 1;
 DECLARE J INTEGER;
 SET J = CARDINALITY(InputRoot.*[]);
 WHILE I < J DO
 SET OutputRoot.*[I] = InputRoot.*[I];
 SET I = I + 1;
 END WHILE;
 END;
 
 CREATE PROCEDURE CopyEntireMessage() BEGIN
 SET OutputRoot = InputRoot;
 END;
 END MODULE;
 
 |  
 However, it is also marking my database.xmlstuff table, I have defined the ODBC.
 
 When I run the message flow nothing's being inserted.
 
 Kind regards,
 |  |  
		  | Back to top |  |  
		  |  |  
		  | smdavies99 | 
			  
				|  Posted: Mon Sep 22, 2014 9:52 am    Post subject: |   |  |  
		  |  Jedi Council
 
 
 Joined: 10 Feb 2003Posts: 6076
 Location: Somewhere over the Rainbow this side of Never-never land.
 
 | 
			  
				| There is something wrong here 
 
   
	| Code: |  
	| SET OutputRoot.MRM = InputRoot.MRM;
 
 INSERT INTO Database.xmlstuff (INSTRUCTIONS, TASK)
 VALUES(InputRoot.XMLNSC.INSTRUCTIONS.COMPLETED.TASK.INSTRUCTIONS.TASK,
 InputRoot.XMLNSC.Reservation.ListOfPassengers.PassengerDetails.TASK);
 
 
 |  What domain are you really using? MRM or XMLNSC?
 _________________
 WMQ User since 1999
 MQSI/WBI/WMB/'Thingy' User since 2002
 Linux user since 1995
 
 Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
 |  |  
		  | Back to top |  |  
		  |  |  
		  | mqjeff | 
			  
				|  Posted: Mon Sep 22, 2014 10:02 am    Post subject: |   |  |  
		  | Grand Master
 
 
 Joined: 25 Jun 2008Posts: 17447
 
 
 | 
			  
				| It's also not clear how the compute node would ever reach the INSERT statement, given the statements that will get executed before the INSERT. 
 I mean, if we're being technical.
 |  |  
		  | Back to top |  |  
		  |  |  
		  | tank_n_spank | 
			  
				|  Posted: Tue Sep 23, 2014 3:05 am    Post subject: |   |  |  
		  | Apprentice
 
 
 Joined: 02 Sep 2014Posts: 37
 
 
 | 
			  
				| Hello, 
 I first had a problem with my DB and connection, sorted that out, now I insert a NULL value into the database.
 
 
 
   
	| Code: |  
	| DECLARE refTASK CHARACTER; SET refTASK = InputRoot.XMLNSC.INSTRUCTIONS.COMPLETED.TASK;
 --DECLARE refTASK    REFERENCE TO InputRoot.XMLNSC.INSTRUCTIONS.COMPLETED.TASK;
 
 INSERT INTO Database.DBA.XMLSTUFF (INSTRUCTIONS, TASK)
 VALUES(refTASK,
 refTASK);
 |  
 
 I am using XMLNSC, I deleted the rest rubbish I didn't need.
 
 In the debugging the value is set to refTASK:UNKNOWN:null
 
 My XML file is as it follows:
 
 INSTRUCTIONS
 Completed
 TASK - task 1
 TASK - task 2
 TASK - task 3
 Completed
 INSTRUCTIONS
 |  |  
		  | Back to top |  |  
		  |  |  
		  | tank_n_spank | 
			  
				|  Posted: Tue Sep 23, 2014 3:37 am    Post subject: |   |  |  
		  | Apprentice
 
 
 Joined: 02 Sep 2014Posts: 37
 
 
 |  |  
		  | Back to top |  |  
		  |  |  
		  | tank_n_spank | 
			  
				|  Posted: Tue Sep 23, 2014 4:07 am    Post subject: |   |  |  
		  | Apprentice
 
 
 Joined: 02 Sep 2014Posts: 37
 
 
 | 
			  
				| Just a quick thing, if i wanna insert every task in each file, that will result in 4 tasks, do I need to use lastmove(declare task reference to inputroot***)? |  |  
		  | Back to top |  |  
		  |  |  
		  | tank_n_spank | 
			  
				|  Posted: Tue Sep 23, 2014 4:47 am    Post subject: |   |  |  
		  | Apprentice
 
 
 Joined: 02 Sep 2014Posts: 37
 
 
 | 
			  
				| Anyway, fixed that one as well, cheers. |  |  
		  | Back to top |  |  
		  |  |  
		  |  |  |  
  
	|    |  | Page 1 of 1 |  
 
 
  
  	| 
		
		  | 
 
 | You cannot post new topics in this forum You cannot reply to topics in this forum
 You cannot edit your posts in this forum
 You cannot delete your posts in this forum
 You cannot vote in polls in this forum
 
 |  |  |  |