Зайцев С.Л.
Оглавление
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, необходимо следующее:
- Crystal Reports XI
- Комплект разработчика Java-приложений (J2SE SDK) версии 1.4 или боле поздней
- JDBC-драйвер базы данных Microsoft SQL Server 2000 (SQL Server)
- Измененный файл CRConfig.xml
Настройка среды для соединения 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\
- Откройте файл CRConfig.xml в текстовом редакторе.
- Сконфигурируйте следующие элементы, как описано ниже.
- <JavaDir>
- <Classpath>
- <JDBCURL>
- <JDBCUserName>
- <JDBCClassName>
В файле 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
Выполнив конфигурирование, можно приступить к созданию отчета.
- В диалоговом окне "Database Expert" разверните узел Create New Connection (Создать новое соединение), затем щелкните JDBC (JNDI).
- В диалоговом окне JDBC (JNDI) появятся поля Connection URL (URL-адрес для соединения) и Database Classname (Имя класса базы данных). Нажмите кнопку Next(Далее).
- Введите информацию для входа, затем нажмите кнопку Finish (Готово).
- Если в диалоговом окне "Database Expert" появится список доступных таблиц, значит JDBC-соединение установлено.
Сообщение об ошибке: Unknown Database Connector (Неизвестный соединитель с базой данных)
При попытке установить JDBC-соединение, может появиться следующее сообщение об ошибке:
Unknown Database Connector (Неизвестный соединитель с базой данных) Эта ошибка может появиться по следующим причинам:
- Неправильно сконфигурирован элемент <Classpath>
- В файле CRConfig.xml есть скрытые переводы (разрывы) строки
- Имена классов драйверов указаны без учета регистра букв (строчные и прописные)
Дополнительная информация