Вы находитесь на страницах старой версии сайта.
Переходите на новую версию Interface.Ru

Создание JDBC-соединений в Crystal Reports XI

© Зайцев С.Л.

Аннотация

Crystal Reports (CR) XI позволяет еще удобнее, чем прежде, просматривать данные с помощью JDBC-соединений. Вместе с этим продуктом устанавливаются драйверы JDBC и файлы конфигурации отчетов Crystal Reports XI. В cтатье мы поговорим о том, как создать JDBC-соединение (Java Database Connectivity) между Crystal Reports XI и базой данных Microsoft SQL Server 2000 (SQL Server).

Введение

Приведены инструкции по загрузке, установке и конфигурированию комплект разработчика Java-приложений (JDK), драйвера SQL Server JDBC и файла CRConfig.xml. Показано, как создать JDBC-соединение между Crystal Reports XI и базой данных SQL Server.

Чтобы создать JDBC-соединение с Crystal Reports (CR) XI, необходимо следующее:

Настройка среды для соединения JDBC

Загрузка и установка комплекта разработчика Java-приложений (JDK)

Загрузите и установите комплект разработчика Java-приложений (JDK) версии 1.4 (J2SE) или более поздней. J2SE можно загрузить со следующей страницы.

Загрузка и установка драйвера JDBC

Драйверы JDBC для базы данных обычно предоставляются поставщиком базы данных. Обычно драйверы JDBC устанавливаются при установке клиентской части базы данных. Загрузите и установите JDBC-драйвер для базы данных SQL Server здесь.

Конфигурирование файла CRConfig.xml

Для инициализации свойств JDBC-соединения, Crystal Reports XI использует файл CRConfig.xml. Файл CRConfig.xml устанавливается при установке Crystal Reports. По умолчанию файл CRConfig.xml находится в следующей папке:

C:\Program Files\Common Files\Business Objects\3.0\java\

  1. Откройте файл CRConfig.xml в текстовом редакторе.
  2. Сконфигурируйте следующие элементы, как описано ниже.

В файле CRConfig.xml важно правильно указать элемент <Classpath>. Все пути в элементе <Classpath> должны быть правильными. Такие элементы как имена классов драйверов базы данных нужно писать с учетом регистра, потому что различие между строчными и прописными буквами учитывается. Убедитесь, что буквы введены с учетом регистра. Элемент <Classpath> не допускает лишних пробелов и разрывов (переводов) строк. Когда перенос по словам отключен, то элемент <Classpath> должен состоять из одной строки. Это предотвращает появление скрытых разрывов строки в <Classpath>.

ПРИМЕЧАНИЕ Элемент <LogonStyle> можно изменить, но это не обязательно. Если вместо драйвера для конкретной базы данных вы используете общий драйвер, то тэг LogonStyle указывает тот драйвер, который вы собираетесь эмулировать. Допустимые значения <LogonStyle>: DB2, SQLServer и Oracle. Поскольку выполняется соединение с SQL Server, стиль должен быть SQL Server, но не обязательно.

Ниже показан пример файла CRConfig.xml, сконфигурированный для JDBC-соединения с базой данных SQL Server. Изменения, которые вам, возможно, потребуется внести в параметры, принятые по умолчанию, выделены жирным шрифтом.

Пример файла CRConfig.xml для SQL Server

<?xml version="1.0" encoding="utf-8"?><CrystalReportEngine-configuration>
<reportlocation>../..</reportlocation>
<timeout>10</timeout>

<ExternalFunctionLibraryClassNames>
<classname> </classname>
<classname> </classname>
</ExternalFunctionLibraryClassNames>
<keycode>bxsxf23-a2311dz2310-0xya125-y02z3</keycode>
<Javaserver-configuration>
>DataDriverCommon>
<JavaDir> C:\j2sdk1.4.2_06\bin </ JavaDir>
<!-При задании элемента Classpath проверьте следующее.
  • Убедитесь, что все пути к файлам указаны верно.
  • Проверьте, нет ли скрытых переводов (разрывов) строки. Они видны только в том случае, когда перенос по словам в текстовом редакторе отключен.
  • Убедитесь, что имя класса драйвера в элементе <JDBCClassName> указано правильно с учетом регистра букв.
