Зайцев С.Л.
Оглавление
 Crystal Reports (CR) XI позволяет еще удобнее, чем прежде, просматривать данные с помощью JDBC-соединений. Вместе с этим продуктом устанавливаются драйверы JDBC и файлы конфигурации отчетов Crystal Reports XI. В cтатье мы поговорим о том, как создать JDBC-соединение (Java Database Connectivity) между Crystal Reports XI и базой данных Microsoft SQL Server 2000 (SQL Server).
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 есть скрытые переводы (разрывы) строки 
- Имена классов драйверов указаны без учета регистра букв (строчные и прописные)
Дополнительная информация