Help with [Microsoft][ODBC Microsoft Access Driver]Error in row

hi all,
it seems i have the same problem updating a field in access database here is what my access table has:
a field called userID of type String in Access 2000 on XP.
i wrote the following code in java using Eclipse 3.1.1 ( latest) to update that field:
String database= "jdbc:odbc:Driver={Microsoft Access Driver(*.mdb)};DBQ=";
String url= database + filename.trim() + ";DriverID=22;READONLY=true}";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con= DriverManager.getConnection( url,"","");
con.setAutoCommit(false);
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt.executeQuery("SELECT Users.* FROM Users");
ResultSet rs = stmt.getResultSet();
rs.moveToInsertRow();
rs.updateInt(1,"test");
rs.updateRow();
con.commit();
rs.close();
stmt.close()
con.close();
i get this error :[Microsoft][ODBC Driver Manager] Invalid cursor state
if i use the same code with using re.next(); before rs.moveToInsertRow(); i get [Microsoft][ODBC Microsoft Access Driver]Error in row
i get the errors right at : rs.updateRow();
i dont know what exactly the problem is. why doesnt it get updated and complain about it.
plz help

I'm not sure which JDBC driver you are using.
An access database, by default, has a username and
password as "admin" and "" (ie, empty password).
Actually MS Access has two methods for security. You
are referring to one of them.
If the password of admin is changed, you have to
provide the name of the workgroup information file
also( where it is stored) for making a connection.
I am not sure about the ODBC bridge driver. What iam
using is Atinav's aveConnet JDBC driver. It has
provision for giving username and passwords through
Workgroup information file. In addition to it youcan
give the database password also.
Interesting to note. The bridge for MS Access does
not use that security method. And it will fail if you
set up security using the groups/users adminstration.
The only method it allows is via the "database
password" method.Thank you for your response, but what User ID should I use when I use database password?
openConnection(URL,"xxxx","database password")
thanks again
David Ling

