FAQ for HXTT PDF Packages of type 4 JDBC Driver for PDF file

The most recent version of this document can be viewed at here.

Table of Contents

  1. General Questions
  2. Applet Questions
  3. Remote Access Questions and Client/Server Mode Questions
  4. SQL Questions
  5. Concurrence Questions
  6. Interoperability Questions

General Questions

1. How to know the detailed version information of HXTT PDF package?
1st way: "java com.hxtt.sql.pdf.PDFDriver" will print that information.
2nd way: check that MANIFEST.MF file in jar file.
3rd way: Class.forName("com.hxtt.sql.pdf.PDFDriver").newInstance().toString(); 4rd way: DriverManager.getDriver( url ).toString()

2. Why I got "Illegal key size" for 256-bit AES(Acrobat X and later)?
In Java, by default AES supports a 128 Bit key, if you plans to use 192 Bit or 256 Bit key, java complier will throw Illegal key size Exception, which you are getting. The solution is you will need to download JCE (Java Cryptography Extension) as per your JRE version,(java6, java7 or java8). The JCE zip contains local_policy.jar and US_export_policy.jar . You need to replace these jar form your <JAVA_HOME>/jre/lib/security . If you are on a unix system, it will probably refer to /home/urs/usr/lib/jvm/java-<version>-oracle/ . With Java 9, Java 8u161, Java 7u171 and Java 6u181 the limitation is now disabled by default. You can download local_policy.jar and US_export_policy.jar from our site.

3. What is difference between the HXTT PDF Package, Embedded Package, and Remote Access Package? Can I get some sample code to use the HXTT PDF?
The HXTT PDF supports Embedded and Remote Access. HXTT PDF Package includes a Database GUI manager. If you're accessing the local data, you can use the HXTT PDF Package or Embedded Package. If you're accessing the remote data, you can use the HXTT PDF Package or Remote Access Package. There is no any difference for your code to use anyone of three packages. Please download the demo package from here.

