Serializing database query results for use as dataproviders

I am executing my database queries in Java and passing my results to flex and creating a chart or datagrid based on the results.  The problem is, I don't know how to code this in Java in a way that flex would understand it.  For instance, Flex wants:
<mx:DataGrid id="dg"  dataProvider="{myArray}">
  <mx:columns>
         <mx:DataGridColumn dataField="column1" />
         <mx:DataGridColumn dataField="column2" />
          <!-- etc ... -->
         <mx:DataGridColumn dataField="columnN" />
      </mx:columns>
</mx:DataGrid>
I need to create this table-like array in Java and have it readable as a dataprovider by flex.  I know about ArrayCollections and Java ArrayLists can be nicely converted to this in Flex, but I just don't know how to create them with a column1, column2, etc. when I don't know from query to query how many columns will be in my results.
Any help would be greatly appreciated!

You don't know in advanced the columns that your queries will return? 
Or the number of records?
Sincerely,
Michael
El 30/04/2009, a las 13:47, Cr99 <[email protected]> escribió:
>
I am executing my database queries in Java and passing my results to 
flex and creating a chart or datagrid based on the results.  The 
problem is, I don't know how to code this in Java in a way that flex 
would understand it.  For instance, Flex wants:
>
<mx:DataGrid id="dg"  dataProvider="">
  <mx:columns>
         <mx:DataGridColumn dataField="column1" />
         <mx:DataGridColumn dataField="column2" />
          <!-- etc ... -->
         <mx:DataGridColumn dataField="columnN" />
      </mx:columns>
</mx:DataGrid>
>
I need to create this table-like array in Java and have it readable 
as a dataprovider by flex.  I know about ArrayCollections and Java 
ArrayLists can be nicely converted to this in Flex, but I just don't 
know how to create them with a column1, column2, etc. when I don't 
know from query to query how many columns will be in my results.
>
Any help would be greatly appreciated!
>

