Solved

First SQl string will not run

Posted on 2002-04-29
12
194 Views
Last Modified: 2010-03-31
I have just started to work with databases and i am having trouble inputing data.  For some reason when i run one INSERT statement it does not populate the table.  However, when i run a second different INSERT statement the first one then does take effect.  Below is my code, can someone explain to me what i am doing wrong...thanks.

-----------------------
package ies;

import java.sql.*;

public class ConnectToDB {

    public static Statement connectToDB(){

      // Load the driver
      try
      {
        // Load the driver class
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

        // Define the data source for the driver
        String sourceURL = "jdbc:odbc:iesDataStore";

        // Create a connection through the DriverManager
        Connection databaseConnection =
                                  DriverManager.getConnection( sourceURL );

        statement = databaseConnection.createStatement();
      }
      catch(ClassNotFoundException cnfe)
      {
        System.err.println(cnfe);
      }
      catch(SQLException sqle)
      {
        System.err.println(sqle);
      }
      return statement;
    }

    public static void main( String[] args ){
      Statement poo = ConnectToDB.connectToDB();

      try{
        poo.execute( "INSERT INTO Estudiante (apellidos, nombre) VALUES ('goo', 'foo')" );
        poo.execute( "INSERT INTO Asignaturas (codigo, titulo, horario) VALUES ('1', '2', '3')" );
      }
      catch( SQLException sqle ){}
    }

    static Statement statement;
}
0
Comment
Question by:menreeq
12 Comments
 
LVL 9

Expert Comment

by:Venci75
ID: 6977735
Try to call commit() method of your database connection after you have executed the INSERT statement
0
 

Author Comment

by:menreeq
ID: 6977775
Its a access database, so do you know what it is i would have to do?
0
 
LVL 4

Expert Comment

by:pellep
ID: 6978216
try
poo.executeUpdate
instead of
poo.execute
0
 

Expert Comment

by:fundoosathish
ID: 6979720
since its an insert statement try out

poo.executeQuery.

0
 
LVL 3

Expert Comment

by:shyamkumarreddy
ID: 6979892
Yeah Men
Use executeQuery to insert into database.
Shyam
0
 

Author Comment

by:menreeq
ID: 6980154
Don´t understand why i would run executeQuery when inserting into the database but i tried it and it did now work, even when i repeated the line twice.  I also tried to run executeUpdate with no success.  Any other ideas?
0
Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

 
LVL 3

Expert Comment

by:shyamkumarreddy
ID: 6980172
MenReeg
You question is a good question. According to the documentation it should be possible to insert using execute/executeQuery/executeUpdate.
I pratically feel it should be driver incapability to handle. Let me check it with other databases also becoming confirming it. I just referred and even literally now i feel it is good question.

Shyam
0
 

Author Comment

by:menreeq
ID: 6980192
Don´t understand why i would run executeQuery when inserting into the database but i tried it and it did now work, even when i repeated the line twice.  I also tried to run executeUpdate with no success.  Any other ideas?
0
 

Author Comment

by:menreeq
ID: 6980241
I just added a (;) to the end of the first sql string and it now executes and commits.

So the line reads
poo.execute( "INSERT INTO Estudiante (apellidos, nombre) VALUES ('goo', 'foo');" );

0
 
LVL 3

Expert Comment

by:shyamkumarreddy
ID: 6980253
Men
Great Job done man.
Hey Sorry i remembered this.
use con.commit() after your insert
Or
Use ; after it i think so.
Shyam
0
 

Author Comment

by:menreeq
ID: 6980274
so is it normal that i end all my sql commands with a semicolon?
0
 
LVL 3

Accepted Solution

by:
shyamkumarreddy earned 50 total points
ID: 6980284
You need to commit it man to see the changes
that is off sure.
Anyway autocommit mode is true. Yet u need to do manually commit.
Shyam
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
scoreUp challenge 14 48
factorial example challenge 10 62
Modeling a class in java 5 32
Unable to start eclipse ? 17 86
Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

28 Experts available now in Live!

Get 1:1 Help Now