проверить, существует ли таблица в ms доступ через jdbc - PullRequest
0 голосов
/ 29 февраля 2012

Может кто-нибудь сказать мне, как я могу проверить, существует ли таблица в Microsoft Access с помощью подключения к базе данных Java. После поиска я иду что-то вроде Если не IsNull (DlookUp ("Name", "MSysObjects", "Name = 'TableName'")) Таблица существует Я пытался реализовать то же самое в программе JDBC

import java.sql.*;
class CheckTable{
public static void main(String [] rak){
 boolean flag;
 try{
 flag=false;
 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 String dataSourceName="test"; 
 String dbURL="jdbc:odbc:"+dataSourceName;
 Connection con=DriverManager.getConnection(dbURL,"","");
 Statement s=con.createStatement(); 
//s.execute("create table xyz (name text, hiredate date)");
//s.execute("insert into xyz values('xz1','22-dec-2005')");
// s.execute("insert into xyz values('pr','2-21-2009')");
 s.execute(" If Not IsNull(DlookUp('Name','MSysObjects',"Name='xyz'")) Then "+ flag=true + ");

 /* 
      ResultSet rs=s.getResultSet();
  if (rs!=null){
       while(rs.next()){
       System.out.println(rs.getString(1)+rs.getString(2));
      }}
  */      
 }
 catch(Exception e){
    e.printStackTrace();
}
System.out.println(" table exists :"+flag);
   }
  }

Я получаю ошибку в выражении s.execute (), пожалуйста, помогите мне с синтаксисом. ошибки, которые я получаю: ')' ожидается незаконное начало выражения закрытый буквенный символ не утверждение ; освобожденный все ошибки находятся в строке s.execute ("Если не IsNull (DlookUp ('Name', 'MSysObjects'," Name = 'xyz' ")) Тогда" + flag = true + ");

1 Ответ

0 голосов
/ 29 февраля 2012

Попробуйте select 1 from TABLE_NAME. Это выдаст SQLException, если таблица не существует. Изучите SQLState и errorCode - для этого случая будет определенное значение.

К сожалению, коды различны для каждой базы данных, поэтому вам придется распечатать их один раз на консоли, а затем скопировать правильные значения в обработчик исключений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...