Main   Products   Offshore Outsourcing   Customers   Partners   ContactUs  
JDBC Databases
  HXTT Access v7.1
  HXTT Cobol v5.0
  HXTT DBF v7.1
 
  Buy Now
  Support
  Download
  Document
  FAQ
  HXTT Excel v6.1
  HXTT Json v1.0
  HXTT Paradox v7.1
  HXTT PDF v2.0
  HXTT Text(CSV) v7.1
  HXTT Word v1.1
  HXTT XML v4.0
Offshore Outsourcing
Free Resources
  Firewall Tunneling
  Search Indexing Robot
  Conditional Compilation
  Password Recovery for MS Access
  Password Recovery for Corel Paradox
  Checksum Tool for MD5
  Character Set Converter
  Pyramid - Poker of ZYH
   
   
   
Heng Xing Tian Tai Lab of Xi'an City (abbr, HXTT)

HXTT DBF
Database name returned as "." for free .dbf tables
Chris McGuinness
2018-08-21 11:56:06
Hello,

Is there a way to alias or re-name the database name that the HXTT JDBC drivers give to FoxPro free tables in a directory?

We are trying to use your JDBC drivers with JasperSoft reporting tools. When we try to create a JasperSoft "domain" (really just a data dictionary) on a JasperSoft report server, the JasperSoft tool errors as it cannot deal with "." as the database name.

Other JasperSoft tools deal with the "." database name without issue, such as the JasperSoft Studio dev tools.

I have read and re-read the HXTT documentation and was unable to find a method for aliasing the free-table database name.

We really like the capabilities that the HXTT drivers have provided. Solving the database name issue would make a huge difference for us.

Regards,

Chris McGuinness
CTO Black Mountain Software
chrism@blackmountainsoftware.com
Re:Database name returned as
HXTT Support
2018-08-21 18:50:30
For instance, d:/test/abc/atable.dbf
If you use jdbc:dbf:/d:/test/abc
Then the catalog will be ".".
If you use jdbc:dbf:/d:/test
Then you can use "select * from abc.atable"".
Re:Database name returned as
HXTT Support
2018-08-21 18:52:31
Of course, we can think other solution,
For instance, _current_ as a default name to replace "."?

What's your suggestion?
Re:Re:Re:Database name returned as
Chris McGuinness
2018-08-22 09:45:22
Thank you for the reply. I tried the tactic of setting the target directory one layer above in the directory hierarchy. This works well when you have control over the specific formation of the sql statements.

The problem arises with tools that are doing discovery of catalogs, databases, schemas, and tables in an automated fashion to help you form queries for meta-data driven dictionaries and things like views.

In these circumstances, we have no opportunity to specify queries related to the discovery of data organization and structure within a particular data source.

Renaming the "." with something like "_current_" is a possible solution. I have contacted a tech representative at Jaspersoft and asked if "_current_" would be a workable solution.

I will reply here as soon as I receive an answer from Jaspersoft.

Regards, Chris
Re:Re:Re:Re:Database name returned as
Chris McGuinness
2018-08-22 13:40:34
The tech folks at Jaspersoft replied to me that a catalog named "_current_" would likely work without issue.

Could this be implemented in the driver as a configuration setting?

We are currently using the client/server driver model.

Regards, Chris
Re:Re:Re:Re:Re:Database name returned as
HXTT Support
2018-08-28 21:49:18
2018-08-29 provides _CURRENT_ as a pseudo catalog(or schema name) which returns the current catalog (or schema).
Re:Re:Re:Re:Re:Re:Database name returned as
Chris
2018-09-10 08:40:29
Thank you very much for your efforts. Your responsiveness is wonderful.

We will test this change as soon as possible.

Regards,

Chris McGuinness
CTO Black Mountain Software
chrism@blackmountainsoftware.com
Database name returned as
Chris McGuinness
2018-09-17 16:15:51
I have tested the new drivers that name free dbf tables in a directory as being in catalog "_CURRENT_".

I tested with three different tools:

DBSchema
Servoy
Jaspersoft

All three tools had the same behaviour: When a data source using the HXTT DBF drivers was aimed at a directory containing free dbf tables, the catalog was indeed named "_CURRENT_". The problem is that in no case, where the tables or fields available within the catalog.

Changing back to the previous HXTT DBF JDBC drivers re-established access to the tables and fields, but named the catalog ".".

Some technical folks at Jaspersoft volunteered to take a look at the HXTT DBF JDBC drivers with the goal of providing you with more specific information as to why the catalog is not enumerating the tables and fields.

I have given them the URL to this board. They may be posting questions and information to this thread.