-->
<Classpath>C:\Program Files\Common Files\Business
Objects\3.0\java/lib/crlovmanifest.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/CRLOVExternal.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/CRDBJavaServerCommon.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/CRDBJavaServer.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/CRDBJDBCServer.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/CRDBXMLServer.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/CRDBJavaBeansServer.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/external/CRDBXMLExternal.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/external/log4j.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/cecore.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/celib.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/ebus405.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/corbaidl.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/external/freessl201.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/external/asn1.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/external/certj.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/external/jsafe.jar;C:\Program Files\Common Files\Business
Objects\3.0\java/lib/external/sslj.jar; C:\Program Files\Microsoft SQL Server 2000
Driver for
JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for
JDBC\lib\mssqlserver.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for
JDBC\lib\msutil.jar;$
{ CLASSPATH}</Classpath>
<IORFileLocation>${TEMP}</IORFileLocation>
<JavaServerTimeout>1800</JavaServerTimeout>
<JVMMaxHeap>64000000</JVMMaxHeap>
<JVMMinHeap>32000000</JVMMinHeap>
<NumberOfThreads>100</NumberOfThreads>
</DataDriverCommon>
<JDBC>
<CacheRowSetSize>100</CacheRowSetSize>
<JDBCURL> jdbc:microsoft:sqlserver://SERVERNAME:PORTNUMBER</ JDBCURL>
<JDBCClassName> com.microsoft.jdbc.sqlserver.SQLServerDriver</ JDBCClassName>
<JDBCUserName> username</JDBCUserName>
<JNDIURL></JNDIURL>
<JNDIConnectionFactory></JNDIConnectionFactory>
<JNDIInitContext>/</JNDIInitContext>
<JNDIUserName>weblogic</JNDIUserName>
<GenericJDBCDriver>
<Option>No</Option>
<DatabaseStructure>catalogs,tables</DatabaseStructure>
<StoredProcType>Standard</StoredProcType>
<LogonStyle>SQLServer</LogonStyle>
</GenericJDBCDriver>
</JDBC>
<XML>
<CacheRowSetSize>100</CacheRowSetSize>
<PreReadNBytes>4096</PreReadNBytes>
<XMLLocalURL></XMLLocalURL>
<SchemaLocalURL></SchemaLocalURL>
<XMLHttpURL></XMLHttpURL>
<SchemaHttpURL></SchemaHttpURL>
</XML> <JavaBeans>
<CacheRowSetSize>100</CacheRowSetSize>
<JavaBeansClassPath></JavaBeansClassPath>
</JavaBeans>
</Javaserver-configuration>
</CrystalReportEngine-configuration>

Создание нового отчета с использованием JDBC

Выполнив конфигурирование, можно приступить к созданию отчета.

  1. В диалоговом окне "Database Expert" разверните узел Create New Connection (Создать новое соединение), затем щелкните JDBC (JNDI).
  2. В диалоговом окне JDBC (JNDI) появятся поля Connection URL (URL-адрес для соединения) и Database Classname (Имя класса базы данных). Нажмите кнопку Next(Далее).
  3. Введите информацию для входа, затем нажмите кнопку Finish (Готово).
  4. Если в диалоговом окне "Database Expert" появится список доступных таблиц, значит JDBC-соединение установлено.

Сообщение об ошибке: Unknown Database Connector (Неизвестный соединитель с базой данных)

При попытке установить JDBC-соединение, может появиться следующее сообщение об ошибке:

Unknown Database Connector (Неизвестный соединитель с базой данных) Эта ошибка может появиться по следующим причинам:

Дополнительная информация

За дополнительной информацией обращайтесь в компанию Interface Ltd.

Обсудить на форуме Crystal Decisions

Рекомендовать страницу

INTERFACE Ltd.
Телефон/Факс: +7 (495) 925-0049
Отправить E-Mail
http://www.interface.ru
Rambler's Top100
Ваши замечания и предложения отправляйте редактору
По техническим вопросам обращайтесь к вебмастеру
Дата публикации: 27.10.05