We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

Access Parameter querys in DMX with JSP

Gar04
Gar04 asked
on
Medium Priority
304 Views
Last Modified: 2010-04-01
hey i have an access data base
with many parameter queries
 i was wondering if it is possible to have the same queries incorporated into dreamweaver
if so how exactly
i am using Tomcat and JSP
i'm sure it is possible but have no idea where to begin
any pointers would be great

bit like
select stuff
from tables
where value= item on dropdown list selected by user

Gar
Comment
Watch Question

do you mean using the results form a form to build a sql query?
Ghost
Mick BarryJava Developer
CERTIFIED EXPERT
Top Expert 2010

Commented:
<%@ page import="java.util.*, java.sql.*" %>


<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = null;
PreparedStatement ps = null;
try
{
  con = DriverManager.getConnection("jdbc:odbc:mydb");
  ps = con.prepareStatement("select a, b from table where c=?");
  ps.setString(1, request.getParameter("c"));
  ResultSet rs = ps.executeQuery();
  while (rs.next())
  {
     Object a = rs.getObject("a");
     Object b = rs.getObject("b");
     // do what you want with results
  }
}
%>

Author

Commented:
hey objects thanks for the code
would it be possible for you
to explain to me briefly how it works
as i am a bit unsure??
gaz
>> with many parameter queries
Haven't use MSAcces for a long while, but if my memery serves me, you'll need to use callable statement to call MS-Access parameter queries as well as update/delete/instead queries.

I'll try to see if I can find more information for you.

Author

Commented:
thanks
I could find the webpage that I came acrossed about that topic, but I found something in my old code, there is an example of how to call into MS Access Parameter Query Object, you can use similar interface to call other type of MS Access Query, like append, update, insert and delete query.

CallableStatement cs = null;
cs = conn.prepareCall("{ call query1( ? ) }");
cs.setInt(1, 12 ); //depend on parameter type, you'll use setString, setDouble and etc.
//  more set statement if you have more parameters.
ResultSet rs = cs.executeQuery();
while (rs.next()) {
    ......
I meant I COULDN'T find the webpage. :)
Mick BarryJava Developer
CERTIFIED EXPERT
Top Expert 2010

Commented:
> to explain to me briefly how it works

It makes a queuy on the database using a request parameter.
Mick BarryJava Developer
CERTIFIED EXPERT
Top Expert 2010

Commented:
// get connection to database
 con = DriverManager.getConnection("jdbc:odbc:mydb");
// create query statement
  ps = con.prepareStatement("select a, b from table where c=?");
// bind request parameter 'c' to first query statement
// eg. if queury contains ?c=3 the query would become:
// select a, b from table where c=3
  ps.setString(1, request.getParameter("c"));
// execute the queury
  ResultSet rs = ps.executeQuery();
// loop thru the results one row at a time
  while (rs.next())
  {
// get value of column 'a'
     Object a = rs.getObject("a");
// get value of column 'b'
     Object b = rs.getObject("b");
     // do what you want with results
  }

Author

Commented:
Hey I eventually used something like this:

<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" %>
 <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = null;
CallableStatement cs = null;
try
{
  conn = DriverManager.getConnection("jdbc:odbc:BillBoardCompany");
  cs = conn.prepareCall("{Call SiteSearchQ(?, ?, ?)}");         >>>>>>>>>>>>>>>>>>>>this calls the MS Access Query and then sends the
                                                                                       >>>>>>>>>>>>>>>>>>>> necessary parameters to the query
 
  String siteName = request.getParameter("SiteName");
  if( siteName == null ) siteName = "";
  int selCyc=Integer.parseInt( request.getParameter("SelectCyc"));
  int year=Integer.parseInt( request.getParameter("SelectYear"));
 
     cs.setString(1, siteName );
    cs.setInt(2, selCyc );
    cs.setInt(3, year);
   
  ResultSet rs = cs.executeQuery();
  %>
Mick BarryJava Developer
CERTIFIED EXPERT
Top Expert 2010

Commented:
is it working ok?
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.