Similar Messages

  • Word Wrap database query results

    In Visual Studio 2005, when you are looking at the results of a database query, or table (show table data) etc., how can you make the results field values wrap like we use to be able to do in VS 2003 and in Visual Interdev.
    If the field values were longer then what was display in the grid output results, you could expand the column width and row height and the field values would wrap to fit.  If I try to do the same thing in VS 2005 or in sql enterprise manager 2005 the field values don't wrap, they remain displayed in one long line and they just get cut off after a specific number of characters.

    I'm a Program Manager on the SQL Server Manageability team.  We own SQL Server Management Studio.  Sorry to hear about your frustration with our product.  The team had many tasks to complete in the SQL Server 2005 timeframe and there are some usability improvements that seem simple and were overlooked.  We are committed to improving our customers' experience with our products.
    I would recommend that you go to http://connect.microsoft.com/SQLServer/ and file this issue.  You'll be able to track it throughout its lifecycle.  Once we have a solution for the scenario, we will let you know which release of SQL Server in which you will be able to see your suggestion.
    So, yes, we are listening :)
    Paul A. Mestemaker II
    Program Manager
    Microsoft SQL Server
    http://blogs.msdn.com/sqlrem/

  • Returning database query results under Apache Axis

    I'm trying to write a web service that will return the results of a standard database query. Does anyone have any pointers on what sort of data structure I should convert my ResultSet to that would be best suited to run under Apache Axis? Currently I am trying to use a String[][][], which Axis can serialize and encode fine, but seems to have problems decoding. If someone has some client-side source that is able to receive a String[][][], please post it, as I would rather not have to change the web services around if at all possible.

    According to IBM, the best way to do this is by returning an array of a complex type. Using this idea, I changed my services to return an array of DBRow objects, which I wrote for this purpose. DBRow is a simple class that contains a single private String[] with get and set accessors, in accordance with the JavaBeans standard. If you need more details, just respond to this topic.

  • Database query results

    I have made a database query:
    try{
    java.lang.Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection con=DriverManager.getConnection("jdbc:oracle:abc@abc","login","pwd");
    HashMap params=new HashMap();
    q=new Query("CORE_SYSTEM/TRN_SHORD_DESC",true);
    dbr=q.executeQuery(params,con);
    taQueryOut.setText(""+q);
    taQueryOut.append(""+dbr);
    }catch(Exception e){
    e.printStackTrace();
    } // end try-catch
    The code is not important, it works.
    What methods are there for me to use for printing out the number of results returned etc. A link to a reference material would be handy too. Note that the database used is Oracle, so if there are any ora-specific functions available, good.

    This is the technique that I use to count rows:
    Quick trick that I use is
    1. make sure that your Statement is type_scroll_insensitive:
    connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);2. move your cursor to the last row(after executing your query)
    resultset.last();3. get the row number:
    int numberOfRows = resultset.getRow(); /*returns the number of rows*/4. set the cursor back to the beginning:
    resultset.beforeFirst();5. ready to process the rows as usual.
    This technique has a drawback though:
    a scrollable resultset has less performance than non-scrollable
    hope this might help,
    Jamie

  • Generate an xml file from Database query results

    Hi, can anyone help me out with this problem I'm having. What are the steps in creating an xml file directly from the results of a database query. I currently have a very simply process that queries a database via a partner link. The query returns the data but it's from this point that I am stuck. I need to create an xml file with the data along with the xml tags. I've looked at dozens of tutorials with no luck.
    I would greatly appreciate help with this.
    bpel rookie

    Should be quite simple.
    Create another partnerlink, configure it to use the file adapter, and write to an XML file. In this case you need to create an XML Schema (.xsd) of the file you want to create.
    Before you write to the file, either add assign steps to copy individual attributes or use a transform activity to convert from the database format to the file (xml) format.

  • Query Result Filtered using User Roles SCSM 2012 R2 RU2

    Hi,
    I have a Query Result setup in a Request Offering that shows the list of Printers using the Printer CI. We have different sites with printers that start with the site location like MTL. There are no filters in the Query Result. What i did is create a Group
    for each site that has the rule "start with" MTL (other groups have other 3 letter prefix). Then i created a user role for each group and only selected the Printer group for the site and i associated the User Role with our AD Site group called MTL-User.
    i did this for each site. Now when i checked the Request Offering at first, with a user that is part of MTL-User group, it showed only the list of printers that started with MTL. Now today i came to check again and the same user is seeing all the printers
    and not just the ones that start with MTL.
    The User Role i made was based on the Read-Only Operator. I just dont know what the problem is

    Thanks for that link. I had thought of something like that but i found it came to the same thing as just using the filter field that is already available when using a Query Result. I retried using User Roles and figured out that the problem is that my test
    user is only part of the MTL-USER group so when i logged in with him into the portal (cireson Portal btw) i would see the proper result. If i logged in with a actual user that is also part of other groups besides MTL-Users, they see all the printers no matter
    which AD group i define in the User Role. 
    So what i figured was that my group is not getting applied as the filter to the query Result and that the Member section in the User role is only to say who can see the Query result list. But then i have my test user for which this setup works...so im confused
    on what exactly is overriding the results.

  • How to generate XML file from oracle database query result

    Hi dudes,
    as stated on the subject, can anyone suggests me how can i achieve the task stated above??
    Here is a brief description of my problem:
    I need to create a XML file once i query from the oracle database, and the query result returned from the database will be stored in XML file.
    I'd searched around the JAXB, DOM, SAXP and the like basic concepts, but i still don't know how to start??
    Any suggestions ???

    Read this:
    http://www.cafeconleche.org/books/xmljava/chapters/ch08s05.html
    You might have to read more of the book to understand that chapter.

  • Fetching query result for editbox

    Hello to everyone. I just started developing Windows application (after 2 years pause). So, I'm working 'with' MFC Dialog based app.
    I want to fill combo box (or edit box it doesn't matter) with MySQL query result. I have these codes:
    void CConnectToMySQLDlg::OnWriteToDatabase()
    CString get, set;
    m_edit.GetWindowText(get);
    CT2CA temp_string(get);
    string s_get(temp_string);
    if (m_edit.GetWindowTextLength() != 0) // if you can please write this line better.
    MySQL_Driver *driver;
    Connection *dbConn;
    Statement *statement;
    ResultSet *result;
    driver = get_mysql_driver_instance();
    dbConn = driver->connect("tcp://127.0.0.1:3306", "root", "connection");
    dbConn->setSchema("world");
    statement = dbConn->createStatement();
    result = statement->executeQuery(s_get);
    //CStringArray comboArray;
    /*comboArray.Add(_T("bir"));
    comboArray.Add(_T("iki"));
    comboArray.Add(_T("uc"));
    comboArray.Add(_T("dord"));
    comboArray.Add(_T("bes"));
    comboArray.Add(_T("ffsfsfs"));
    comboArray.Add(_T("bfsfsfsdes"));
    comboArray.Add(_T("bczxczxes"));
    comboArray.Add(_T("aadafdsbes"));
    comboArray.Add(_T("zczxawfebes"));*/
    //comboMysql.ResetContent();
    string s_set = "string";
    set.Format(_T("%S"), s_set.c_str());
    while (result->next())
    // here how can I set edit box value?
    // So, how can I convert
    AfxMessageBox(L"dsadasd");
    delete result;
    delete statement;
    delete dbConn;
    else // handling user input
    AfxMessageBox(L"not allowed");
    I can get input stream and successfully(1) execute it but I don't know how to set its result(s).
    (1) --- In this case I entered this SQL line:
    select ID, Name from city where ID = 1 or ID = 2 or ID = 3 or ID = 4
    and it alerted me 4 times.
    p.s. If there any problematic codes please tell me the correct variant(s).
    Best regards,
    Mirjalal.

    I solved my problem. I pasted working codes below.
    void CmysqlDlg::OnBnClickedButton1()
    CString get, set, ComboString;
    edit.GetWindowText(get);
    CT2CA temp_string(get);
    std::string s_get(temp_string);
    if (edit.GetWindowTextLength() != 0) // if you can please write this line better.
    MySQL_Driver *driver;
    Connection *dbConn;
    Statement *statement;
    ResultSet *result;
    driver = get_mysql_driver_instance();
    dbConn = driver->connect("tcp://127.0.0.1:3306", "root", "connection");
    dbConn->setSchema("world");
    statement = dbConn->createStatement();
    result = statement->executeQuery(s_get); // executes the user "input"
    comboBox.ResetContent();
    // ofstream y("text.txt"); // actually i don't need this anymore :P
    while (result->next())
    string name_string = result->getString("Name"); // Name is the my tbl column name
    CString cs_name_string(name_string.c_str());
    comboBox.AddString(cs_name_string);
    delete result;
    delete[] result;
    delete statement;
    delete[] statement;
    delete dbConn;
    delete[] dbConn;
    else // handling user input
    AfxMessageBox(L"olmaz");
    Thanks.
    Mirjalal

  • Slow query results for simple select statement on Exadata

    I have a table with 30+ million rows in it which I'm trying to develop a cube around. When the cube processes (sql analysis), it queries back 10k rows every 6 seconds or so. I ran the same query SQL Analysis runs to grab the data in toad and exported results, and the timing is the same, 10k every 6 seconds or so. r
    I ran an execution plan it returns just this:
    Plan
    SELECT STATEMENT  ALL_ROWSCost: 136,019  Bytes: 4,954,594,096  Cardinality: 33,935,576       
         1 TABLE ACCESS STORAGE FULL TABLE DMSN.DS3R_FH_1XRTT_FA_LVL_KPI Cost: 136,019  Bytes: 4,954,594,096  Cardinality: 33,935,576  I'm not sure if there is a setting in oracle (new to the oracle environment) which can limit performance by connection or user, but if there is, what should I look for and how can I check it.
    The Oracle version I'm using is 11.2.0.3.0 and the server is quite large as well (exadata platform). I'm curious because I've seen SQL Server return 100k rows ever 10 seconds before, I would assume an exadata system should return rows a lot quicker. How can I check where the bottle neck is?
    Edited by: k1ng87 on Apr 24, 2013 7:58 AM

    k1ng87 wrote:
    I've notice the same querying speed using Toad (export to CSV)That's not really a good way to test performance. Doing that through Toad, you are getting the database to read the data from it's disks (you don't have a choice in that) shifting bulk amounts of data over your network (that could be a considerable bottleneck) and then letting Toad format the data into CSV format (process the data adding a little bottleneck) and then write the data to another hard disk (more disk I/O = more bottleneck).
    I don't know exedata but I imagine it doesn't quite incorporate all those bottlenecks.
    and during cube processing via SQL Analysis. How can I check to see if its my network speed thats effecting it?Speak to your technical/networking team, who should be able to trace network activity/packets and see what's happening in that respect.
    Is that even possible as our system resides off site, so the traffic is going through multiple networks.Ouch... yes, that could certainly be responsible.
    I don't think its the network though because when I run both at the same time, they both are still querying at about 10k rows every 6 seconds.I don't think your performance measuring is accurate. What happens if you actually do the cube in exedata rather than using Toad or SQL Analysis (which I assume is on your client machine?)

  • Random Database Query Results

    Hello, I am not sure if I posted this topic in the right forum but I really need help in this one.
    Let's say I have a query for a database and I would only need to display around 10 RANDOM results from my query. How do I do this?
    Thanks so much. your help will be very much appreciated.

    Depends on how big your table could be and how much effort you want to put into it.
    Consider 'Random' as pulling a number out of a hat, reading it out and then putting it back into
    the hat.
    You need to write the numbers down as they come out, and as you pull a number, check that it's
    not on your list. If it is, put it back and try again...
    You could use a Vector:
    Vector pulledNumbers = new Vector();
    Random r = new Random();
    int theNumber = -1;
    while(theNumber < 0) {
        theNumber = r.nextInt();
        Integer ii = new Integer(theNumber);
        if (pulledNumbers.contains(ii)) {
            theNumber = -1;
        } else {
            pulledNumbers.add(ii);
    }But a Set would be easier - just say set.add(ii) and it returns false if the item is in the set

  • Query Result Sizes Using LiveOffice

    I'd like to get a community response on this one:
    Can viewers of this post who have LiveOffice product experience answer a question for me?  I am using the Universe Query functionality to place data into Excel.  The result size is roughly 4500 rows by 6 columns of data.  If I remove a condition in the query to expand the results LiveOffice fails with this error:
    Failed to get the document information. (LO 26315)  Maximum character output size limit reached. Contact your BusinessObjects administrator. (Error: ERR_WIS_30272)(6315)
    After checking in Desktop Intelligence...I found the result size of the failed query to be just under 10,000 rows.
    I've been using LiveOffice for some time now, but this is the first instance where I have attempted to run a large amount of data into Excel.  I wouldn't call 10,000 rows a lot, but it is a lot more than I have done in the past.
    Can users of LiveOffice tell me the largest row result they have thrown into Excel using LiveOffice?  It can be with a report part or straight query.  I tried to provide with a webi report part and got the same failure.
    I've logged this with SAP Support and they're baffled so far...

    Hi Gregg,
    what's the data source behind your universe? Can it be the case that somewhere in your results exists a field that holds more than 32K. As far as I know Excel allows 32 K per cell.
    Regards,
    Stratos

  • Filtering a Query result for a specific value of a key figure

    Hi folks,
    I want to filter a query for a specific value of a key figure. The report should display all customer who has an account balance greater than EUR 500'000.
    Can I only implement this kind of filter via a condition in Query-Designer? If I run that query on an InfoCube with non-cumulative key figures over all our customers (> 400'000) I have problems with the consumption of the memory. If I restrict the amount of the customers to 50'000 - 60'000 then it works. It seems that the query reads all customer records in an internal table before applying the condition.
    Is there another way to deal with? Any help appreciated.
    Kind regards
    Hansjörg Luzi
    Graubündner Kantonalbank
    CH-7002 Chur

    You could try to implement an alternative solution: define a new Characteristc with discrete values (in the following example I suppose to have intervals of 10)
    KF -> CHAR
    115 -> 110 (110 <= KF < 120)
      5 ->   0 (  0 <= KF <  10)
    83 ->  80 ( 80 <= KF <  90)
    Then you can use these dicrete values to filter ...
    I know that it's not so "flexible" (discetization must be predefined), but query response time is quicker and you can use Aggregates ...
    Hope it helps
    GFV

  • No Query Result After Using Hierarchy Node Variable (Customer Exit)

    Hi
    I have problem at my query. It doesn't show anything in BEx but when i check the data in BW using tcode LISTCUBE i can display the data.
    This problem happen when i change the restrictions for one of characteristic in filter value.
    The characteristic is custom Infoobject (ZCPARTNER), which like Infoobject Partner Unit.
    Previously I set the restriction with constant value, example : A500,A700,A710,A720,A730,A740 and it worked before.
    But when I change it using hierarchy node variable (customer exit), this problem is arise.
    Here is my code at ZXRSRU01
      WHEN 'ZHIEPART'. --> hierarchy node variable
       BREAK-POINT.
        IF i_step = 2.
        Read from ZZCONSGR information
          LOOP AT i_t_var_range INTO loc_var_range
             WHERE vnam = 'ZZCONSGR' OR vnam = 'ZOCONSGR'. --> read input value from consolidation group variable
            CLEAR l_s_range.
            CLEAR l_s_range-low.
            IF loc_var_range-low EQ '000000000000030000'
               OR loc_var_range-low EQ '000000000000010130'.
              l_s_range-low = 'MEZBUNITMDI'.
              l_s_range-high = '0HIER_NODE'.
            ELSEIF loc_var_range-low EQ '000000000000040000'
               OR loc_var_range-low EQ '000000000000010160'.
              l_s_range-low = 'MEZBUNITMPI'.
              l_s_range-high = '0HIER_NODE'.
            ENDIF.
            l_s_range-sign = 'I'.
            l_s_range-opt = 'EQ'.
            APPEND l_s_range TO e_t_range.
            EXIT.
          ENDLOOP.
        ENDIF.
    Here the hierarchy in BW system:
    XXX Cons Unit Hierarchy Set; InfoObject ; Node Name
    - XXX Cons Unit Hierarchy Set; 0HIER_NODE; ZBUNITALL
      - XXX DownStream ... ; OHIER_NODE; MEZBUNITMDI
         - ME/A730; 0CS_UNIT; MEA730
         - ME/A740; 0CS_UNIT; MEA740
      - XXX Power ; OHIER_NODE; MEZBUNITMPI
        - ME A800 - A808; OHIER_NODE; MEZBUNITMPI
        - PT Mitra xxx; 0CS_UNIT;  MEA820
    Anyone can help my problem? Thank you
    Regards,
    Satria B Tandyono

    Hi Satria,
    Instead of following code ---
    CLEAR l_s_range-low.
    IF loc_var_range-low EQ '000000000000030000'
    OR loc_var_range-low EQ '000000000000010130'.
    l_s_range-low = 'MEZBUNITMDI'.
    l_s_range-high = '0HIER_NODE'.
    ELSEIF loc_var_range-low EQ '000000000000040000'
    OR loc_var_range-low EQ '000000000000010160'.
    l_s_range-low = 'MEZBUNITMPI'.
    l_s_range-high = '0HIER_NODE'.
    ENDIF.
    try this ---
    IF loc_var_range-low EQ '000000000000030000'
    OR loc_var_range-low EQ '000000000000010130'.
    l_s_range-low = 'MEZBUNITMDI'.
    ELSEIF loc_var_range-low EQ '000000000000040000'
    OR loc_var_range-low EQ '000000000000010160'.
    l_s_range-low = 'MEZBUNITMPI'.
    ENDIF.
    Note : whenver the option is EQ, the system takes only low value.

  • Error executing database query, invalid use of:

    I have a problem ColdfusionMX tutorial when I get to add tags
    on top of the code view. And I write the same thing as the
    tutorial.
    I get an error message that says:
    Error executing database query.
    error occurred while processing request.
    Invalid use of ", ", () in query expression
    I need help desperatly,
    Geordeslys,

    The web site you are accessing has experienced an unexpected
    error.
    Please contact the website administrator.
    The following information is meant for the website developer
    for debugging purposes.
    Error Occurred While Processing Request
    Error Executing Database Query.
    Invalid use of '.', '!', or '()'. in query expression
    'ARTISTS.ARTISTID = ART.ARTISTID AND ART.MEDIAID = MEDIA. MEDIAID'.
    The error occurred in
    C:\CFusionMX7\wwwroot\CFIDE\gettingstarted\tutorial\TMPhy0vtntf3u.cfm:
    line 1
    1 : <cfquery name="artwork" datasource="cftutorial">
    2 : SELECT FIRSTNAME, LASTNAME, ARTNAME, DESCRIPTION, PRICE,
    LARGEIMAGE, ISSOLD, MEDIATYPE
    3 : FROM ARTISTS, ART, MEDIA
    Dear CF_dev2,
    Is that what you mean by complete CF code?
    Georgeslys,
    SQL SELECT FIRSTNAME, LASTNAME, ARTNAME, DESCRIPTION, PRICE,
    LARGEIMAGE, ISSOLD, MEDIATYPE FROM ARTISTS, ART, MEDIA WHERE
    ARTISTS.ARTISTID = ART.ARTISTID AND ART.MEDIAID = MEDIA. MEDIAID
    DATASOURCE cftutorial
    VENDORERRORCODE 3092
    SQLSTATE  
    Resources:
    Check the ColdFusion documentation to verify that you are
    using the correct syntax.
    Search the Knowledge Base to find a solution to your problem.
    Browser Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1;
    .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0; IEMB3;
    IEMB3)
    Remote Address 127.0.0.1
    Referrer
    Date/Time 03-Sep-07 07:11 PM
    Stack Trace (click to expand)
    at
    cfTMPhy0vtntf3u2ecfm1461475070.runPage(C:\CFusionMX7\wwwroot\CFIDE\gettingstarted\tutoria l\TMPhy0vtntf3u.cfm:1)
    at
    cfTMPhy0vtntf3u2ecfm1461475070.runPage(C:\CFusionMX7\wwwroot\CFIDE\gettingstarted\tutoria l\TMPhy0vtntf3u.cfm:1)
    com.inzoom.adojni.ComException: Invalid use of
    &apos;.&apos;, &apos;!&apos;, or
    &apos;()&apos;. in query expression
    &apos;ARTISTS.ARTISTID = ART.ARTISTID
    AND ART.MEDIAID = MEDIA. MEDIAID&apos;. in Microsoft JET
    Database Engine code=3092 Type=1
    at com.inzoom.ado.Command.jniExecute(Native Method)
    at com.inzoom.ado.Command.execute(Command.java:40)
    at com.inzoom.jdbcado.Statement.exec(Statement.java:34)
    at com.inzoom.jdbcado.Statement.execute(Statement.java:107)
    at
    coldfusion.server.j2ee.sql.JRunStatement.execute(JRunStatement.java:212)
    at coldfusion.sql.Executive.executeQuery(Executive.java:753)
    at coldfusion.sql.Executive.executeQuery(Executive.java:675)
    at coldfusion.sql.Executive.executeQuery(Executive.java:636)
    at coldfusion.sql.SqlImpl.execute(SqlImpl.java:236)
    at
    coldfusion.tagext.sql.QueryTag.doEndTag(QueryTag.java:500)
    at
    cfTMPhy0vtntf3u2ecfm1461475070.runPage(C:\CFusionMX7\wwwroot\CFIDE\gettingstarted\tutoria l\TMPhy0vtntf3u.cfm:1)
    at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152)
    at
    coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:349)
    at
    coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
    at
    coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:225)
    at
    coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:51)
    at coldfusion.filter.PathFilter.invoke(PathFilter.java:86)
    at
    coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:27)
    at
    coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:69)
    at
    coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:2 8)
    at
    coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
    at
    coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
    at
    coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
    at
    coldfusion.filter.RequestThrottleFilter.invoke(RequestThrottleFilter.java:115)
    at coldfusion.CfmServlet.service(CfmServlet.java:107)
    at
    coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:78)
    at
    jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
    at
    jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
    at
    jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:257)
    at
    jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:541)
    at
    jrun.servlet.http.WebService.invokeRunnable(WebService.java:172)
    at
    jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:318)
    at
    jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:426)
    at
    jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:264)
    at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

  • Access database query resultset in java scriptlet

    Question:
    1) I am Creating a web page and plotting points on the page:
    2) Database query results in decimal values dec_latitude and dec_longiitude.
    3) Perform calculations on lati. & long. in a java scriptlet to create a plot position (xpos, ypos).
    4) Send the xpos and ypos back to the java server page
    5) Use <IMG and absolute positioning to plot the point at position xpos, and ypos.
    6) Repeat until all rows in the query result set have been plotted.
    I don't know how to pass the dec_latitude and dec_longitude to the java scriptlet.
    After the java scriptlet calculation translates the latitude and longitude
    into xpos and ypos, I need to pass the xpos and ypos back to the java server page so that a data point is plotted on a map at position xpos, ypos.
    I tried many ways of doing it but am just guessing as
    to how to pass the data.
    Thanks in Advance. - John
    Here is what I am trying so far .... see snippet below:
    The code below results in a runtime error.
    Am I supposed to create a java object and access that in the java scriptlet? Can the java scriptlet access the latvar and longvar created during the "<c:set var="latvar"... ?
    If not, what mechanisum do I use to access the resulting colums: dec_latitude and dec_longitude? I need the java scriptlet to convert the
    dec_latitude and dec_longitude into a display position based on the number of pixels from the TOP and LEFT (xpos, ypos). Then plot of the data point using the IMG and (xpos, ypos). This will overlay a map whose z-index is lower than the plotted data point.
    *** Query the database ***
    <sql:query var="qryBio">
    SELECT
    DEC_LATITUDE,
    DEC_LONGITUDE,
    ENTRY_TIMESTAMP
    FROM app.biosurvey where
    </sql:query>
    *** for each row retreived from the database ***
    <c:forEach var="row" items="${qryBio.rows}">
    <c:set var="latvar" value="${row.dec_latitude}" scope="page"/>
    <c:set var="longvar" value="${row.dec_longitude} "scope="page" />
    *** java code scriptlet - ***
    *** convert latitude and longitude to xpos and ypos for display ***
    <%
    latitude = (Float)pageContext.getAttribute("latvar"); <--- runtime error !!!!
    longitude = (Float)pageContext.getAttribute("longvar");
    xpos = (int)Math.round(latitude);
    ypos = (int)Math.round(longitude);
    xpos = 1082 - xpos;
    ypos = 700 + ypos;
    pageContext.setAttribute("xpos", xpos);
    pageContext.setAttribute("ypos", ypos);
    %>
    *** plot a point on the display html page overlaying the map ***
    <IMG ID="Row" SRC="smallredbox.jpg" ALT="red box"
    STYLE="position:absolute;
    top:<%=xpos%> px;
    left:<%=ypos%> px;
    z-index:2">
    </c:forEach>

    Thanks
    I still get a runtime error: I translated the code you gave to code below .... which I think is equivalent. See Below: I'm still learning about this stuff so I may not have not translated this properly. Do
    you see what I am doing wrong?
    Best Regards,
    - John
    %@ page language="java" contentType="text/html;
    charset=ISO-8859-1"%>
    <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@ page import="java.lang.Math"%>
    <sql:setDataSource dataSource="jdbc/SampleDB" />
    <c:set var="genus_name" value="${param.genus_name}" />
    <c:set var="species_name" value="${param.species_name}" />
    <c:set var="species_common_name" value="${param.species_common_name}" />
    <c:set var="dd_sighted" value="${param.dd_sighted}" />
    <c:set var="mm_sighted" value="${param.mm_sighted}" />
    <c:set var="yyyy_sighted" value="${param.yyyy_sighted}" />
    <c:set var="species_state" value="${param.species_state}" />
    <c:set var="species_county" value="${param.species_county}" />
    <c:set var="species_country" value="${param.species_country}" />
    <c:set var="dec_latitude" value="${param.dec_latitude}" />
    <c:set var="dec_longitude" value="${param.dec_longitude}" />
    <c:set var="notes" value="${param.notes}" />
    <c:set var="person_first_name" value="${param.person_first_name}" />
    <c:set var="person_last_name" value="${param.person_last_name}" />
    <c:set var="person_street" value="${param.person_street}" />
    <c:set var="person_city" value="${param.person_city}" />
    <c:set var="person_state" value="${param.person_state}" />
    <c:set var="person_zip" value="${param.person_zip}" />
    <c:set var="person_country" value="${param.person_country}" />
    <c:set var="person_email" value="${param.person_email}" />
    <h2>Species Sightings:</h2>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Breckenridge Citizen Bio-Survey Selective Output Page</title>
    </head>
    <body>
    Izaak Walton League of America
    <h1>Breckenridge Citizen Bio-Survey Selective Output</h1>
    <HR>
    <c:if test="${param.action == 'Submit'}">
    <%int xpos = 0;
         int ypos = 0;
         float latitude = 0.0F;
         float longitude = 0.0F;
         float latitudeMpls = 45.06F;
         float longitudeMpls = -93.14F;                    int xposMpls = 1205 - (int) Math.round(latitudeMpls);
         int yposMpls = 735 + (int) Math.round(longitudeMpls);
    %>
    <IMG SRC="minnesota_1990.jpg" ALT="minesota map" style="z-index:1;"> <----- THIS WORKS FINE
    <IMG ID="Row" SRC="smallredbox.jpg" ALT="red box"
    STYLE="position:absolute;
    top:<%=xposMpls%> px;
    left:<%=yposMpls%> px;
    z-index:2"> <----- THIS WORKS FINE FOR HARDCODED MPLS XPOS AND YPOS
    <sql:query var="qryBio">
    SELECT
    PERSON_FIRST_NAME,
    PERSON_LAST_NAME,
    GENUS_NAME,
    SPECIES_NAME,
    SPECIES_COMMON_NAME,
    SPECIES_COUNTY,
    SPECIES_STATE,
    SPECIES_COUNTRY,
    DD_SIGHTED,
    MM_SIGHTED,
    YYYY_SIGHTED,
    DEC_LATITUDE,
    DEC_LONGITUDE,
    NOTES,
    ENTRY_TIMESTAMP
    FROM app.biosurvey where
    genus_name like rtrim(upper('${genus_name}')) AND
    species_name like rtrim(upper('${species_name}')) AND
    species_common_name like rtrim(upper
    ('${species_common_name}')) AND
    species_state like rtrim(upper('${species_state}')) AND
    species_county like rtrim(upper('${species_county}')) AND
    species_country like rtrim(upper('${species_country}')) AND
    person_first_name like rtrim(upper('${person_first_name}')) AND
    person_last_name like rtrim(upper('${person_last_name}')) AND
    person_email like rtrim(upper('${person_email}'))
    </sql:query>
    <c:forEach var="row" items="${qryBio.rows}">
    <--- THE LINE ABOVE WORKS FINE --->
    <c:set var="latvar" value="${row.dec_latitude}" scope="page" />
    <c:set var="longvar" value="${row.dec_longitude} " scope="page" />
    <%
    latitude =
    Float.parseFloat((String)pageContext.getAttribute("latvar"));
    <--- RUNTIME ERROR OCCURS HERE --- SEE LINE ABOVE --->
    longitude =
    Float.parseFloat((String)pageContext.getAttribute("longvar"));
    xpos = (int) Math.round(latitude);
    ypos = (int) Math.round(longitude);
    xpos = 1082 - xpos;
    ypos = 700 + ypos;
    request.setAttribute("xpos",new Integer(xpos));
    request.setAttribute("ypos",new Integer(ypos));
    %>
    IIMG ID="Row" SRC="smallredbox.jpg" ALT="red box"
    STYLE="position:absolute;
    top:<%=xpos%> px;
    left:<%=ypos%> px;
    z-index:2">
    <--- THIS (ABOVE) WORKS FINE WITH CORRECT VALUES FOR XPOS AND YPOS WHEN RUNTIME ERROR DOES NOT OCCUR --->
    </c:forEach>
    </c:if>

Maybe you are looking for