4. What causes the 'No suitable driver' SQLException?
This error usually occurs during a call to DriverManager.getConnection(). The cause can be failing to load the appropriate JDBC driver before calling getConnection(), or specifying an invalid JDBC URL that isn't recognized by your JDBC driver. If you're using a trial version, you will get "No suitable driver" SQLException, and "Evaluation period over" after using about 30 days. The HXTT PDF driver's name is com.hxtt.sql.pdf.PDFDriver, and its JDBC URL:

        Embedded:
                jdbc:pdf:[//]/[DatabasePath][?prop1=value1[;prop2=value2]] (You can omit that "//" characters sometimes)
                        For example:
                                "jdbc:pdf:/."
                                "jdbc:pdf:/c:/data"
                                "jdbc:pdf:////usr/data" for unix or linux:
                                "jdbc:pdf:/./data"
        Access by PDF Server: Skip it if you don't use TCP, RMI or JINI.
                jdbc:pdf://host:port/[DatabasePath]
                        For example: "jdbc:pdf://domain.com:3099/c:/data" if one PDFServer is run on the 3099 port of domain.com

5. How to setup PDF url on the Novell Server?
PDF driver can run on Novell server. You can use directly access or PDFServer to visit your data on Novell server. If your PDF files is at sys:/java/yourdata, the direct URL should be:
jdbc:pdf:///sys:/java/yourdata
or
jdbc:pdf:////java/yourdata

6. I got "java.io.IOException: Permission denied" sometimes for my SELECT query.
Please figure out what directory Java's java.io.tmpdir system property points to, and make sure that directory is writable by the user that runs your Java applications, otherwise you should set tmpdir properity in Connection properity to a writable directory. tmpdir properity indicates whether set a temp directory, Default: the value of JVM's "java.io.tmpdir" property. If that value is incorrect, using the directory of JDBC url.

7. When I used jdbc:pdf:/<DatabasePath>, the connection's schema was empty. "create catalog if not exists pdffiles". What is Catalog?
PDF's schema is always empty. You can use catalog to query subdirectory. Catalog means a directory, which contains some PDF files.

Applet Questions

1. I already configured the .java.policy for my applet, but I continue with problems of "acess denied".
For instance, you're using "jdbc:pdf:/C:/test", and grant codeBase "file:/C:/test" in your policy file, but your applet is running from "D:\sample\CargaStatApplet.html". You should grant codeBase "file:/D:/sample", not "file:/c:/test".

2. http://localhost:8080/jdbcapplet.html, the applet started but returns a Classnotfound com.hxtt.sql.pdf.PDFDriver error in the gui list.
Please add a codebase tag. For instance, "<applet code="jdbcapplet.class" codebase="PDF_Remote_Access_JDBC40.jar"></applet>". The PDF_Remote_Access_JDBC40.jar should be at the same directory of jdbcapplet.html.

Remote Access Questions and Client/Server Mode Questions

1. Client/Server mode question: The data directory is not in the IBM machine where the Java program should run, but instead those PDF files are in another machine with Windows operating system.
com.hxtt.sql.admin.Admin provides a GUI manger for PDF server. For instance, you wish to provide JDBC4.0 remote data access. Please use "java -cp yourdirectrory/PDF_JDBC40.jar com.hxtt.sql.admin.Admin" to start GUI manager, and add a url setting of '"jdbc:pdf://10.32.90.48:" + 8029 +"/"+databaseDirectory' on your host of 10.32.90.48(just an IP sample), then click Start button. Third, you can use 'String url =
"jdbc:pdf://10.32.90.48:" + 8029 +"/"+databaseDirectory;' to visit your PDF database from your IBM machine. If you're running that GUI manager on "yourNT.com" host to visit "c:/database" directory, you can use "jdbc:pdf://yourNT.com:8029/c:/database" on your web application. jdbc:pdf://yourNT.com:8029/c:/database?user=oneuser&password=onepassword can provide a simply user/password verification for client/server mode. If you wish to write a secure PDF server for some sensitive information, embedded encrypt/decrypt functions can help you.

2. Remote access through map network drive question: How to remote access PDF data without PDFServer?
You can share your remote directory which contains your data files, then map it to a local driver.
For Windows: You can connect remote PDF database by sharing the directory and map it to local drive. You should disable the OPLOCKS of your Samba/NT/2000 server. How to turn off opportunistic locking in windows on client and on server side? This is done by manipulating the following registry key:

For client side: oplocks.reg file
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRXSmb\Parameters]
"OplocksDisabled"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters]
"UseOpportunisticLocking"=dword:00000000

For server side: oplocksServer.reg
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]
"EnableOplocks"=dword:00000000

You should put additional registry entry like e.g.
The following registry entries disable opportunistic locking and caching:
HKey_Local_Machine \ System \ CurrentControlSet \ Services \ LanmanServer \ Parameters \ EnableOpLocks must be set to 0.
HKey_Local_Machine \ System \ CurrentControlSet \ Services \ LanmanServer \ Parameters \ CachedOpenLimit must be set to 0.
HKey_Local_Machine \ System \ CurrentControlSet \ Services \ LanmanWorkStation \ Parameters \ UseOpportunisticLocking must be set to 0.
HKey_Local_Machine \ System \ CurrentControlSet \ Services \ LanmanWorkStation \ Parameters \ UtilizeNtCaching must be set to 0. 

For Linux: You can use mounting. One user uses Samba to maped NTFS partitions in Linux servers, and PDF driver works normally like mapping any mount point in Linux.
For Novell: You can map NCP directory as driver or mount NCP directory.

