Member Avatar for itsmeisuru

Hi

The error I stated in the title appears when I try to run the following code in Eclipse. I have created the Table which is named as "Emp" in Microsoft SQL Server. I can't find the error I have done here, and I googled but nothing helped me.. Plz help

import java.sql.*; public class WriteToDB{ public static Connection getConnection() throws Exception{ Connection conn = null; String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; Class.forName(driver).newInstance(); conn = DriverManager.getConnection("jdbc:sqlserver://CSLK-CISVR\\CISVR:1433", "sa", "cambio1234"); System.out.println("Connected to the database"); return conn; } public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { conn = getConnection(); // prepare query String query = "SELECT * FROM Emp"; // create a statement stmt = conn.createStatement(); // execute query and return result as a ResultSet rs = stmt.executeQuery(query); // get the column names from the ResultSet // getColumnNames(rs); } catch (Exception e) { e.printStackTrace(); System.exit(1); } try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("Connection Closed"); } public static void getColumnNames(ResultSet rs) throws SQLException { if (rs == null) { return; } ResultSetMetaData rsMetaData = rs.getMetaData(); int numberOfColumns = rsMetaData.getColumnCount(); // get the column names; column indexes start from 1 for (int i = 1; i < numberOfColumns + 1; i++) { String columnName = rsMetaData.getColumnName(i); // Get the name of the column's table name String tableName = rsMetaData.getTableName(i); System.out.println("column name=" + columnName + " table=" + tableName + ""); } } }
Member Avatar for masijade

Emp is probably a reserved word. Try surrounding the name in quotes or brackets (since this is an MS produced DB it might use the Access quoting process, hence the brackets).

I.E.

"SELECT * FROM \"Emp\"" // or "SELECT * FROM [Emp]"
Member Avatar for itsmeisuru

Thanx for the help. But it doesn't work and I tried more with your help and I could run it in the following way..

"SELECT * FROM [DataBaseName].[dbo].[Emp]"
Member Avatar for masijade

Yep, that's the other thing, using the schema/owner references. I don't know that the brackets are necessary there, and even if they are, then only around the reserved words.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.