In een Java klasse maak ik een verbinding (DSN less) met een Access database en probeer vervolgens stored procedures toe te voegen. Ziet 'r al volgt uit:
import java.sql.*;
class dbTest {
public static void main(String args[]) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String myDB = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\werkprojecten\\cat 01-05-02.mdb";
String qry = "SELECT * FROM CAT007";
String createSUPPL = "create table SUPPL " +
"(SUP_ID INTEGER, SUP_NAME VARCHAR(40), " +
"STREET VARCHAR(40), CITY VARCHAR(20), " +
"STATE CHAR(2), ZIP CHAR(5))";
String createProcedure = "create proc spOok(bla VarChar(3)) AS SELECT MU_CODE_ME, MU_CODE_DK FROM CAT014 WHERE MU_CODE_ME = bla";
Connection con = DriverManager.getConnection(myDB,"","");
Statement stmnt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
stmnt.executeUpdate(createSUPPL);
stmnt.executeUpdate(createProcedure);
}
Let even niet op ontbrekende haken e.d., het gaat om de CREATE PROC regel.
Als ik geen parameter aan de query toevoeg gaat alles goed. Met parameter krijg ik de melding:
[Microsoft][ODBC Microsoft Access Driver]Syntax error or access violation.
Access violation kan het niet zijn, ik kan immers wel een tabel aanmaken en een niet geparametriseerde query. Volgens alle sites die ik heb geraadpleegd moet dit ook de te gebruiken syntax zijn.
Voor de zekerheid heb ik dezelfde syntax ook even met VB in combinatie met ADO of DAO geprobeerd. Lukt prima, ik krijg de query echter niet te zien in Access zelf (met Java code wel!?), maar als ik de QueryDefs check in de database staat de query er wel degelijk bij
Vóór je reageert: Ja, ik weet dat Access geen échte database is etc.....
Iemand ervaring hiermee?
import java.sql.*;
class dbTest {
public static void main(String args[]) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String myDB = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\werkprojecten\\cat 01-05-02.mdb";
String qry = "SELECT * FROM CAT007";
String createSUPPL = "create table SUPPL " +
"(SUP_ID INTEGER, SUP_NAME VARCHAR(40), " +
"STREET VARCHAR(40), CITY VARCHAR(20), " +
"STATE CHAR(2), ZIP CHAR(5))";
String createProcedure = "create proc spOok(bla VarChar(3)) AS SELECT MU_CODE_ME, MU_CODE_DK FROM CAT014 WHERE MU_CODE_ME = bla";
Connection con = DriverManager.getConnection(myDB,"","");
Statement stmnt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
stmnt.executeUpdate(createSUPPL);
stmnt.executeUpdate(createProcedure);
}
Let even niet op ontbrekende haken e.d., het gaat om de CREATE PROC regel.
Als ik geen parameter aan de query toevoeg gaat alles goed. Met parameter krijg ik de melding:
[Microsoft][ODBC Microsoft Access Driver]Syntax error or access violation.
Access violation kan het niet zijn, ik kan immers wel een tabel aanmaken en een niet geparametriseerde query. Volgens alle sites die ik heb geraadpleegd moet dit ook de te gebruiken syntax zijn.
Voor de zekerheid heb ik dezelfde syntax ook even met VB in combinatie met ADO of DAO geprobeerd. Lukt prima, ik krijg de query echter niet te zien in Access zelf (met Java code wel!?), maar als ik de QueryDefs check in de database staat de query er wel degelijk bij
Vóór je reageert: Ja, ik weet dat Access geen échte database is etc.....
Iemand ervaring hiermee?