3. Remote access through UNC path question: Can I setup only one datasource to access four servers for my Cold Fusion?
To access one unc path, you can use jdbc:pdf:/\\PC17\c$\values or jdbc:pdf:/\\PC17\val.
To access four unc pathes in the same connection, you need to use a free JDBC url, "jdbc:pdf:/" or "jdbc:pdf:///". Then you can use some full UNC path names in SQL to visit your four servers where your Java VM has right to access.. For instance:

  select * from \\amd2500\e$\pdffiles\test;
  select * from "\\amd2500\d$\pdfiles".test;
  select * from ".".test;
  

4. Remote access through http/https/ftp protocol question: How to let my program to fetch data daily from our web host?

You need to use url database, which supports http protocol, https protocol, ftp protocol, and sftp protocol.

5. Remote access through SAMBA protocol question: How to let my servlet on Linux to access over 300 hundred shared folders that all are on Windows boxes

You need to use SAMBA table, which needn't to map or mount driver.

6. I can't get the com.hxtt.sql.admin.Admin runnig for internet --> intranet
HXTT PDF supports port mapping and NAT route. Let HXTT PDF listening a port on the database server, and modify your route table or NAT table to map an external port to that internal port. You can use "start java -Djava.security.policy=policy com.hxtt.sql.admin.Admin" to start GUI manager. You should add a remote url, for instance, jdbc:pdf://localhost:8029/d:/pdffiles, and click Start button to start that server. Then on your internet client side, you can use jdbc:pdf://externalIP:8029/d:/pdffiles to access your intranet host. externalIP means an external IP or domain name address of your gateway or database server.
BTW, except for TCPServer protocol, HXTT PDF can use also RMIServer protocol. For instance, you have used "start rmiregistry 1099 -J-Djava.security.policy=yourPolicyFile" to startup your rmi service. Then you can use jdbc:pdf://localhost:1099/d:/pdffiles?serverType=RMIServer to let HXTT PDF bind remote service in registry. The key is use "java -Djava.security.policy=policy -Djava.rmi.server.hostname=externalIP com.hxtt.sql.admin.Admin RMISERVER 8029" to start your server. RMIServer protocol is slower much than the default TCPServer protcol.

7. I would like to start a server (TCP) from our application, instead of DBAdmin. I need to be able to programmatically tell the application which profile to start.
Please read Start/Stop Server Programmatically.

8. Is there a way to specify a file path in the url that will connect to a mapped drive in Windows 2000. ie drive \\gomer\pyle\db which is mapped to f drive on the server.
PDF driver can work with mapped driver, and you should use "jdbc:pdf:/f:" to access your data.

Note: If you're using a database file through a UNC path or a mapped drive of Windows, there is a Windows Security restriction. If you run ColdFusion (Tomcat, or tanuki sw wrapper) as a service on Windows, it operates by default as System, and cannot access directories on a remote system or mapped drive; to resolve this issue, do not run ColdFusion (Tomcat, or tanuki sw wrapper) using the local system account.

9. When I click Start button to start a remote service, I get a security excaption: access denied (java.net.SocketPermission 127.0.0.1:8029 connect,resolve)
You have to enable java.net.SocketPermission right in your policy file if you
run a PDF server. Please read
file:///yourdriver|/jdk1.6/docs/guide/security/PolicyFiles.html for more
information about policy file. It is unnecessary to know the specific content
of a policy file, since you can use policy tool to create and maintain your
policy files. Please read
file:///yourdriver|/jdk1.6/docs/tooldocs/win32/policytool.html for policy tool.

10. How to start remote service as MS Windows service and Linux(Solaris) Daemon?
Please read Run HXTT PDFServer as Windows Service or Linux(Solaris) Daemon.

11. How to start remote control when PDFServer is running as Windows service or Linux(Solaris) Daemon?
You can use "java com.hxtt.sql.admin.Admin TCPCLIENT [host:]port [remoteControlPassword]" to start your remote control.

SQL Questions