Regards, Chris McGuinness
CTO Black Mountain Software
chrism@blackmountainsoftware.com
Re:Re:Re:Re:Re:Re:Re:Re:Database name returned as
HXTT Support
2018-09-17 22:41:47
Because HXTT DBF drivers are using file as table, so that directory "." become a database. BTW, Visual Foxpro (.dbc) is database too.
Database name returned as
Chris McGuinness
2018-09-18 10:14:04
I am aware of the reasons why the database was named as ".". I understand the logic behind the decision as the current directory is referenced as "." under many different operating system file structures.

If you read this thread from the beginning, you will see that the database naming of "." was causing the JDBF drivers to be incompatible with Jaspersoft reporting tools.

Your organization graciously agreed to rename the database in an effort to solve the problem. The work to rename the database to "CURRENT_" was done, and for this, I thank you.

The problem is that after this change was made, the JDBC drivers are no longer providing a list of tables under the "_CURRENT_" database. This is causing us to not be able to use the drivers with Jaspersoft or Servoy.

Thank you for your efforts.

Regards, Chris McGuinness
CTO Black Mountain Software
chrism@blackmountainsoftware.com
Re:Re:Re:Re:Re:Re:Re:Re:Database name returned as
HXTT Support
2018-09-18 17:55:24
> the JDBC drivers are no longer providing a list of tables under the "_CURRENT_" database.

It's strange, and please try to redownload the latest package.
Re:Re:Re:Re:Re:Re:Re:Re:Database name returned as
Chris McGuinness
2018-09-19 09:39:43
I will re-download the latest package and test. Thank you.
Re:Re:Re:Re:Re:Re:Re:Re:Database name returned as
Chris McGuinness
2018-09-24 14:02:14
I have tested the 9/11/2018 drivers with: DBSchema, Jaspersoft Studio, Servoy, and JDBC Navigator.

All tests were using local .dbf tables.

Links to screenshots: https://photos.app.goo.gl/gL2eGDYKjQaQzZPh8

Tool, Results

DBSchema, Produces a list of schemas, all labeled ".". Data access works.

Jaspersoft, Produces a "_CURRENT_" catalog/schema but does not list the tables. SQL commands against the data connection do produce data. This is preventing us from using the drivers within Jaspersoft. The ability to do this is very important to us. If necessary, we would consider compensating you for work to make this compatible.

Servoy, Produces a list of tables and data. No catalog or schema displayed. Data access works. Catalogs and schemas not pertinent with Servoy.

JDBC Navigator, Produces a catalog or schema named "null". Tables are enumerated and data access for read works.

Going to try the drivers from 9/21/2018.

Regards, Chris
Re:Re:Re:Re:Re:Re:Re:Re:Database name returned as
HXTT Support
2018-09-25 00:46:55
>JDBC Navigator, Produces a catalog or schema named "null". Tables are enumerated and data access for read works.
Tested JDBC Navigator, and use _CURRENT_ to replace null catalog name.

>DBSchema, Produces a list of schemas, all labeled ".". Data access works.
No issue for "." as schema name. So we haven't tested.

