Update Result Set
Hi,
I want to update a row from a table through it's result set, using the following code:
stmt=con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery(" select * from region_info");
rs.next();
rs.updateString("DETAILS","malaysia");
rs.updateRow();
using jdbc2.0...
But it gives the following error:
java.sql.SQLException: Invalid operation for read only resultset: updateString at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210) at oracle.jdbc.driver.BaseResultSet.updateString(BaseResultSet.java:235) at oracle.jdbc.driver.OracleResultSet.updateString(OracleResultSet.java:2647) at test.main(test.java:61)
wht's this pblm?
Thanx in advance..
create a statement with resultSetConcurrency = ResultSet.CONCUR_UPDATABLE :
Statement stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");
Similar Messages
-
Connection with updatable result set
I am using java and mysql.
I need to get updatable result set.
But when I check MetaData of connection I get following: "Updatable result sets are not supported"
and get read only result set.
Can You help me to get updatable result set?
Thank You in advance.
database properties
db.driver=org.gjt.mm.mysql.Driver
db.connectionString=jdbc\:mysql\://host/base
See code:
try
conn = getConnection();
DatabaseMetaData meta = conn.getMetaData();
if (meta.supportsResultSetConcurrency(
ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE))
// Updatable result sets are supported
setTitle( "Updatable result sets are supported" );
else
// Updatable result sets are not supported
setTitle( "Updatable result sets are not supported" );
catch(SQLException e)
e.printStackTrace();Well, if the JDBC driver you are using does not support updateable result sets, then you should find a different JDBC driver or a different solution to your problem. Most likely you can solve your problem with another technique than using an updateable result set.
-
SCROLL_SENSITIVE result set can't see the data inserted.
hi all ,
I am trying to display all the latest data available in the table through SCROLL_SENSITIVE and UPDATABLE result set after inserting a new record in the table.
But the result set obtained after executing the query initially is not able to see the newly inserted record in the table and hence same result is getting printed out in both the cases.
Can u explain me what's happening in this case ?? And how can i get the updated record also without executing the statement query twice to get the latest result set.
My full code is given below.
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Misc3 {
public static void main(String[] args) {
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
int empid;
String lname;
String fname;
int deptno;
int mngrid;
con = JDBCUtil.getOracleConnection();
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
String query = "select employee_id , last_name , first_name , department_number , manager_id from employees ";
rs = stmt.executeQuery(query);
System.out.println("Before inserting the new record.....");
while (rs.next()) {
empid = rs.getInt(1);
lname = rs.getString(2);
fname = rs.getString(3);
deptno = rs.getInt(4);
mngrid = rs.getInt(5);
System.out.println(empid + "\t" + lname + "\t" + fname + "\t" + deptno + "\t" + mngrid);
System.out.println("Going to insert the new record.....");
rs.moveToInsertRow();
rs.updateInt(1, 10);
rs.updateString(2, "Clark");
rs.updateString(3, "John");
rs.updateInt(4, 2);
rs.updateInt(5, 2);
rs.insertRow();
System.out.println("New record inserted successfully.....");
System.out.println("After inserting the new record.....");
rs.beforeFirst();
while (rs.next()) {
empid = rs.getInt(1);
lname = rs.getString(2);
fname = rs.getString(3);
deptno = rs.getInt(4);
mngrid = rs.getInt(5);
System.out.println(empid + "\t" + lname + "\t" + fname + "\t" + deptno + "\t" + mngrid);
} catch (SQLException ex) {
System.out.println("error code : " + ex.getErrorCode());
System.out.println("error message : " + ex.getMessage());
} finally {
JDBCUtil.cleanUp(con, stmt);
*** JDBCUtil Class ****
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JDBCUtil {
public static Connection getOracleConnection(){
Connection con = null;
try{
// Load the driver
Class.forName("oracle.jdbc.driver.OracleDriver");
//Establish Connection
con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","ex","ex");
}catch(Exception ex){
ex.printStackTrace();
return con;
public static void cleanUp (Connection con , Statement stmt){
// Release the resource
try{
if(con != null){
con.close();
if(stmt != null){
stmt.close();
}catch(Exception ex){
ex.printStackTrace();
Edited by: user12848632 on Aug 13, 2012 2:06 PM>
Can u explain me what's happening in this case ?? And how can i get the updated record also without executing the statement query twice to get the latest result set.
>
Sure - but you could have answered your own question if you had read the doc link I gave you in your other thread and next time you post code use \ tags on the lines before and after the code - see the FAQ for info
17076 : Invalid operation for read only resultset
{quote}
•Internal INSERT operations are never visible, regardless of the result set type.
{quote}
See •Seeing Database Changes Made Internally and Externally in the JDBC Dev doc I pointed you to
http://docs.oracle.com/cd/B28359_01/java.111/b31224/resltset.htm#i1024720
Did you notice the words 'never visible'? You won't see them as part of the result set unless you requery. -
Getting Result set close error while updating row
Hi,
Working on jdev 11.1.1.3.0, ADF BC with rich faces.
I am updating on the selected rows, the selected rows are updating but here my problem after updating the rows when i scroll down the table then i am getting error like Result Set is already close, can any one help me how to resolve this.
Java Code:
RowKeySet rowKeySet = (RowKeySet)this.embossTB.getSelectedRowKeys();
CollectionModel cm = (CollectionModel)this.embossTB.getValue();
for (Object facesTreeRowKey : rowKeySet) {
cm.setRowKey(facesTreeRowKey);
JUCtrlHierNodeBinding rowData = (JUCtrlHierNodeBinding)cm.getRowData();
oracle.jbo.domain.Date dt =
new oracle.jbo.domain.Date(new java.sql.Timestamp(System.currentTimeMillis()));
rowData.setAttribute("EmbossingState", "PRINTED");
rowData.setAttribute("EmbossingDate", dt);
embossIter.getViewObject().getApplicationModule().getTransaction().commit();
AdfFacesContext.getCurrentInstance().addPartialTarget(embossTB);
Error:
oracle.jbo.AttributeLoadException: JBO-27022: Failed to load value at index 1 with java object of type java.lang.String due to java.sql.SQLException.
at oracle.jbo.server.AttributeDefImpl.loadFromResultSet(AttributeDefImpl.java:2327)
at oracle.jbo.server.ViewRowImpl.populate(ViewRowImpl.java:3622)
at oracle.jbo.server.ViewDefImpl.createInstanceFromResultSet(ViewDefImpl.java:2203)
at oracle.jbo.server.ViewObjectImpl.createRowFromResultSet(ViewObjectImpl.java:5325)
at oracle.jbo.server.ViewObjectImpl.createInstanceFromResultSet(ViewObjectImpl.java:5174)
at oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:3304)
at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:3164)
at oracle.jbo.server.QueryCollection.get(QueryCollection.java:2154)
at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:4853)
at oracle.jbo.server.ViewRowSetIteratorImpl.scrollRange(ViewRowSetIteratorImpl.java:1350)
at oracle.jbo.server.ViewRowSetIteratorImpl.setRangeStartWithRefresh(ViewRowSetIteratorImpl.java:2708)
at oracle.jbo.server.ViewRowSetIteratorImpl.setRangeStart(ViewRowSetIteratorImpl.java:2693)
at oracle.jbo.server.ViewRowSetImpl.setRangeStart(ViewRowSetImpl.java:2895)
at oracle.jbo.server.ViewObjectImpl.setRangeStart(ViewObjectImpl.java:9457)
at oracle.adf.model.binding.DCIteratorBinding.setRangeStart(DCIteratorBinding.java:3378)
at oracle.adfinternal.view.faces.model.binding.RowDataManager._bringInToRange(RowDataManager.java:105)
at oracle.adfinternal.view.faces.model.binding.RowDataManager.setRowIndex(RowDataManager.java:63)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$FacesModel.setRowIndex(FacesCtrlHierBinding.java:603)
at org.apache.myfaces.trinidad.component.UIXCollection.setRowIndex(UIXCollection.java:442)
at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.renderDataBlockRows(TableRenderer.java:1837)
at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer._renderSingleDataBlock(TableRenderer.java:1601)
at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer._handleDataFetch(TableRenderer.java:968)
at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.encodeAll(TableRenderer.java:504)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(UIXCollection.java:529)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:415)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2567)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:432)
at oracle.adfinternal.view.faces.renderkit.rich.PanelBoxRenderer._encodeAllChildren(PanelBoxRenderer.java:1330)
at oracle.adfinternal.view.faces.renderkit.rich.PanelBoxRenderer._renderContentRow(PanelBoxRenderer.java:1255)
at oracle.adfinternal.view.faces.renderkit.rich.PanelBoxRenderer.encodeAll(PanelBoxRenderer.java:339)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:415)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2567)
at oracle.adfinternal.view.faces.renderkit.rich.ShowDetailItemRenderer.access$100(ShowDetailItemRenderer.java:31)
at oracle.adfinternal.view.faces.renderkit.rich.ShowDetailItemRenderer$ChildEncoderCallback.processComponent(ShowDetailItemRenderer.java:492)
at oracle.adfinternal.view.faces.renderkit.rich.ShowDetailItemRenderer$ChildEncoderCallback.processComponent(ShowDetailItemRenderer.java:465)
at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:170)
at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:290)
at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:255)
at oracle.adfinternal.view.faces.renderkit.rich.ShowDetailItemRenderer._encodeChildren(ShowDetailItemRenderer.java:407)
at oracle.adfinternal.view.faces.renderkit.rich.ShowDetailItemRenderer.encodeAll(ShowDetailItemRenderer.java:114)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:415)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2567)
at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:1963)
at oracle.adfinternal.view.faces.renderkit.rich.PanelTabbedRenderer.access$500(PanelTabbedRenderer.java:39)
at oracle.adfinternal.view.faces.renderkit.rich.PanelTabbedRenderer$BodyEncoderCallback.processComponent(PanelTabbedRenderer.java:1059)
at oracle.adfinternal.view.faces.renderkit.rich.PanelTabbedRenderer$BodyEncoderCallback.processComponent(PanelTabbedRenderer.java:1010)
at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:170)
at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:290)
at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:255)
at oracle.adfinternal.view.faces.renderkit.rich.PanelTabbedRenderer._renderTabBody(PanelTabbedRenderer.java:606)
at oracle.adfinternal.view.faces.renderkit.rich.PanelTabbedRenderer.encodeAll(PanelTabbedRenderer.java:262)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:415)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2567)
at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer._encodeChild(PanelGroupLayoutRenderer.java:405)
at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.access$300(PanelGroupLayoutRenderer.java:30)
at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:654)
at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:573)
at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:170)
at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:290)
at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:255)
at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.encodeAll(PanelGroupLayoutRenderer.java:330)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:415)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2567)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:432)
at oracle.adfinternal.view.faces.renderkit.rich.RegionRenderer.encodeAll(RegionRenderer.java:176)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at oracle.adf.view.rich.component.fragment.UIXRegion.encodeEnd(UIXRegion.java:289)
at org.apache.myfaces.trinidad.component.UIXComponentBase.__encodeRecursive(UIXComponentBase.java:1515)
at org.apache.myfaces.trinidad.component.UIXGroup.encodeChildren(UIXGroup.java:138)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:402)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2567)
at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeCenterFacet(PanelStretchLayoutRenderer.java:297)
at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer._encodeCenterPane(PanelStretchLayoutRenderer.java:574)
at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeAll(PanelStretchLayoutRenderer.java:241)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:415)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2567)
at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeCenterFacet(PanelStretchLayoutRenderer.java:297)
at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer._encodeCenterPane(PanelStretchLayoutRenderer.java:574)
at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeAll(PanelStretchLayoutRenderer.java:241)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:415)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2567)
at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:1963)
at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1044)
at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderSecondPane(PanelSplitterRenderer.java:943)
at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:197)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:415)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2567)
at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeFacet(DecorativeBoxRenderer.java:289)
at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer._encodeCenterPane(DecorativeBoxRenderer.java:442)
at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeAll(DecorativeBoxRenderer.java:258)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:415)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2567)
at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:1963)
at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1044)
at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderSecondPane(PanelSplitterRenderer.java:943)
at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:197)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:415)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2567)
at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeFacet(DecorativeBoxRenderer.java:289)
at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer._encodeCenterPane(DecorativeBoxRenderer.java:442)
at oracle.adfinternal.view.faces.renderkit.rich.DecorativeBoxRenderer.encodeAll(DecorativeBoxRenderer.java:258)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:415)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2567)
at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeCenterFacet(PanelStretchLayoutRenderer.java:297)
at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer._encodeCenterPane(PanelStretchLayoutRenderer.java:574)
at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeAll(PanelStretchLayoutRenderer.java:241)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:415)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2567)
at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:1963)
at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1044)
at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderSecondPane(PanelSplitterRenderer.java:943)
at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:197)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:415)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2567)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:432)
at oracle.adfinternal.view.faces.renderkit.rich.PageTemplateRenderer.encodeAll(PageTemplateRenderer.java:69)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.encodeEnd(ContextSwitchingComponent.java:153)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:415)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2567)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:432)
at oracle.adfinternal.view.faces.renderkit.rich.FormRenderer.encodeAll(FormRenderer.java:220)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:415)
at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2567)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:432)
at oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer.encodeAll(DocumentRenderer.java:1071)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1369)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:765)
at org.apache.myfaces.trinidad.component.UIXComponentBase.__encodeRecursive(UIXComponentBase.java:1515)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeAll(UIXComponentBase.java:785)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:942)
at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:271)
at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:202)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:189)
at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:193)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:710)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:273)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:205)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:97)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:94)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:414)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:138)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:159)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: java.sql.SQLException: Result set already closed
at weblogic.jdbc.wrapper.ResultSet.checkResultSet(ResultSet.java:110)
at weblogic.jdbc.wrapper.ResultSet.preInvocationHandler(ResultSet.java:65)
at weblogic.jdbc.wrapper.ResultSet_oracle_jdbc_driver_OracleResultSetImpl.getString(Unknown Source)
at oracle.jbo.common.StringTypeSQLNativeImpl.getDataFromResultSet(JboTypeMapEntries.java:480)
at oracle.jbo.server.AttributeDefImpl.loadFromResultSet(AttributeDefImpl.java:2318)
... 222 more
Edited by: user5802014 on Aug 12, 2010 10:48 AMYou are calling commit on every row inside your for loop. I would avoid this because it's time consuming.
Next thing I noticed is that you call the commit directly on the application module bypassing all binding layer stuff.
Try putting the commit operation into the bindings and call it there. This will give the framework the chance to do its stuff.
If this does not help you can re execute the query of the VO in question after updating the selected rows.
Timo -
Please Help! ?Result Set not updating correctly
Hi
This problem has been driving me mad for days now so if anyone can shed any light on it I?d be really grateful.
I have a jTable in a frame which is populated via a database. (NB I?m using Access 2000 and the JDBC-ODBC driver v.4.00.6019). Data is added to the table via a dialog box. i.e. when the submit button on the dialog box is clicked, the new data input into textfields and text areas in the dialog box is added to the database and then the database is requeried so that the data just added is also displayed in the table. The database is updated every time with no problems, I?m sure of this, however the jTable is not. Sometimes the jTable displays the updated data, other times it doesn?t. e.g. say I input ?a? via the dialog box, this value does not appear in the table. Then I input ?b? say, and ?a? will then be added to the table or sometimes ?a? and ?b? together. Sometimes the table is updated first time no problem, other times I have the scenario mentioned above.
I?ve looked at the result set that?s being returned when the database is requeried and it contains exactly the same data that appears in the jTable. So despite the fact that the database is definitely updated, I?m getting an incorrect result set. I?m using only the one connection object that?s created when the application is begun. I?ve even tried a dummy select statement before my proper requery of the database (as I?ve seen mentioned for a similar problem) but this doesn?t solve the problem.
I am ?refreshing? the jTable by way of a refresh method in the jTable?s Table Model.
The code is:
public void refresh ()
rows.clear();
firstColumn.clear();
try {
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
boolean moreRecords = rs.next();
do
rows.addElement( getNextRow (rs,rsmd));
while (rs.next() );
statement.close();
catch ( SQLException sqlex )
sqlex.printStackTrace();
this.fireTableDataChanged();
}//End of Method And the actual refresh method is being called when the dialog box is closed:
void jButton4_actionPerformed(ActionEvent e) {
TimetableDialog tdBox = new TimetableDialog (this,"Enter Date and Event",true,dealName);
setDialogBoxLocationCentre (tdBox);
tdBox.setVisible(true);//Code below this not executed until Dialog disposed of
boolean validData = tdBox.returnDataValid();
timetableModel.refresh();
Does anyone have any idea what might be going on? It is vital that I solve this. Thanks a lot for any help.
LGSAccording to the documentation on the Connection class. New Connections are auto-commit by default, but the commit takes place irregularly.
"The commit occurs when the statement completes or the next execute occurs." This maybe where the ambiguity occurs. Maybe try forcing the commit connection.commit(); -
SSIS and Update-Insert(Upsert) based on a SQL Server Result Set
So on a weekly basis, I have to sweep a sub-set of our Member data. So my query is built to produce this result set. I then have to take that result set and compare it to a data table which contains all that same information that I have provided to a 3rd
party vendor. So I need to take into account the following scenarios...
Obviously, if the Member is new, then I have to Insert its row to what we'll call table 3rdPartyMember and create a row out on a 3rdPartyMemberAuditTrail Table
Individually, I also have to manage if any of the following data fields have changed: Name, Birth Date, Addressing Information, Member Plan, Member Termination...and by Individually what I mean is that if the Last Name has changed, then update its row in
3rdPartyMember and Insert a row to 3rdPartyMemberAuditTrail indicating "Last Name Change"...and similarly if Address Line 1 has changed..."Address Line 1 Change"
So I guess my question is this. Should this be done in one whole Stored Procedure invoked by my SSIS Package or should it be done in pieces?
Create the Temporary Table to house our weekly Member subset extract and result set
Determine if the row exists on 3rdPartyMember Table and if it does not, Insert it
If the row exists, determine if there is a First Name Change...Last Name Change...BirthDate change...Address Line 1 change...etc... If there is a change, Update 3rdPartyMember Table and also Insert a row to 3rdPartyMemberAuditTrail indicating the change
Based on all this, I'm just not sure the right way to approach this...meaning should we create one big Stored Procedure to handle everything or each individual data point in my SSIS as an UpSert based on its lookup. I am new to the SSIS World and don't really
know what the generally accepted practice is per se of creating and running an SSIS Package with multiple data point update steps or doing so in one big Stored Procedure.
Also....if anyone know of some good YouTubes or web sites that would instruct me as to how to go about doing this, I'd GREATLY appreciate it.
Thanks for your review and am hopeful for a reply.In my opinion using SSIS is quite a pain for Upsert-functionality, especially with your requirement of maintaining an audit trail. With Google you can probably find 20 different variants all of which are quite complex. I would go for the procedure
version just to keep my sanity. It is so easy to test and verify.
I have been using an excellent Uppsert add on from Pragmatic Works Task Factory, but that would not help with the audit trail, though...
http://pragmaticworks.com/Products/Features?Feature=UpsertDestination(BatchUpdateOrInsert)
I recently discovered the CHECKSUM-function in Transact-SQL, it might simplify your code and certainly improve performance, if you have lot's of rows.
Here is an example:
create table member
(id int primary key,
name char(10) not null,
address char(20) not null,
checks int not null);
create table member3p
(id int primary key,
name char(10) not null,
address char(20) not null,
checks int not null);
create index xmember3p on member3p(id,checks);
--create member3p_audit (...);
insert into member values(1,'tom','new york',0);
insert into member values(2,'mary','dallas',0);
insert into member values(3,'marvin','durham',0);
update member
set checks = checksum(name,address);
insert into member3p values(1,'tom','new york',0);
insert into member3p values(2,'mary','chicago',0);
update member3p
set checks = checksum(name,address);
insert into member3p
select *
from member m
where not exists
( select *
from member3p m3p
where m3p.id = m.id );
-- insert into audit...
select m.*,
case
when m.name <> m3p1.name then 'x'
else ' '
end as name_change,
case
when m.address <> m3p1.address then 'x'
else ' '
end as adr_change
from member m,
member3p m3p1
where m.id = m3p1.id and
exists
( select *
from member3p m3p2
where m3p2.id = m.id and
m3p2.checks <> m.checks );
-- loop and update member3p and member_audit-- It's OK to update columns that were not changedupdate member3p set name = @new_name, address = @new_address; -
How can I use ONE Text search iView to event/affect mutliple Result Sets?
hello everyone,
i have a special situation in which i have 6 flat tables in my repository which all have a common field called Location ID (which is a lookup flat to the Locations table).
i am trying to build a page with a free-form text search iView on Table #1 (search field = Location ID). when I execute the search, the result set for Table #1 is properly updated, but how do I also get Result Set iViews for Tables #2-6 to also react to the event from Text Search for Table #1 so that they are updated?
i don't want to have to build 6 different text search iViews (one for each table). i just want to use ONE text search iView for all the different result set tables. but, in the documentation and iView properties, the text search iView doesn't have any eventing.
if you have any suggestions, please help.
many thanks in advance,
mmhello Donna,
that should not be a problem, since you are detailw with result sets and detail iviews because custom eventing can be defined for those iviews.
Yes, it says "no records" found because an active search and record selection havent' been performed for it (only your main table does).
So, yes, define a custom event, and pass the appropriate parameters and you should be fine.
Creating a custom event between a Result Set iView and an Item Details iView is easy and works. I have done it.
See page 35 of the Portal Content Development Guide for a step-by-step example, which is what I used.
For my particular situation, the problem I'm having is that I want the Search Text iView's event (i.e., when the Submit button is pressed) to be published to multiple iViews, all with different tables. Those tables all share some common fields, which is what the Search iView has, so I'd like to pass the search critera to all of the iViews.
-mm -
How do I create an Event Handler for an Execute SQL Task in SSIS if its result set is empty
So the precedence on my entire package executing is based on my first SELECT of my Table and an updatable column. If that SELECT results in an empty result set, how do I create an Event Handler to handle an empty result set?
A Newbie to SSIS.
I appreciate your review and am hopeful for a reply.
PSULionRPDepends upon what you want to do in the eventhandler. this is what you can do
Store the result set from the Select to a user variable.
Pass this user variable to a Script task.
In the Script task do whatever you want to do including failing the package this can be done by failing the script task, which in turns fails the package. something like
Dts.TaskResult = Dts.Results.Failure
Abhinav http://bishtabhinav.wordpress.com/ -
Problem in Retrive values from result set
I have a class where i do all database operation .First i fire select query and take values from result set and based on that value i fire update query.
Problem is that i am not getting all values from result set . i get only last value and when i fire update query i get error as :Resultset is closed.
I am using acess and java.You probably are using the same Statement object for both queries? Try creating separate Statement objects for each query. (My guess is this a problem with the way you're using JDBC, not a Servlet issue.)
-
Result set is too large; data retrieval restricted by configuration
Hi,
While executing query for a given period, 'Result set is too large; data retrieval restricted by configuration' message is getting displayed. I had searched in SDN and I had referred the following link:
http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/d047e1a1-ad5d-2c10-5cb1-f4ff99fc63c4&overridelayout=true
Steps followed:
1) Transaction Code SE38
2) In the program field, entered the report name SAP_RSADMIN_MAINTAIN and Executed.
3) For OBJECT, entered the following parameters: BICS_DA_RESULT_SET_LIMIT_MAX
4) For VALUE, entered the value for the size of the result set, and then executed the program:
After the said steps, the below message is displayed:
OLD SETTING:
OBJECT = VALUE =
UPDATE failed because there is no record
OBJECT = BICS_DA_RESULT_SET_LIMIT_MAX
Similar message is displayed for Object: BICS_DA_RESULT_SET_LIMIT_DEF.
Please let me know as to how to proceed on this.
Thanks in advance.Thanks for the reply!
The objects are not available in the RSADMIN table. -
SQL query with parameter returns empty result set, please help !!!
Hi there,
When I use the following query :
<sql:query var="beroepsthemas" >
select *
from beroepsthemas
where beroepsthemaid = ?
<sql:param value="12"/>
</sql:query>
When I want to browse the result set with :
<c:forEach items="${beroepsthemas.rows}" var="rij">
it shows no records. But it must return at least one.
All my jsp pages with sql queries and parameters have the same problem.
This is all on my test environment. I'm using Ubuntu 5.10, Netbeans5.0, JDK 1.5_06, application runs in Bundeled Tomcat 5.5.9, MySQL 4.1.12, mysql-connector3.1.6
When the same code is run on the live environment, it works just fine.
The difference is :
Mysql 4.1.10a, tomcat5.5.9, mysql-connector3.1.6
What can there be wrong !!When the same code is run on the live environment, it
works just fine.
The difference is :
Mysql 4.1.10a, tomcat5.5.9, mysql-connector3.1.6
I didn't catch this. I think you may need to update the database driver. -
Message "Error in connection:No result set, result attempts = 100" on VC
Hi,
I am using a JDBC datasource to retrieve, update, insert and delete information from a SQL Server database using executing store procedures from VC.
The selection of the data is perfect but for the deletion, insert or update of any data using store procedures I always get the following message:
"Error in connection:No result set, result attempts = 100"
At the end the information is modified in the database but I get error.
Here is an example of one of my store procedure:
CREATE PROCEDURE [dbo].[DelData]
@id uniqueidentifier
-- Add the parameters for the stored procedure here
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
delete from data
WHERE Rowid=@id;
END
Let me know if somebody knows the reason of this and if there is something that I am doing wrong.
Thanks,
ZarehHi,
when you SELECT data, you get a result. So your connection gets a result set. When you DELETE, INSERT,... you have no result, because you didn't select data. So your connection can't get any result sets.
best regards,
Christian -
Need help in restricting a result set from a UNION in MERGE
Hello,
Would really appreciate if anybody could help me out with the issue I am facing with the below statements (I am new to Oracle ):
merge into table_name_1 p
using
select p_key, value_1, value_2
from some_tables
UNION
select p_key, value_1, value_2
from some_tables
UNION
)t
on (p.p_key = t.p_key)
when matched then
update table_name_1 with value_1 and value_2
when not matched then
insert table_name_1 with p_key, value_1, value_2;
Now, the union of all those selects gives me distinct values and it works most of the times but when I get values like below, the merge fails:
p_key-----value_1-----value_2
100-----25-----50
100-----NULL-----50
I browsed the net and understood the reason behind this: the result set becomes ambiguous and merge doesn't know which row to insert first and which one to update.
Now, my requirement is: I could have any of the below scenario/result sets from the union and I need only 1 row per p_key -
result_set_1
p_key-----value_1-----value_2
100-----25-----50 ***************need this row
100-----NULL-----50
100-----NULL-----NULL
result_set_2
p_key-----value_1-----value_2
100-----25-----NULL ***************need this row
100-----NULL-----NULL
result_set_3
p_key-----value_1-----value_2
100-----25-----NULL ***************need this row (p_key = 100)
100-----NULL-----NULL
200-----NULL-----75 ***************need this row (p_key = 200)
200-----NULL-----NULL
300-----90-----95 ***************need this row (p_key = 300)
So, I basically need a way to restrict the values that I will get from the UNION of all those selects to fit the requirement above, hope I was able to explain the issue I am facing.
Any help would be greatly appreciated.
Thanks,
DpunkIn all cases the goal is to find an order by value that will make the row you want be first.
The query I gave is calculating a priority for each row by adding up values showing whether each column is null or not null. The case statements check whether each column is null and need to be added up to give a total priority value.
Value_1 Value_2 Priority
Not Null Not Null 2 + 1 = 3
Not Null Null 2 + 0 = 2
Null Not Null 0 + 1 = 1
Null Null 0 + 0 = 0
The priority value ends up being a bitmap showing whether each value is null or not null. I think that reflects my mathematics background.
Another way of getting the same result (suggested to me by your asking why it needs the "+") would be to use two CASE expressions as separate order by items:
select p_key, value_1, value_2 from
(select p_key, value_1, value_2, row_number() over
(partition by p_key
order by case when value_1 is null then 0 else 1 end DESC,
case when value_2 is null then 0 else 1 end DESC
) as rn
from (your UNION query here)
where rn = 1
A third way is to use a more complex case statement:
select p_key, value_1, value_2 from
(select p_key, value_1, value_2, row_number() over
(partition by p_key
order by case when value_1 is NOT null and value_2 is NOT null then 1
when value_1 is NOT null and value_2 is null then 2
when value_1 is null and value_2 is NOT null then 3
when value_1 is null and value_2 is null then 4
end ASC
) as rn
from (your UNION query here)
where rn = 1 -
Avoid JDBC sender error: Execute statement did not return a result set
Hi!
My JDBC sender adapter towards MS SQL server works fine, with an Execute statement calling a stored procedure that returns the source data needed. The stored procedure itself updates the status of database table records, so that only the unread records are returned each time the stored procedure is called.
However, the communication channel monitoring sets a red flag for the JDBC sender adapter, when there are no values to fetch from the database table (using the stored procedure). Message says: "Database-level error reported by JDBC driver while executing statement 'EXECUTE FetchMessage 1, 9000'. The JDBC driver returned the following error message: 'com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set.'. For details, contact your database server vendor."
This is not an error situation, as I do not expect there to be any values to fetch from the database at all times.
I do not see how to change the stored procedure to avoid this error.
Is there a parameter to be set on the JDBC adapter that I can use, so the red flag is avoided?
Thanks for any input!
Regards,
Oeystein EmhjellenHi Oeystein Emhjellen.
The problem is Store Procedure that has to generate always a ResultSet (or cursor). If it doesn't have a output, you have to generate an Empty ResultSet.
Like a SELECT Statement:
If there are data, SELECT get an output result but if it get nothing the SELECT Statement get a empty ResultSet.
Ask to your database team.
I hope it helps you.
Bruno. -
SQLException after end of result set
hi guys.
im in a lot of bother at the moment.
i have a GUI with a database in mysql. my gui is a recommender system and so users need to log in etc...
i know for certain that the gui does connect to the database because when a new user enters there details it does get updated in the database.
my problem is that when the user tries to gain acces to the system by going to the 'current user' and entering there details nothing happens.
i am finding it very difficult to find out what the problem is, i have been trying for over a week but no luck and im hoping somebody will know how to help me.
please could somebody help me here, i have a very short time aswell. monday.
here is my code below.
thank-you very much for your help
its not normal to post the whole class here but im really really stumped.
the errors that appears in the dos window is SQLException After end of result set.
* Function: This class is used for loggin in. It looks for the user name and password *
* the user enters in the database. If there is no match an error message will appear *
* to the user. If there is a match the system logs the user in and dispalys the chose *
* topic page *
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import com.mysql.jdbc.Driver;
import java.sql.*;
import java.awt.BorderLayout;
import java.io.IOException;
public class CurrentUserFrame extends JPanel implements ActionListener {
// private is used so object variables cannot be changes by another class.
private JButton loginButton = null ;
private JTextField userName = null ;
private JTextField password = null ;
private JLabel userLabel = null ;
private JLabel passwordLabel = null ;
Boolean loginSuccess ;
private JPanel cardPanel = null ;
public CardLayout cardLayout = null ;
protected static com.mysql.jdbc.Driver mysqlDriver = null;
String passwordDbase ;
String usernameDbase ;
private CardLayout getCardLayout () {
if (cardLayout == null ) {
cardLayout = new CardLayout () ;
return cardLayout ;
private JPanel getCardPanel () {
if (cardPanel == null) {
cardPanel = new JPanel () ;
return cardPanel ;
// creates the background colours for the panels by specifying the amounts of red
// green, blue where 0.5F is the least amount and 1.0F is the most
Color currentTitleColor = new Color (0.58F, 0.73F, 0.83F) ;
Color currentMainPanelColor = new Color (0.980F, 0.973F, 0.843F) ;
public CurrentUserFrame ()
setLayout (new BorderLayout ()) ;
JPanel mainCPnl = new JPanel () ;
mainCPnl.setLayout (new BorderLayout ()) ;
JPanel mainPanel = new JPanel () ;
// maindisplaypanel will be set with a borderlayout
mainPanel.setLayout (new BorderLayout ());
JPanel descriptionPanel = new JPanel ();
descriptionPanel.setLayout(new BorderLayout ());
// creates a textarea for the title and description
JTextArea description2 = new JTextArea ("\t\tCurrent User Page\n\n" +
"Please enter your user name and password to login.\n\n" +
"If you have forgotten your user name or password click on " +
" 'FORGOT PASSWORD'.") ;
// stops the text area being edited by the user
description2.setEditable (false) ;
// once the text in description reaches the end of the textarea it will start a new line
description2.setLineWrap (true) ;
//sets the background colour of the textarea
description2.setBackground (currentTitleColor) ;
//sets the type of font with its size for the description textarea
description2.setFont (new Font ("TimesRoman", Font.BOLD, 16)) ;
// the descriptionpanel will be placed in the mainpanel at the top.
mainPanel.add (descriptionPanel, BorderLayout.NORTH) ;
descriptionPanel.add(description2, BorderLayout. NORTH) ;
JPanel currentUserPanel = new JPanel () ;
currentUserPanel.setLayout (new BoxLayout (currentUserPanel, BoxLayout.Y_AXIS)) ;
// creates a button with an actionlistener so t can carryout a task when it is pressed.
// the settooltiptext () method displays a message when the user hovers over the button with the curser
loginButton = new JButton ("Log In") ;
loginButton.addActionListener(this) ;
loginButton.setToolTipText ("Logs you into the system") ;
// creates a text field which is 25 characters in length for the user to enter their name
userName = new JTextField (25) ;
// creates a text field which is 15 characters in length for the user to enter their password
password = new JPasswordField (15) ;
userLabel = new JLabel ("User Name") ;
passwordLabel = new JLabel ("Password") ;
//adds the text fields and the JLabels to the currentuserPanel
currentUserPanel.add (userLabel) ;
currentUserPanel.add (userName) ;
currentUserPanel.add (passwordLabel) ;
currentUserPanel.add (password) ;
currentUserPanel.add (loginButton) ;
JPanel loginPanel = new JPanel () ;
loginPanel.setLayout (new FlowLayout (FlowLayout.CENTER, 0, 170)) ;
loginPanel.setBackground (currentMainPanelColor) ;
loginPanel.add (currentUserPanel, BorderLayout.CENTER) ;
mainPanel.add (loginPanel, BorderLayout.CENTER) ;
JPanel chooseTopicCard = new JPanel () ;
chooseTopicCard.setLayout (new GridLayout (0, 1, 0, 10)) ;
ChooseTopic frame8 = new ChooseTopic () ;
frame8.setVisible (true) ;
chooseTopicCard.add(frame8) ;
// this will create the panel for the maincontent area and sets the layout
JPanel cp = getCardPanel();
cp.setLayout(getCardLayout());
cp.add("card3",mainPanel) ;
cp.add("card7", chooseTopicCard) ;
cardLayout.show (getCardPanel () , "card3") ;
// this adds the cardlayout to the main panel and then adds the mainpanel screen
mainCPnl.add(cp) ;
this.add (mainCPnl) ;
public void actionPerformed (ActionEvent event) {
Object source = event.getSource () ;
if (source == loginButton) {
// creates a string to connect to the local host and database
// the following 10 lines of code is from the mysql website
String url = "jdbc:mysql://:3306/project" ;
Connection con = null ;
// com.mysql.jdbc.Driver is a folder downloaded from mysql website
try {
mysqlDriver = (com.mysql.jdbc.Driver) Class.forName ("com.mysql.jdbc.Driver").newInstance () ;
} catch ( Exception E) {
throw new RuntimeException ("Can not load driver class com.mysql.jdbc.Driver") ;
try {
// attempts a connection with the computer
// root is used as a default so i can have full access to the database
con = DriverManager.getConnection (url,"root","") ;
// trys to log in to the database
// statement is a mysql class
Statement select = con.createStatement ();
ResultSet result = select.executeQuery ("select * from user_login") ;
String userNameText = userName.getText();
String passwordText = password.getText();
if (userNameText.equals("") || passwordText.equals("")) {
JOptionPane okoptionpane = new JOptionPane () ;
okoptionpane.showMessageDialog(null, "You have entered your username or password incorrectly, please try again") ;
while ((result.next()) && (result != null))
//String usernameval ;
//String passwordval ;
passwordDbase = result.getString("password");
usernameDbase = result.getString("user_name");
//passwordDbase = "password";
//usernameDbase = "user_name";
if ((passwordDbase.equals(passwordText)) && (usernameDbase.equals(userNameText))) {
cardLayout.show(getCardPanel(), "Card7");
catch (Exception e) {
e.printStackTrace() ;
finally {
if (con != null ) {
try {con.close () ; }
catch (Exception e) {
e.printStackTrace () ;
LIZooppps, very sorry, you can guess im new to this forum. sorry again. i thought maybe the whole code was needed.
i have posted all the output from the dos window.
java.sql.SQLException: After end of result set
at com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.java:3628)
at com.mysql.jdbc.ResultSet.getString(ResultSet.java:1763)
at com.mysql.jdbc.ResultSet.getString(ResultSet.java:1827)
" at CurrentUserFrame.actionPerformed(CurrentUserFrame.java:214) "
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknow
n Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour
ce)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
i think it is mainly line that is in speach marks. line 214.
the error that comes up says." after end of result set "
thank-you
and sorry once again, im in a bit of a panic,
Liz
Maybe you are looking for
-
SAP Business one 8.8 Integration for SAP Netweaver
hi all, Where to download SAP Business one 8.8 Integration for SAP Net weaver Components(Installation Packages for 32 bit). I installed one B1iSN but its only Integration for SAP Business One Not for SAP Business one 8.8 Integration for SAP Net weave
-
Can i use my mac as a screen for my pc?
can i use my mac as a screen for my pc?
-
Crystal reports error on new server
I'm trying to run a web application that uses crystal reports on a new web server. I recently installed Crystal on the new server and migrated the website over to it. When I try to generate the reports on the website I get the following error: An err
-
Hi All. I need to add some RAM to my MacPRO 2.66 ghz. I bought 8 gigs and I'm being told that XP bit 32 won't recognize more than a certain amount of RAM in a certain configuration. If I have the stock machine (2 GB) and can someone tell me what I ca
-
Using saprouter in solution manager 4.0 environment with SMD
I am currently using Solution manager 3.2 (on SAP basis 6.20 technology). We have not used any Solution Manager functionality that necessitated using the internal ITS, thus all access to solution manager SAP has been through sapgui or RFC. Both the