1. How to use password to open an encrypted PDF file?
For instance, tomcat is the password for testpasswordl.pdf, then you can use the following sql
DECLARE CURRENT_Password '{"testpasswordl":"tomcat"}';
or
set CURRENT_Password='{"testpasswordl":"tomcat"}';
or
DECLARE CURRENT_Password '{"testpasswordl.pdf":"tomcat"}';
or
set CURRENT_Password='{"testpasswordl.pdf":"tomcat"}';
The password is visible only in the same connection

2. How to return text content for a pdf file?
"select STRING_AGG(textline,'\r\n') as content from testpdf.page1;" will return the content for page 1 in testpdf.pdf file.
"select STRING_AGG(textline,'\r\n') as content from testpdf;" will return all content for testpdf.pdf file.

3. How to fill a form in a pdf file?
"select *,words from testpdf.page1;" will return all text content information in testpdf.pdf file.
Then you can use
update testpdf.page1 set Words#>'{1,text}'='not' where CoordinateY=120 and Words#>'{1,text}'='Not';
or
update testpdf.page1 set textline=textline+'?' where CoordinateY<=100;
to replace the old text content.

3. How to cldear content in a pdf file?
delete from testpdf.page3; /* remove all textline in page 3 but it will kepp still old font information*/
truncate table testpdf.page3;/* become a blank page with nothing*/

Concurrence Questions

1. Does HXTT PDF support multi-user access?
The HXTT PDF supports multi-user access, and you can update document incrementally.

Interoperability Questions

1. How to set up HXTT PDF with Tomcat4.1 as PoolableConnection?
This sample shows three PoolableConnections ways through Database Connection Pool (DBCP) Configurations and JNDI Resources( You should read JNDI Datasource HOW-TO and JNDI Resources HOW-TO also.):
In server.xml:

<Context path="" docBase="ROOT" debug="5" reloadable="true" crossContext="true">

    <Resource name="jdbc/testpdfPool1" auth="Container" type="javax.sql.DataSource"/>	
	<ResourceParams name="jdbc/testPDFPool1">
		<parameter>
			<name>factory</name>
			<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
		</parameter>
			
		<parameter>
			<name>maxActive</name>
			<value>50</value>
		</parameter>
	
		<parameter>
			<name>maxIdle</name>
			<value>10</value>
		</parameter>
	
		<parameter>
			<name>maxWait</name>
			<value>10000</value>
		</parameter>
	
		<parameter>
			<name>username</name>
			<value></value>
		</parameter>
		
		<parameter>
			<name>password</name>
			<value></value>
		</parameter>
	
		<parameter>
			<name>driverClassName</name>
			<value>com.hxtt.sql.pdf.PDFDriver</value>
		</parameter>	
		
		<parameter>
			<name>url</name>	
			<value>jdbc:pdf:///d:/pdffiles</value>
		</parameter>
    </ResourceParams>

    <Resource name="jdbc/testPDFPool2" auth="Container" type="com.hxtt.sql.HxttConnectionPoolDataSource"/>	
	<ResourceParams name="jdbc/testPDFPool2">
		<parameter>
			<name>factory</name>
			<value>org.apache.naming.factory.BeanFactory</value>
		</parameter>
			
		<parameter>
			<name>url</name>
			<value>jdbc:pdf:///d:/pdffiles</value>
		</parameter>	
	
		<parameter><name>username</name><value></value></parameter>		
		<parameter><name>password</name><value></value></parameter>		
		<parameter><name>host</name><value></value></parameter>
		<parameter><name>port</name><value>8029</value></parameter>

    </ResourceParams>


    <Resource name="jdbc/testPDFPool3" auth="Container" type="com.hxtt.sql.HxttConnectionPoolDataSource"/>	
	<ResourceParams name="jdbc/testPDFPool3">
		<parameter>
			<name>factory</name>
			<value>com.hxtt.sql.HxttObjectFactory</value>
		</parameter>	
		<parameter>
			<name>url</name>
			<value>jdbc:pdf:///d:/pdffiles</value>
		</parameter>	
	
		<parameter><name>username</name><value></value></parameter>		
		<parameter><name>password</name><value></value></parameter>		
		<parameter><name>host</name><value></value></parameter>
		<parameter><name>port</name><value>8029</value></parameter>
    </ResourceParams>

