?
Solved

First SQl string will not run

Posted on 2002-04-29
12
Medium Priority
?
242 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

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
 
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 200 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

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction Java can be integrated with native programs using an interface called JNI(Java Native Interface). Native programs are programs which can directly run on the processor. JNI is simply a naming and calling convention so that the JVM (Java…
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…
Viewers learn about the scanner class in this video and are introduced to receiving user input for their programs. Additionally, objects, conditional statements, and loops are used to help reinforce the concepts. Introduce Scanner class: Importing…
This video teaches viewers about errors in exception handling.
Suggested Courses
Course of the Month8 days, 6 hours left to enroll

766 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