>Jaspersoft, Produces a "_CURRENT_" catalog/schema but does not list the tables.
Need 8 hours to download Jaspersoft:( It should have filtered all tables with null catalog name. Please download the latest package, which is released today. Your issue should disappear since _CURRENT_ is used to replace null catalog name.
Re:Re:Re:Re:Re:Re:Re:Re:Database name returned as
HXTT Support
2018-09-26 02:12:37
Tested on Jaspersoft, and find Jaspersoft is using wrogly the catalog name as schema name too. I'm downloading Jaspersoft source code to decide how to fix it.
Re:Re:Re:Re:Re:Re:Re:Re:Database name returned as
HXTT Support
2018-09-26 07:08:28
I think in com.jaspersoft.studio.data.sql.ui.metadata.MetaDataUtil.java
readSchemas function

>String tableSchema = isSchema ? rs.getString("TABLE_SCHEM") : tableCatalog;
It should be
String tableSchema = isSchema ? rs.getString("TABLE_SCHEM") : null;
Re:Re:Re:Re:Re:Re:Re:Re:Database name returned as
HXTT Support
2018-09-26 07:22:31
In the same function:
> String tableCatalog = !isCatalog || isSchema ? null : rs.getString("TABLE_CAT");
It should be
String tableCatalog = isSchema ? rs.getString("TABLE_CATALOG"): rs.getString("TABLE_CAT");

But that code line does't result too much issues.

Re:Re:Re:Re:Re:Re:Re:Re:Database name returned as
HXTT Support
2018-09-26 08:05:29
Please download the latest package, which has used a speical hotfix for Jaspersoft.
Re:Re:Re:Re:Re:Re:Re:Re:Database name returned as
Chris McGuinness
2018-09-27 10:03:02
Wonderful. I will pass along your information to Jaspersoft. We have been working with a couple of their technical people and they may find your suggestion helpful.

I will try the latest version. As always, thank you very much for your efforts.

Regards, Chris
Re:Re:Re:Re:Re:Re:Re:Re:Database name returned as
Chris McGuinness
2018-09-27 12:18:52
I have tried the drivers from 2018-09-26. There is progress, but I can only get a listing of tables when accessing the data directory locally.

When accessing the directory containing dbf files directly via:

jdbc:dbf:/c:/dev_data/chilton/so

The catalog is named "_CURRENT_" and the tables list correctly when using Jaspersoft Studio. There are no error messages and I can query table data.

When accessing the directory containing dbf files remotely via:

jdbc:dbf://sample.domain.com:3099/c:\dev_data/chilton/so

"sample.domain.com" has been substituted for the real domain.

The catalog is named "_CURRENT_" and the tables do not list.

I have verified that I am using the latest version of the drivers for the remote server. The remote server is actually running on the same computer where the local JDBC access testing is done.

When I do the "Read Fields" function of the "Dataset and Query Dialog" window, or I try to preview the data, using the remote URL the error message is:

at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:578)
at com.jaspersoft.studio.data.reader.DatasetReader.fillReport(DatasetReader.java:264)
at com.jaspersoft.studio.data.reader.DatasetReader.start(DatasetReader.java:332)
at com.jaspersoft.studio.property.dataset.preview.DataPreviewTable$5.run(DataPreviewTable.java:318)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
Caused by: java.sql.SQLException: java.io.InvalidClassException: com.hxtt.sql.common.c; local class incompatible: stream classdesc serialVersionUID = -6317838001819381397, local class serialVersionUID = -6676004762807846717 while reading serialized object
at com.hxtt.b.al.a(Unknown Source)
at com.hxtt.b.aw.a(Unknown Source)
at com.hxtt.b.aw.a(Unknown Source)
at com.hxtt.b.aw.for(Unknown Source)
at com.hxtt.msg.b.a.a(Unknown Source)
at com.hxtt.sql.remote.r.a(Unknown Source)
at com.hxtt.sql.remote.v.a(Unknown Source)
at com.hxtt.sql.remote.l.executeQuery(Unknown Source)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:310)
... 8 more

Regards, Chris
Re:Re:Re:Re:Re:Re:Re:Re:Database name returned as
HXTT Support
2018-09-28 02:55:48
>When accessing the directory containing dbf files remotely via:
Tested and supported. Please download the latest package now.
Database name returned as
Chris McGuinness
2018-09-28 09:27:21
Hello and thank you for the updated drivers.

Now the drivers are listing tables and fields under the "_CURRENT_" catalog in both local and remote access modes.

In local mode, data access works.

In remote mode, I get the following error when querying data:

net.sf.jasperreports.engine.JRException: Error executing SQL statement for: data.
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:347)
at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1257)
at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:726)
at net.sf.jasperreports.engine.fill.BaseReportFiller.setParameters(BaseReportFiller.java:456)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:578)
at com.jaspersoft.studio.data.reader.DatasetReader.fillReport(DatasetReader.java:264)
at com.jaspersoft.studio.data.reader.DatasetReader.start(DatasetReader.java:332)
at com.jaspersoft.studio.property.dataset.preview.DataPreviewTable$5.run(DataPreviewTable.java:318)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
Caused by: java.sql.SQLException: java.io.InvalidClassException: com.hxtt.sql.common.o; local class incompatible: stream classdesc serialVersionUID = 7883397096241367604, local class serialVersionUID = 3360810058353975935 while reading serialized object
at com.hxtt.b.ar.a(Unknown Source)
at com.hxtt.b.a5.a(Unknown Source)
at com.hxtt.b.a5.a(Unknown Source)
at com.hxtt.b.a5.for(Unknown Source)
at com.hxtt.msg.b.a.a(Unknown Source)
at com.hxtt.sql.remote.r.a(Unknown Source)
at com.hxtt.sql.remote.v.a(Unknown Source)
at com.hxtt.sql.remote.l.executeQuery(Unknown Source)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:310)
... 8 more

Regards, Chris
Re:Re:Re:Re:Re:Re:Re:Re:Database name returned as
HXTT Support
2018-09-29 01:48:13
>com.hxtt.sql.common.o; local class incompatible: stream classdesc serialVersionUID = 7883397096241367604, local class serialVersionUID = 3360810058353975935 while reading serialized object