</Context>

Then you can use the below code to test those PoolableConnections:

	Context initContext = new InitialContext(); 
	Context envContext = (Context)initContext.lookup("java:/comp/env"); 
	
	DataSource ds1 = (DataSource)envContext.lookup("jdbc/testPDFPool1"); 
	Connection conn1 = ds1.getConnection();
	out.println("testPDFPool1 OK:)<br/>");
	Statement stmt1 = conn1.createStatement();
	ResultSet rs1 = stmt1.executeQuery("select * from test");
	if(rs1.next())
	   out.println(rs1.getString(1)+":)<br/>");
	rs1.close();  
	stmt1.close();
	conn1.close(); 
	
	
	DataSource ds2 = (DataSource)envContext.lookup("jdbc/testPDFPool2"); 
	Connection conn2 = ds2.getConnection();
	out.println("testPDFPool2 OK:)<br/>");
	Statement stmt2 = conn2.createStatement();
	ResultSet rs2 = stmt2.executeQuery("select * from test");
	if(rs2.next())
	   out.println(rs2.getString(1)+":)<br/>"); 
	rs2.close();  
	stmt2.close();
	conn2.close();
	
	DataSource ds3 = (DataSource)envContext.lookup("jdbc/testPDFPool3"); 
	Connection conn3 = ds3.getConnection();
	out.println("testPDFPool3 OK:)<br/>");
	Statement stmt3 = conn3.createStatement();
	ResultSet rs3 = stmt3.executeQuery("select * from test");
	if(rs3.next())
	   out.println(rs3.getString(1)+":)<br/>"); 
	rs3.close();  
	stmt3.close();
	conn3.close();

If you use org.apache.commons.dbcp.BasicDataSource, but get "Cannot create PoolableConnectionFactory" Error, you should check your commons-pool-1.x.jar and commons-dbcp-1.*.jar file in $TOMCAT/common/lib directory to see whether two files have the same version. DBCP v1.2 requires Pool v1.2 so that you should update Pool v1.1 from the tomcat website.

If you wish to add more Connection properity, you should use connectionProperties, for instance:

<parameter>
<name>connectionProperties</name>
<value>charSet=Cp737</value>
</parameter>