Similar Messages

  • ODBC Microsoft Access Driver Error

    Help! I'm a novice. I have PSE3.0 installed on my laptop (HP Pavillion) which has the Windows XP operating system. It has been working ok for a couple of years and is now causing problems. I was able to import scaned items and photos from files on my hard drive. A couple of days ago, when I tried to do that, I received the following message "[Microsoft [ODBC Microsoft Access Driver] cannot open database]. It may not be a datbase that your application recognizes or the file may be corrupt." I was also not able to import photos directly from my camera chip. Is this an Adobe problem or a MS problem? Any suggestions as to how to fix? Thanks. Hank

    Hello Barb,
    Thanks for your suggestion. Unfortunately that didn't work. When I clicked on "recover" it appeared to go to 66% and then the computer froze up. I had to do a "hard" shutdown.
    I've done a defrag which the system told me was not necessary. That didn't help. I have approx 50% of free space on my hard drive. So I don't think space is an issue.
    For the past few months both the HP photo package and Adobe have been opening when I download photos from my camera. Is it possible that the two programs are somehow interferring with each other. On my last download, the photos wouldn't download to PSE3 and i received the ODBC error message. The photos did download to the HP program.
    I also tried to reinstall the PSE3 program but I received a message that said I currently have a more recent version of Adobe (I suspect that is a reference to the Adobe Reader program) and terminated the installation.
    I'm open to any suggestions. Thanks Hank

  • PSE 5.0 - ODBC Microsoft Access Driver error

    I've been using PSE 5.0 for several years now without major difficulties -- until I burned a CD of personal photos downloaded onto my laptop, and then downloaded them to my desktop.  Ever since then, whenever attempting to edit or delete a photo on my desktop, I get the following error message:
    The OBDC data source reported the following error:  "[Microsoft][ODBC Microsoft Access Driver] Invalid argument."
    Also, hundreds of my Organizer photos simultanously became disconnected when this error message began.
    I've tried several fixes, incl. uninstalling PSE 5.0 and then reinstalling it.  No luck.  I'm hardly a computer expert and am clueless about what could have happened, and what I need to do next.  Help, please!
    PSE 5.0 continues to work perfectly on my laptop, btw.

    Can't help, but you may search for Microsoft error message help at
    http://search.microsoft.com/search.aspx?mkt=en-US&setlang=en-US

  • Non-technical user needs help with Microsoft Access/MS-Query connection

    I've read through some of the other threads on problems with the ODBC connection from MS Access to an Oracle database but as a non-techie I'm afraid I need to ask based on the steps I have always used. I'm not totally inexperienced as I have gone through the same steps on multiple Windows XP machine running different versions of Oracle and Office over the past 10 years but the steps aren't working this time. If there are settings that need to be checked or changed (path, etc.) I'm afraid I'll need specific instructions as to where I need to look for them.
    I'm currently trying to set up a connection on a new laptop running a 64-bit version of Windows 2007 Professional.
    1) I've installed a full 64 bit Oracle 11g client and 32 bit copy of Microsoft Office Professional Plus 2013.
    2) I set up the Oracle data source using the client Net Manager. I can connect from there.
    3) I added it in the Oracle-provided Microsoft ODBC Administrator and can connect from there.
    I the past, after doing this, the was automatically included in the list of ODBC Databases in MS Acess but this time it's not. I tried adding it as a new data source by selecting the Microsoft ODBC for Oracle driver but receive the same  "The Oracle(tm) client and networking components were not found" error message that has plagued so many others.

    This is bad code, for lots of reasons:
    (1) Scriptlet code like this should not be used. Learn JSTL and use its <sql> tags if you must.
    (2) This code belongs in a Java object that you can test outside of a JSP. JSPs are for display only. Let server-side objects do the database work for you.
    (3) You don't close any ResultSet, Statement, or Connection that I can see. Microsoft Access doesn't save any records until you close the Connection.
    (4) You don't have any transactional logic. When you write to a database, you usually want it to be a unit of work that is committed or rolled back together.
    %

  • Error: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]

    I am having a problem inserting/updateing date field of MS Access database with JDBC. I have tried several solutions. Serveral Field formats in the db and several methods with java. I will post my most recent attempt. I can read from the database I just can't write the date to the db, though I can write to any other field with a different datatype.
    Please don't bash me for using MS Access, it is my only option.
    Error: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]Error in row
    if (rs != null){
    while ( rs.next() ) {
    Date tDate;
              //Timestamp tDate;
              //String tDate;
    tDate = rs.getDate("Week");
              //tDate = rs.getTimestamp("Week");
              //tDate = rs.getString("Week");
              java.sql.Date sqlDate = new java.sql.Date( Date.getTime() );
              //java.sql.Timestamp sqlDate = new java.sql.Timestamp( tDate.getTime()
    System.out.println("Date: " + tDate );
    //System.out.println("Date: " + sqlDate );
    //System.out.println("Date: " + rs.getDate ("Date") );
    // 2004-03-24 00:00:00.0 this is Timestamp output
         Cpu.moveToInsertRow();
    Cpu.updateDate("Date_Col",sqlDate );
         //Cpu.updateDate("Date_Col",tDate );
         //Cpu.updateTimestamp("Date_Col", sqlDate);
         Cpu.insertRow();
    Error: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]Error in row
    Please help..........

    I can insert a new row and add all the fields (includeing date (as string)), but I have to use SQL statements. I cannot get the result set functions to work.
    I can retieve a rs just fine and print all the contents of the rs.
    My problem is with rs.updateRow();
    my code is below,
    public class Cpu_Load_Total_Cpu{
    public static void main(String[] args){
    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    String filename = "C:/dev/SHC/Cpu_Java/CFS_Health.mdb";
    String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
    database+= filename.trim() + ";DriverID=22;READONLY=false}";
    Connection con = DriverManager.getConnection( database ,"","");
    Statement stmt = con.createStatement(
    ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_UPDATABLE);
         ResultSet Cpu = stmt.executeQuery("SELECT * FROM Cpu");
    if (Cpu != null){
         while ( Cpu.next() ) {
                   int tUsr, tSys, tWio, tIdle, tTotal_Cpu;
                   tUsr = Cpu.getInt("Usr");
                   tSys = Cpu.getInt("Sys");
                   tWio = Cpu.getInt("Wio");
                   tIdle = 100 - (tSys + tUsr + tWio);
                   tTotal_Cpu = tSys + tUsr + tWio;
                   Cpu.updateLong(8, tTotal_Cpu);
    //or Cpu.updateLong("Total_Cpu", tTotal_Cpu);
    // I get the same error as the post above
    // when I include the Cpu.updateRow(); call
                   Cpu.updateRow();
    // when excluded everything else runs fine, but
    // the db is not updated
    // as stated, everything prints to the screen or pipe when
    // updateRow is excluded
                   System.out.println("Usr: " + tUsr );
                   System.out.println("Sys: " + tSys );
                   System.out.println("Wio: " + tWio);
                   System.out.println("Total_Cpu: " + tTotal_Cpu);
                        con.commit();
                   stmt.close();
                   con.close();
    catch (Exception e) {
    System.out.println("Error: " + e);
    }

  • Can anyone help me with error message regarding ODBC Microsoft access driver?

    In
    Photoshop elemants 5 I am getting the following message when I try to add or delete pictures.
    the OBDC data source reported the following error
    (Microsoft) (ODBC Microsoft access driver)
    cannot open data base 'I'
    It may not be a data base that your application recognizes or the file may be corrupt.
    I have been using this program for about 2 years and have not changed anything.
    Can anyone direct me how to fix this??

    THANKS YOU SO MUCH.......IT WORKED!!!
     "He that hath knowledge spares his words"
    Proverbs 17:27

  • [Microsoft][ODBC Microsoft Access Driver] Syntax error

    I am new to Java. I have tried to write a simple program insert table in Access2002. However, I got the following error,
    ERROR: [Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement
    My code is as follows,
    import java.lang.*;
    import java.sql.*;
    import java.util.*;
    import java.text.*;
    public class dateconv3 {
    public static void main (String[] args) {
    //Setting up the JDBC-ODBC bridge connection
    String DRIVER_NAME = "sun.jdbc.odbc.JdbcOdbcDriver";
    String CONNECTION_URL = "jdbc:odbc:book1";
    // The JDBC Connection Object
    Connection con = null;
    // The JDBC PreparedStatement object
    PreparedStatement ps = null;
    boolean rc = false;
    try { // try under for loop
    // Get an connection
    Class.forName(DRIVER_NAME).newInstance();
    con = DriverManager.getConnection(CONNECTION_URL);
    SimpleDateFormat formatter = new SimpleDateFormat ("yyyy/mm/dd");
    java.util.Date currentTime_1 = new java.util.Date();
    String dateString = formatter.format(currentTime_1);
    ParsePosition pos = new ParsePosition(0);
    java.util.Date currentTime_2 = formatter.parse(dateString, pos);
    java.sql.Date dCurDate=new java.sql.Date(currentTime_2.getTime());
    System.out.println(dCurDate);
    String userid = "1";
    String booktitle = "Java Servlet Programming";
    int amount = 202;
    String sqltxt="INSERT INTO TRANSLOG ( userid, booktitle, date, amount ) VALUES (?,?,?,?)";
    // Create a statement object that we can execute queries with
    ps = con.prepareStatement(sqltxt);
    ps.setString(1, userid);
    ps.setString(2, booktitle);
    System.out.println(currentTime_2);
    java.sql.Date sqlDate = new java.sql.Date(currentTime_2.getTime());
    System.out.println(sqlDate);
    ps.setDate(3, sqlDate);
    ps.setInt(4, amount);
    System.out.println("INSERT into translog table");
    // Execute the statement
    ps.execute();
    rc = true;
    } catch (Exception ex) {
    // Sent the error
    System.out.println("ex.getMessage() print: " + ex.getMessage());
    } finally {
    try {
    if (ps != null) {
    ps.close();
    if (con != null) {
    // Put the connection back into the pool
    con.close();
    } catch (Exception ex) {
    // Ignore any error here
    The Access has been set to the date format yyyy/mm/dd and I got the following result.
    java dateconv3
    2001-01-04
    Thu Jan 04 00:56:00 CST 2001
    2001-01-04
    INSERT into translog table
    ex.getMessage() print: [Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement
    Please advise. I got frustrated with such a silly question. Anybody can help me to resolve it.
    Patrick

    INSERT INTO TRANSLOG ( userid, booktitle, date, amount ) VALUES (?,?,?,?)I don't have Access on my computer at home here, but it is quite possible that "date" is a reserved word in Access's version of SQL. If you can change the column name, I'd recommend you do that. Otherwise try changing your SQL code to this:
    INSERT INTO TRANSLOG ( userid, booktitle, [date], amount ) VALUES (?,?,?,?)
    But be warned that this [trick] doesn't work with other databases.

  • [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

    Hi,
    I am getting following error message ,
    [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.
    When run this code.
    <%@ page import= "java.sql.*"%>
    <%
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con = DriverManager.getConnection("jdbc:odbc:bspipdb");
    Statement st = con.createStatement();
    st.executeUpdate("update tscipshift set 11-Aug-08='M' where TechN='Elamparuthi'");
    %>
    tscipshift=table ,column=11-Aug-08 are all exist.
    I dont know why I am getting error mesage.
    Any idea why?

    Shahbaz2008 wrote:
    you haven't set your user name and password hereI don't believe that's necessary with Access. Then again, it's not an enterprise database.
    Connection con = DriverManager.getConnection("jdbc:odbc:bspipdb");
    change it to this
    Connection con = DriverManager.getConnection("jdbc:odbc:bspipdb","+username+","+password+");
    here pass your username and password...
    In Oracle default user name and password is
    username = scott
    password = tigerSo who uses that? Only an eejit would leave that account open.
    So the statement would be
    Connection con = DriverManager.getConnection("jdbc:odbc:bspipdb","scott","tiger");
    or In Mirosoft Access there is no user name and password so the statement will be Like I said - unnecessary, and not the reason the OP is having problems.
    Connection con = DriverManager.getConnection("jdbc:odbc:bspipdb","","");>
    Besides this change your table name 11-Aug-08 to anything that is not start with number or any special symbols.
    for example aug112008 is good or aug is too good.No, it's still not good if you understand ANYTHING about relational databases and normalization.
    I think it would work.I think you're just as stup!d as the OP.
    %

  • "[Microsoft][ODBC Microsoft Access Driver] Syntax error in field definition

    I am creating a program in Java which has a Database reference application.The Database I am using is MS Access.But whenever I am trying to run the program from DOS Prompt(ie executing the program:java <program name>) I am unable to connenct to the database.The compiling of the program doesn't show any error(ie javac <program name>) The following error is displayed at the DOS Prompt:
    "[Microsoft][ODBC Microsoft Access Driver] Syntax error in field definition."
    Pls give me a detailed help report.If it is a Machine side problem do help me to solve it.Mine is a Compaq Presario Machine,OS:Windows 98,Database:MS Access(Office XP)
    I request you to help me in this matter.Pls email ur responses to:
    [email protected]
    [email protected]

    hi there
    did u configure ur ODBC setting if no then try these steps
    ================== ODBC Settings ========================
    step 1 : go to control panel
    step 2 : ODBC Data Sources
    step 3 : click UserDSN Tab
    step 4 : click ADD Button , Select Microsoft Access Driver , Finish
    step 5 : Give Datasource Name as "DATABASE_NAMEXXX" , no double quotes
    step 6 : use Select and select Database_NAME.mdb from <INSTALL DIRECTORY>\DATABASE_NAME.mdb
    click ok , ok finish
    <INSTALL DIRECTORY> is where yr database is
    =========================================================
    then in yr program
    URL for yr database
    "jdbc:odbc:DATABASE_NAMEXXX" // as name in step 5
    and Driver is
    "sun.jdbc.odbc.JdbcOdbcDriver"
    if u done all these steps then check yr spelling of table and tabel field in yr program
    hope this works for u
    regards
    Satinderjit

  • "java ODBC Microsoft Access Driver Syntax error (missing operator) in query

    Hi I am new to java and I am getting this error message when using java to access and insert data into an MS Access database.
    "java ODBC Microsoft Access Driver Syntax error (missing operator) in query expression"
    The commands are
    String insertCommand = "INSERT into MetricOutput(A1,A,DRR,DeRR,RE,WDRR,WDeRR,WRE,ARF,SRF,HRF,WARF,WSRF,WHRF,SDC,WSDC,MAR,WMAR,H1,H11,H2,H21,cluster) "+
                             "VALUES("+comMappedCount+","+stdCount+","+DRR+","+DeRR+","+RE+","+WDRR+","+WDeRR+","+WRE+","+ARF+","+SRF+","+HRF+","+WARF+","+WSRF+","+WHRF+","+SDC+","+WSDC+","+MAR+","+WMAR+","+H1+","+H11+","+H2+","+H21+",+array)";

    "VALUES("+comMappedCount+","+stdCount+","+DRR+","+DeRR+","+RE+","+WDRR+","+WDeRR+","+WRE+","+ARF+","+SRF+","+HRF+","+WARF+","+WSRF+","+WHRF+","+SDC+","+WSDC+","+MAR+","+WMAR+","+H1+","+H11+","+H2+","+H21+",+array)";After looking at your post in the editor, I see what your real query looks like.  You realize that ",+array[i])" is part of the query, right?  And not actually looking at your Java array?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • [ODBC Microsoft Access Driver] Syntax error (missing operator)

    Aello' - as you can see in my database table their are two
    records to delete based on the HISTORY_ID of 1. This was working
    just fine when I was using a MS SQL Server database but when I
    switched to the MS Access database I get this error now.
    Is their a syntax difference?

    mikeap wrote:
    > Attached code. Clearly their are records to delete, what
    am I missing?
    >
    > Using MS Access database.
    >
    > [Macromedia][SequeLink JDBC Driver][ODBC
    Socket][Microsoft][ODBC Microsoft
    > Access Driver] Syntax error (missing operator) in query
    expression
    > 'R_PROJECT_MEDIA WHERE Media_ID IN (1)'.
    >
    > <cfquery datasource="tbar">
    > DELETE R_HISTORY_MEDIA
    > WHERE History_ID IN (#FORM.pHistory#)
    > </cfquery>
    DELETE
    FROM R_HISTORY_MEDIA
    WHERE History_ID IN (#FORM.pHistory#)
    Jochem
    Jochem van Dieten
    Adobe Community Expert for ColdFusion

  • Error: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too

    Error: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
    I am getting above error in my sql to access database. The program works fine if I remove where clause. But I need where clause for my prgoram. Actually, I am trying to work on user management aspect and it won't allow me to do.
    String query = "select * from user where username="+name; s.execute(query);

    Thanks for the reply. Do you mean
    Can you please further explain. I have a value against which querry is run. Say that value is stored in
    String value; (stores the user names as string)
    and then i create a querry like
    String query = "select * from user where name= 'value'";
    s.execute(query);
    in above query
    user is table name
    name is a field which stores usersname.
    if I put 'value' it does not work but i put actual names 'xxx' it works. But I cannot put actual names here.

  • [Microsoft][ODBC Microsoft Access Driver] COUNT field incorrect

    Hello togehter!
    I get the following error when I try to execute a insert statment in a table:
    [Microsoft][ODBC Microsoft Access Driver] COUNT field incorrect
    I have a table with PictureID (Autowert), Path and Diagnostic (Strings)
    My preparedStatement is:
    INSERT INTO Pictures (Path, Diagnostic) VALUES (?,?)
    Any ideas??

    private static int addPicture(String path, String diagnostic)throws SQLException
              PreparedStatement statement = DataBase.getConnection().prepareStatement("INSERT INTO Pictures (Path, Diagnostic)" +
                   "VALUES (?,?)");
              statement.setString(1,path);
              statement.setString(1,diagnostic);
              statement.executeUpdate();
              statement.close();
    this is the part of my method that is nor working.
    Thanks for your help.

  • URGENT :: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]

    i am trying to execute the following query using jdbc
    String state = "select * from cs_test where Start_Time < DateAdd(\"s\",-19800,now()) AND End_Time >
    DateAdd(\"s\",-19800,now())";
    /java.sql.PreparedStatement querycs_test = c.prepareStatement(state);
    java.sql.Statement querycs_test= c.createStatement();
    java.sql.ResultSet rs = querycs_test.executeQuery(state);
    when i run the same query at the prompt in MS Access it works fine.
    The same line replaced with a simpler query works fine.
    but when i run the above i get an error
    java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

    Here's the value of your query before preparing it:
    select * from cs_test where Start_Time < DateAdd("s",-19800,now()) AND End_Time > DateAdd("s",-19800,now())My SQL refererence doesn't have anything about functions called DateAdd or now. It might be Microsoft specific, in which case when your organization converts to another database your query is going to stop working. Don't use vender specific extensions.
    Was your intention to call a Java method called DateAdd or now? Then your problem is a few missing quotes. Otherwise, I'm sorry I can't be of more help.

  • Java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few...

    Can someone please help me? I get the error java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
    The offending section of code is:
    int resultsTableID = 0;
    query = "SELECT results_table_01 FROM dbo_results_table_01 WHERE image_1_id = '" + file1ID + "' AND image_2_id = '" + file2ID + "'";
    System.out.println(query);
    rs = s.executeQuery(query);
    The select statement comes out:
    SELECT results_table_01 FROM dbo_results_table_01 WHERE image_1_id = '115' AND image_2_id = '116'
    There does not seem to be a problem with the parameter separations, so if anyone can spot what I have done wrong I would appreciate it.
    Thanks

    I have just tried what you advised: Not using single quotes, and I got the same error.
    The query now looks like:
    query = "SELECT results_table_01 FROM dbo_results_table_01 WHERE image_1_id = " + file1ID + " AND image_2_id = " + file2ID;
    Thanks for your help, but it did not work.

Maybe you are looking for