Reupload.
Database name returned as
Chris McGuinness
2018-10-01 10:00:35
2018-09-29 drivers returned the following error:

net.sf.jasperreports.engine.JRException: Error executing SQL statement for: data.
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:347)
at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1257)
at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:726)
at net.sf.jasperreports.engine.fill.BaseReportFiller.setParameters(BaseReportFiller.java:456)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:578)
at com.jaspersoft.studio.data.reader.DatasetReader.fillReport(DatasetReader.java:264)
at com.jaspersoft.studio.data.reader.DatasetReader.start(DatasetReader.java:332)
at com.jaspersoft.studio.property.dataset.preview.DataPreviewTable$5.run(DataPreviewTable.java:318)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
Caused by: java.sql.SQLException: java.io.InvalidClassException: com.hxtt.sql.common.c; local class incompatible: stream classdesc serialVersionUID = -6317838001819381397, local class serialVersionUID = -8091031286703399322 while reading serialized object
at com.hxtt.global.aq.a(Unknown Source)
at com.hxtt.global.a4.a(Unknown Source)
at com.hxtt.global.a4.a(Unknown Source)
at com.hxtt.global.a4.for(Unknown Source)
at com.hxtt.msg.remote.Agent.a(Unknown Source)
at com.hxtt.sql.remote.r.a(Unknown Source)
at com.hxtt.sql.remote.v.a(Unknown Source)
at com.hxtt.sql.remote.l.executeQuery(Unknown Source)
at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:310)
... 8 more


Regards, Chris
Re:Re:Re:Re:Re:Re:Re:Re:Database name returned as
HXTT Support
2018-10-01 16:55:51
It's strange. I run DBF_JDBC42.jar to start a server, then use JasperSoft Studio(Driver Class: DBF_Remote_JDBC42.jar, or DBF_JDBC42.jar) to query. No issue.

Whether ther DBF_JDBC42.jar on your server side is still old file?
Re:Re:Re:Re:Re:Re:Re:Re:Database name returned as
Chris McGuinness
2018-10-01 22:46:14
You are correct. This was my fault as I did not update the server-side correctly. I will test again tomorrow.

Regards, Chris
Database name returned as
Chris McGuinness
2018-10-04 11:04:43
I configured the hxtt server-side service to use the new drivers (20180929) correctly.

Jaspersoft studio shows a correct list of databases and schemas. Tables, fields, and data are accessible.

When trying to create a domain (data dictionary) in Jaspersoft server, the database/schema selection window appears with one choice "null".

https://photos.app.goo.gl/6rkyoE6T5i74Fwca7

From this point, I can go no further. It was my hope, and Jaspersoft's diagnosis that the catalog name of '.' was causing the problem. You have changed the catalog name to _CURRENT_ and now, the catalog is coming through as 'null' for Jaspersoft server.

I have asked Jaspersoft to look into what the server product is doing differently from the Jaspersoft Studio product to see if we can give you better information as to what is wrong.

Jaspersoft also recommended that you take a look at their JDBC compatibility document: https://community.jaspersoft.com/documentation/v710/tibco-jasperreports-server-supported-platform-datasheet

As always, I really appreciate your attention and efforts towards solving this issue for us.

Just for comparison purposes, I switched back to the 20180713 drivers and tested again in an effort to provide better information.

When trying to create a domain (data dictionary) in Jaspersoft server, the database/schema selection window appears with one choice ".".

https://photos.app.goo.gl/hNpVXWD5Et9SvtFv7

Tables are visible, but fields will not display.

https://photos.app.goo.gl/maxUhKG8eBXQ75WK8

Selecting "Joins" from the domain creation window results in an error.

https://photos.app.goo.gl/CYZpx8JgzqzSu4tx9

I will let you know as soon as I have additional information.

Regards, Chris
Re:Re:Re:Re:Re:Re:Re:Re:Database name returned as
HXTT Support
2018-10-07 08:30:44
Tried Jasper Server, but failed to create a domain becase it seems there's no Create menu in community version.

Anyway, there's a dbo schema now. Please download it.
Database name returned as
Chris McGuinness
2018-10-12 15:24:56
Thank you so much for your efforts. The drivers are testing well with all functions attempted so far with Servoy and Jaspersoft.

Testing continues, but so far, so good.

Thanks again.

Regards, Chris

Search Key   Search by Last 50 Questions




Google
 

Email: webmaster@hxtt.com
Copyright © 2003-2019 Heng Xing Tian Tai Lab of Xi'an City. | All Rights Reserved. | Privacy | Legal | Refund | Sitemap