2. How to set up HXTT PDF with vqServer 1.9.55 as web server?
The key is to use an absolute path as Java libraries' location, and restart vqServer after modified Java libraries.
For instance, your vqServer is installed at C:\vqServer\.
1. Please use http://yourhost:9090/ to visit your administration server.
2. Click on Java libraries in the vqServer control centre menu (http://yourhost:9090/admin?action=libraries&serial=14)
3 Click New library (http://yourhost:9090/admin?lib=New_library&action=edit)
4. Enter C:\vqServer\classes\PDF_JDBC20.jar as location value, PDF Driver as Description value, then click OK button.
5. Please copy PDF_JDBC20.jar into C:\vqServer\classes directory.
6. Please copy ex01.class into C:\vqServer\servlets\servlets
7. Stop and restart vqServer
8. Please use http://yourhost/servlet/yourServlets to get your result.

3. How to set up HXTT PDF with Coldfusion MX 6.1 Application Server?
For instance,your Coldfusion MX is installed at C:\CFusionMX\, and wish to use PDF_JDBC30.jar.
1. Please copy PDF_JDBC30.jar into C:/CFusionMX/wwwroot/WEB-INF/classes/.
2. Use http://yourhost:8500/CFIDE/administrator/index.cfm to enter the CFMX Administrator.
3. Go to the "Java and JVM" of Server Settings, http://yourhost:8500/CFIDE/administrator/settings/jvm.cfm page, and enter the full path, C:/CFusionMX/wwwroot/WEB-INF/classes/PDF_JDBC30.jar, in the Class Path. Then, click "Submit Changes".
4. Restart the CFMX Service.
5. Please go back to the administrator page, and go to the "Data Sources" of Data & Services, http://yourhost:8500/CFIDE/administrator/datasources/index.cfm page, and enter the name for the new datasource, for instance "PDFTest", and select "Other" for the driver. Then Click "Add".
6. Enter the datasource information. JDBC URL is always in the format jdbc:pdf:[//[host:port]]/[DatabasePath], for instance jdbc:pdf:/c:/data. You can set more connection properties in your JDBC URL, for instance: jdbc:pdf:/c:data?delayedClose=15;maxCacheSize=6144;lockTimeout=2000; . Driver class is always com.hxtt.sql.pdf.PDFDriver. Driver name is used to identify the driver in the datasources view, and you can use PDF. Username and password are not required. They can also be specified in the cfquery tag (but datasource verification will fail if you don't enter them). Description is not required.
7. Lastly, please press "Submit" to finalize the entered data.
8. You can find edit.cfm and edit_action.cfm sample in demo pacakge.

4. HXTT PDF with If you run ColdFusion (Tomcat, or alexandria sw and tanuki sw wrapper) on Windows 2000 and Windows XP Pro does not work on mapped drives.

Note: If you're using a database file through a UNC path or a mapped drive of Windows, there is a Windows Security restriction. If you run ColdFusion (Tomcat, or tanuki sw wrapper) as a service on Windows, it operates by default as System, and cannot access directories on a remote system or mapped drive; to resolve this issue, do not run ColdFusion (Tomcat, or tanuki sw wrapper) using the local system account.

The service(For instance, ColdFusion MX Application Server, ColdFusion MX 7 Application Server, or Apache Tomcat) built by ColdFusion (Tomcat, or tanuki sw wrapper) can not access the share directory at other machine by default. But you can do as follows to solve this problem:
1. Right click the service built by ColdFusion (Tomcat, or tanuki sw wrapper) in service manager, and click the property menu.
2. On the open window,select the login tab, click this account radio box, and click the browse button.
3. Select the administrator account(it seems that you should select the administrator account), input the correct password in the password textbox and confirm password textbox.
4. Restart this service, you can find this service can access the share directory at other machine.

5. How to resolve 'DataSet has no unique row identifiers.' issue in JBuilder's QueryDataSet?
You can use __rowid__, a virtual column to avoid that issue, For instance:

        //...
        queryDataSet = new QueryDataSet();
		//...
		queryDataSet.setMetaDataUpdate(MetaDataUpdate.ALL-MetaDataUpdate.ROWID-MetaDataUpdate.TABLENAME);

        queryDataSet.setQuery(new QueryDescriptor(database, "select __rowid__,* from test", null, true,
                Load.ALL));
        queryDataSet.open();

        queryDataSet.setTableName("test");
        queryDataSet.setRowId("__rowid__", true);
		//...

6. How to set HXTT PDF with WebSphere Application Server?
You can download a pdf guide from here.

7. How to set HXTT PDF with Hibernate?
You should download support package and sample from here.

8. How to set HXTT PDF Data Source with Oracle Application Server 10G?
You should read guide at Oracle Application Server 10G(v10.1.3) and Oracle Application Server 10G(v10.1.2.02).

9. How to set HXTT PDF Data Source with JBoss AS 7.0.2?
After downloading HXTT PDF driver jar file. just move the HXTT PDF driver jar file into Jboss 7 installation directory under standalone/deployments (jboss-as-web-7.0.2.Final/standalone/deployments).
Restart your jboss server
Then go to the url and type http://localhost:8080/
click Administration console.
In Jboss Administration console you can press Add button of Datasource Configurations. step 1/3 Datasource Attributes: enter datasource name(testpdf) and jndi name(testpdf) then click Next button. step 2/3 JDBC Driver: select HXTT PDF driver jar file. click Next Nutton. Step 3 Connection Settings: enter connection URL (jdbc:pdf:////data) , Username(null) and Password(null). finally click Done button.

10. How to set HXTT PDF Data Source with Railo 3.3.1 Express?
After downloading HXTT PDF driver jar file. just move the HXTT PDF driver jar file into Railo 3 installation directory under /lib/ext/railo-server/context/library (railo-3.3.1.000//lib/ext/railo-server/context/library).
Restart your Railo server
Then go to the url and type http://localhost:8888/
click Railo Server Administrator (or type http://localhost:8888/railo-context/admin/server.cfm).
In Services - Datasource of Railo Server Administrator console, you can Create new datasource: step 1/2 Name: enter datasource name(testpdf) and Type(Other - JDBC driver) then click create button. step 2/2 enter Class(com.hxtt.sql.pdf.PDFDriver), DSN(jdbc:pdf:////data), Username(null) and Password(null). finally click create button.

11. Where's JDBC Connection Pool Templates for GlassFish?
MS Access template is at http://www.hxtt.com/test/microsoft_access_type4_datasource.xml
Cobol data file template is at http://www.hxtt.com/test/microsoft_access_type4_datasource.xml
MS Excel template is at http://www.hxtt.com/test/microsoft_excel_type4_datasource.xml
Corel Paradox template is at http://www.hxtt.com/test/paradox_type4_datasource.xml
Xbase template is at http://www.hxtt.com/test/dbf_type4_datasource.xml
CSV template is at http://www.hxtt.com/test/csv_type4_datasource.xml
Text template is at http://www.hxtt.com/test/text_type4_datasource.xml
PDF template is at http://www.hxtt.com/test/pdf_type4_datasource.xml
Word template is at http://www.hxtt.com/test/word_type4_datasource.xml
XML template is at http://www.hxtt.com/test/xml_type4_datasource.xml

12. How to set HXTT PDF database in DBeaver?
1. Create a JDBC Data Source for HXTT PDF Data
Open the DBeaver application, in the Databases menu, click the Driver Manager item. Click New to open the Create New Driver form.
In the Driver Name box, enter a user-friendly name for the driver, for isntance, testPDF.
In the Class Name box, enter com.hxtt.sql.pdf.PDFDriver.
In the URL Template box, enter jdbc:pdf: .
In the Category box, enter PDF.
In the Libraries panel, click Add File so that load the driver JAR (for instance, PDF_JDBC40.jar) in DBeaver.
In the Open driver library dialog that appears, select the PDF_JDBC40.jar file.

2. Create a Connection to HXTT PDF Data
In the Databases menu, click New Connection item.
In the Create new connection wizard that results, select PDF, then testPDF.
On the next page of the wizard, click the Driver properties tab.
Add new property, Property Name is database, Value is the path of your database file, for instance, d:/test/pdf .
Click Finish button.

13. How to set HXTT PDF with Apache EmpireDB?
You should download support package from here.

13. Does HXTT PDF driver support XA connections ?
It provides an experimental com.hxtt.sql.HxttXADataSource .

14. How to set HXTT PDF into my projects maven pom.xml.?
For instance,

Once you've downloaded the JAR just add it to your computer repository with:
mvn install:install-file -DgroupId=com.hxtt.sql.pdf -DartifactId=pdfjdbc4 \
     -Dversion=v1.0 -Dpackaging=jar -Dfile=PDF_JDBC40.jar -DgeneratePom=true
The last parameter for generating a POM will save you from pom.xml warnings. 

Include the new dependency by modifying your project's pom.xml. Add the following dependency:
<dependency>
    <groupid>com.hxtt.sql.pdf</groupid>
    <artifactid>pdfjdbc4</artifactid>
    <version>v1.0</version>
</dependency>

Save the pom.xml file and build the project to make sure no errors exist. 

15. How to set HXTT PDF Data Source with JBoss Application Server 4.0.1?
For instance,

<datasources>
  <local-tx-datasource>
    <jndi-name>TestData</jndi-name>
    <connection-url>jdbc:pdf:////data</connection-url>
    <driver-class>com.hxtt.sql.pdf.PDFDriver</driver-class>
    <connection-property name="delayedClose">-1</connection-property>
    <user-name/>
    <password/>
    <min-pool-size>5</min-pool-size>
    <max-pool-size>20</max-pool-size>
    <idle-timeout-minutes>5</idle-timeout-minutes>
  </local-tx-datasource>
</datasources>

16. How to set HXTT PDF database dialect with EclipseLink of Glassfish?
You should download support package and sample from here.

17. How to set HXTT PDF database dialect with TopLink of Glassfish?
You should download support package and sample from here.

18. How to set HXTT PDF database in JasperSoft Studio?
1. right-click a project in the Project Explorer and select New > Data Adapter to open the Data Adapters Wizard.
2. In the DataAdapter File window, choose the project where you want to save the data adapter file. This should be the project that contains the report(s) you want to use with your data adapter.
3. Enter a file name for your adapter and click Next.
4. Select Database JDBC Connection as the data adapter typeand click Next.
5. Enter a name for your adapter. This name is used when you select an adapter for a report.
6. Enter com.hxtt.sql.pdf.PDFDriver for JDBC Driver
7. Enter jdbc:pdf:/yourDatabasePath for JDBC Driver
8. Click Driver Classpah tab.
9. Click Add button to select the PDF_JDBC40.jar file.
10. Click Finish to create the adapter.
The adapter is saved as an XML file in the project location you selected.

19. How to set HXTT PDF database in Jasper Server?
First, copy the Driver to the JasperReports Server Classpath
Now you need to copy the driver (the PDF_JDBC40.jar file) to the classpath of your application server to enable JasperServer to find it.
In general it's best to copy the driver to the application server's shared library location. Refer to your application server documentation for exact locations.
For example in a JapserServer Bundle install on windows this is located at: C:/Jaspersoft/jasperreports-server-cp-7.1.0/apache-tomcat/lib
After these modifications you will need to restart the application server for this settings to take effect. For information on restarting your server see Chapter 3 of the JasperReport Server Install Guide (is located on the /docs folder of your Jasper Server install path)
1. Log into JasperReport Server from your browser using the jasperadmin or superuser account (e.g.: http://localhost:8080/jasperserver-pro)
2. Go to View | Repository, Select a folder where you want to create your Data Source (e.g.: /Data Sources). Right click on the folder name in the repository view and from the context menu select called Add Resource and then click on Data Source. Now you are presented with a screen to enter the settings of your Data Source connection
3. Type choose JDBC Data Source. JDBC Driver option choose Other... .
4. JDBC Driver (required): enter com.hxtt.sql.pdf.PDFDriver
5. URL (required): enter jdbc:pdf:/yourDatabasePath .
6. Click Save button.
7. Data Source Name (required): enter a user-friendly name for the driver, for isntance, testPDF.
8. Click Save button.

20. Met Error 'Property with name ... not found on ' for sql2o when complicated join or subquery.
Sql2o is using meta.getColumnLabel, but JDBC specification will use tableName.column for getColumnLabel when there is column name collision.
you can use
Sql2o sql2o = new Sql2o(url,null,null,new HxttQuirks());
import org.sql2o.quirks.NoQuirks;
public class HxttQuirks extends NoQuirks {
public HxttQuirks() {
super();
}
public HxttQuirks(Map converters) {
super(converters);
}
public String getColumnName(ResultSetMetaData meta, int colIdx) throws SQLException {
return meta.getColumnName(colIdx);//Sql2o is using meta.getColumnLabel, but JDBC specification will use tableName.column for getColumnLabel when there is column name collision.
}
}

Copyright © 2003-2019 Heng Xing Tian Tai Lab | All Rights Reserved. |