Link to home
Start Free TrialLog in
Avatar of Gar04
Gar04

asked on

Access Parameter querys in DMX with JSP

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
Avatar of copyPasteGhost
copyPasteGhost
Flag of Canada image

do you mean using the results form a form to build a sql query?
Ghost
Avatar of Mick Barry
<%@ 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
  }
}
%>
Avatar of Gar04
Gar04

ASKER

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.
Avatar of Gar04

ASKER

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. :)
> to explain to me briefly how it works

It makes a queuy on the database using a request parameter.
// 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
  }
Avatar of Gar04

ASKER

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();
  %>
is it working ok?
ASKER CERTIFIED SOLUTION
Avatar of modulo
modulo

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial