Алексей Гость
|
Добавлено: Ср Окт 15 2003 13:41 Заголовок сообщения: Как получить полный набор метаданных от БД? |
|
|
Проблема: /************************************************ ************************************************************ ************************************************************ ************************************************************ *********************************** приведённый здесь фрагмент кода на java (JBuilder6) должен выполнять следующие действия: -если схема базы данных, видимая для текущего установленного JDBC - соединения содержит таблицы (aDataModule.getDatabase1().getJdbcConnection().getMetaData( ).getTables("", "", "TABLE", aTableTypes) != null), то курсор в результирующем наборе данных устанавливается на первую позицию (aDataModule.getDatabase1().getJdbcConnection().getMetaData( ).getTables("", "", "TABLE", aTableTypes).first() Именно при этом возникает ошибка времени выполнения: interbase.interclient.DriverNotCapableException@6b5 - это наиболее полное описание ошибки, которое удалось увидеть. ************************************************** ************************************************************ ************************************************************ ************************************************************ *********************************/ try{ if(aDataModule.ge tDatabase1().getJdbcConnection().getMetaData().getTables("", "", "TABLE", aTableTypes) != null){ aDataModule.getDatabase1().getJdbcConnection().getM etaData().getTables("", "", "TABLE", aTableTypes).first();/*ошибка времени выполнения*/ } while(aDataModule.getDatabase1().getJd bcConnection().getMetaData().getTables("", "", "TABLE", aTableTypes).isLast() == false){ aValues = aDataModule.getDatabase1().getJdbcConnection().getMetaData() .getTables("", "", "TABLE", aTableTypes).getString("TABLE_NAME") + "; "; aDataModule.getDatabase1().getJdbcConnection().getM etaData().getTables("", "", "TABLE", aTableTypes).next(); } aResult = aValues.getBytes(); } catch(Exception exc){/*при сбое ловим SQL - исключение*/ aResult = exc.getMessage().getBytes();/*возвращаем сообщение от бросаемого исключения, если оно есть*/ }
А получить метаданные от БД очень хочется, без этого последовательность переключения между фреймами устанавливать нехорошо, нужно, чтобы эта последовательность определялась динамически. Для этого нужно знать всё о схеме БД, в частности, о таблицах. Как получить полный набор метаданных от БД? И как правильно сним работать? |
|