From: Neil B. <nei...@zi...> - 2006-06-13 19:32:14
|
Hello, I'm trying out a simple test case where I send a Connection (derived from a JDBC datapool - which is why I'm not using zxJDBC) to Jython from Java and then try to call methods on it. The code snippet is as follows: //note objSP is a simple wrapper around the Jython script interpreter //make a connection check it is made Connection objConn = DataPool.getConnection(); assertEquals(1, DataPool.getNumConnections()); objSP.setValue("objConn", objConn); String strScript = "strStatment = 'select DESCRIPTION from sample_type;'\n"; strScript += "objStatement = objConn.createStatment()\n"; strScript += "objRS = objStatement.executeQuery(strStatement)\n"; strScript += "lstReturn = []\n"; strScript += "while not objRS.next():\n"; strScript += "\tlstReturn.append(objRS.getString('DESCRIPTION'))\n"; objSP.executeScript("Jython", strScript, null); Object objRes = objSP.getValue("lstReturn"); System.out.println(objRes); objConn.close(); DataPool.shutdown(); When I execute this, I get the report back: Traceback (innermost last): File "<string>", line 2, in ? AttributeError: createStatment I've done a simpler test where I register a Random instance and call nextInt on it that works but the above script doesn#t like createStatment which is a method on Connection. As I'm only calling methods and not instantiating anything I don't need to import any java classes, is that correct (ala Python). I'm a bit stumped as to what I've done wrong - any pointers would be greatly appreciated. Cheers, Neil |
From: Jeff E. <jem...@fr...> - 2006-06-13 19:34:27
|
I think you misspelled createStatement. Neil Benn wrote: > Hello, > > I'm trying out a simple test case where I send a Connection > (derived from a JDBC datapool - which is why I'm not using zxJDBC) to > Jython from Java and then try to call methods on it. The code snippet > is as follows: > > > //note objSP is a simple wrapper around the Jython script interpreter > //make a connection check it is made > Connection objConn = DataPool.getConnection(); > assertEquals(1, DataPool.getNumConnections()); > > objSP.setValue("objConn", objConn); > String strScript = "strStatment = 'select DESCRIPTION from > sample_type;'\n"; > strScript += "objStatement = objConn.createStatment()\n"; > strScript += "objRS = > objStatement.executeQuery(strStatement)\n"; > strScript += "lstReturn = []\n"; > strScript += "while not objRS.next():\n"; > strScript += > "\tlstReturn.append(objRS.getString('DESCRIPTION'))\n"; > objSP.executeScript("Jython", strScript, null); > Object objRes = objSP.getValue("lstReturn"); > System.out.println(objRes); > objConn.close(); > DataPool.shutdown(); > > > When I execute this, I get the report back: > > Traceback (innermost last): > File "<string>", line 2, in ? > AttributeError: createStatment > > I've done a simpler test where I register a Random instance and > call nextInt on it that works but the above script doesn#t like > createStatment which is a method on Connection. As I'm only calling > methods and not instantiating anything I don't need to import any java > classes, is that correct (ala Python). I'm a bit stumped as to what > I've done wrong - any pointers would be greatly appreciated. > > Cheers, > > Neil > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users |
From: Neil B. <nei...@zi...> - 2006-06-13 20:03:37
|
-----Original Message----- From: Jeff Emanuel [mailto:jem...@fr...] Sent: 13 June 2006 21:34 To: nei...@zi... Cc: jyt...@li... Subject: Re: [Jython-users] REgistering and accessing Java Instances I think you misspelled createStatement. <Snip> Damn that English education system :-). Sorry to waste time and thanks for your help. Cheers, Neil |