InterBase & Int64
I've put together an End-User App using InterBase 6. This app is converted
from using a Paradox backend, so it did work and I know how it worked. I've
gotten to the stage where I want to generate my DataDictionary tables. The
DataDictionary component chokes when it's generating the Fields table. It
cannot handle Int64 fields and error reports that it can only handle SQL
Dialect 1. Well, this is Dialect 3 (available for over a year now). How do I
correct this. I see no properties anywhere that I can select Dialect 3 and
I'm concerned about not having any SessionType for InterBase. I'm using
IBObject's TIBOQuery to connect.
--
Steven S. Weston (sweston@westonmuir.com)
Weston & Muir (http://www.westonmuir.com)
The Banking Software Specialists
800-487-5655
760-752-7812
from using a Paradox backend, so it did work and I know how it worked. I've
gotten to the stage where I want to generate my DataDictionary tables. The
DataDictionary component chokes when it's generating the Fields table. It
cannot handle Int64 fields and error reports that it can only handle SQL
Dialect 1. Well, this is Dialect 3 (available for over a year now). How do I
correct this. I see no properties anywhere that I can select Dialect 3 and
I'm concerned about not having any SessionType for InterBase. I'm using
IBObject's TIBOQuery to connect.
--
Steven S. Weston (sweston@westonmuir.com)
Weston & Muir (http://www.westonmuir.com)
The Banking Software Specialists
800-487-5655
760-752-7812
This discussion has been closed.
Comments
for the heads up. We'll look into this.
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com
InterBase Dialect 3 for End-User Reporting. Therefore, I'm SOL and will have
to drop this feature that we have offered end-users for about five years.
Sadly, they will still want end-user reporting and will have to buy a
solution from another vendor.
--
Steven S. Weston (sweston@westonmuir.com)
Weston & Muir (http://www.westonmuir.com)
The Banking Software Specialists
800-487-5655
760-752-7812
on your form is not configured for dialect 3. There is a property called
SQLDialect that you can set to 3 on th TIBODatabase.
We support Interbase. All I was trying to say is that we haven't tested
every possible scenario and that we need to look into it. No other
reporting tool is even in the same league as ReportBuilder.
I can run our end user IB example using dialect 3. Works fine. However, we
haven't researched using an Int64 type column. So I created one. I modified
the sample Employee.gdb database with a new Sales table with a column that
was saved as Int64 in Interbase 6. When I ran the data dictionary it worked
fine generating the fields.
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com
I'm using a TIBOQuery component for tblField as per the tutorial. Both its
DatabaseName and IB_Connection properties are set to the TIBConnection
component. The connection is active; tblField is Active. So, I do have a
connection to the database. DataSource and Pipeline components are correctly
linked. The DataDictionary component is correctly linked to the Table, Field
and Join pipelines; all FieldNames are selected and correct.
When I Generate the Fields table I get the following error:
Unable to open table: .
Error: General SQL Error.
Data type unknown
Client SQL dialect 1 does not support reference to 64-bit numeric datatype
This message repeats for every table that has an Int64 type datafield.
I also get the same error for tables that have the DATE datatype.
I'm using D6 and RB 6.03. If you got it to work, I should be able to do so
also. So, what do I need to change or do?
component.
I tesed with IBO 4.2. I opened the IBO end user demo, connected it to my
database, and set the SQLDialoect property to 3. Installed the rbIBO delphi
design time DADE plugin and ran the data dictionary. I generated using my
Int64 field in my new table. Ran the end user project and it worked.
The only thing that is different from what I can tell is that I'm using RB
7.
I also ran the IBX demo out of the box using Dialect 3.
Today's successful tests include the following components:
D6.02
RB 7.0
IB 6.03 (using dialect 3)
IBX 6.03 and IBO 4.2 (using dialect 3)
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com
to do to reproduce the problem or send me a simple working example I can run
or even a simple interbase database which has this field in it. Perhaps I
don't have the database configured the same way as you using the Int64 field
definition. Send a demo to support@digital-metaphors.com
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com
upgrades, like RB 7. It's all a matter of change management, not money. But,
it looks like I must do RB 7 nevertheless -- I wish I had taken your advance
upgrade offer last September.
to make sure that it will fix the problem.
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com
zs100Percent; produces an Undeclared identifier error on build. ppViewR is
declared.
DataDictionary generate still produces the errors for Int64 and DATE
fieldtypes. What's the declaration in the source code for the DD unit? Does
it include enumerated types for these datatypes. My source for 6.03 did not.
RB 7.
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com
do not like to "upgrade" to new versions -- over 20 modules has to be
modified for RB7 to work.
MORE IMPORTANTLY:
A DataDictionary generate still produces the errors for Int64 and DATE
fieldtypes. What's the declaration in the source code for the DD unit? Does
it include enumerated types for these datatypes? My source for 6.03 did not.
I'd like to clear this problem soon. We have been going around and around
for week now without any resolution. Does RB support SQL Dialect 3, or
not??? Based upon my results, it does not.
preliminary testing and it does work correctly here. I even created new
tables and field types for dialect 3 issues and tried to reproduce your
problem. I used both IBX and IBO to connect and they both worked. We need
to be able to reproduce the problem here to see why you can't get it to
work. This is why I asked for a demo project that shows the error when I
run the data dictionary. I have not been able to reproduce the problem on
my machine, but we haven't performed further testing with different
configurations to perform more QA. It seems to me that dialect 3 should
work, but we don't have the QA to prove that it does work. If you could
provide a sample database (or SQL script to create/populate the data tables
and end user RB tables) created in dialect 3 and a simple end user project
then I should be able to reproduce the problem on my machine in order to see
what is happening and to fix it. Send it to support@digital-metaphors.com
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com
Have you had a chance to work with the project and db that I sent?
that the exception was raised from the BDE. But that would be bad, since you
have an interbase database and IBO connectivity. So, once I changed the
DataDictionary BuilderSettings DtaabaseType from BDESession to IBOSession it
worked. You need to install the IBO DADE plugin package to enable this as
an option in the object inspector for this property. The packages is
located in the RBuilder installation in the end user demos directory for
IBO, the same directory where daIBO.pas is located. That should fix the
problem.
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com
try to compile and install the rblIBO76.dpk, I get an error regarding
daIBO.dcu not found. So I deleted that item and added it back to resolve the
Where's Waldo problem. Then I get an error about IBO40XRT not being
available although that package has been installed (and can't be installed
again). I also see three versions of daIBO: IBO's version a 28KB and two
from RB at 20KB. Can you provide some course of action here?
RBuilder\Demos\EndUserDatabases\Interbase\IBObjects\daIBO.pas. Make sure
this and the IBO bpls and source are in the build path. Then it should work.
I have it installed here just fine.
Remove the other daIBO.* files from your system. They won't be necessary.
Make sure that this daIBO unit is in the library path of the project. Select
from the Delphi menu Tools | Environment Options | Library | Library Path to
point it at that directory, or copy the daIBO.pas to you current build
library path for RB, such as the default RBuilder\Lib. This way the correct
daIBO gets pulled in. The daIBO that installs with IBO, is for an older
version of RB and is not compatible. Is the directory where the IBO bpl's
are located in the library path. I believe that the Delphi package compiler
needs that info to link up to the correct bpls for IBO40WRT. You can check
to see where Delphi thinks they are located from the Component | Install
Packages menu when you select one from the list. The full path should be
shown below the list box. I'm gonna guess and say they are in the default
Projects\BPL directory if you didn't change the output paths when you built
the packages for the installation of IBO packages into Delphi. IMO, this is
not a good idea to place the bpls in this directory, but you can point your
library path to this directory to link in those IBO bpls to make it easy on
yourself. It shoudl compile then. I would check to make sure you don't have
conflicting bpls in there for RB or your other components. Building bpls
and dcps to Projects\BPL is pretty much a corrupt build waiting to happen,
from my experience. I always like to build to a nice clean directory
everytime I build a package, just to be safe. When I first started working
in Delphi, I always had to fight with removing Projects\BPL from my build
path because I built everything in there and then sometimes different
versions of bpls got mixed together, I ran into very strange problems, I
learned my lesson and always build packages controlling the output
directory.
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com
Perhaps RB is not using the current version of IBObjects? For example, daIBO
(from your eval. version) has a uses IBDataset. The current module name is
IBODataset. I made the change in daIBO.
But, then I get the error "Never-build pakage 'IBO40XRT' must be recompiled"
That is in my build path, but there were some version changes here, too.
Your last message mentions IBO40WRT, but that dcp is not listed as required
in the rbIBO76.dpk.
Note also that IB uses compiler suffixes now (i.e., IBO40XRT_D6). I can make
that change in the dpk, but do I need the WRT package as well as the XRT and
CRT packages listed in the dpk?
I'm going to shortcut some of these questions. I replaced IBO40XRT and ..CRT
with ..XRT_D6 and ..CRT_D6. No go. I added ..WRT_D6. No go. First error is
"Method 'SetDatabaseName' not found in base class"
I'd like to ask RB to test this dpk with the current version of IBO and D6.
It certainly does not work for me here. All my paths, libs, builds searches
and locations are good.
I started this thread by mentioning that third-party tool version changes
are a major headache for commercial developers. This is a perfect example of
why we feel this way and are loath to upgrade/update for any reason. I track
this and find that it costs us nearly 10% of productive time over a year --
more than a man-month!
7. I have Interbase 6.0. I also have IBX 6.03 installed.
IBO has no installation exe. You have to build the packages manually. This
isn't very much fun. So, let's take IBO out of the equation so you can see
Dialect 3 working with RB 7. The goal here is to run the Data Dictionary at
Delphi design time. Let's try IBX. I have IBX 6.03 (the latest) installed.
Here's what I did:
1. Verified my environment configuration by checking that I had the
rbIBE76.bpl installed in the Windows System32 directory of my Win2K machine
and that it was checked in the Delphi Component | Install Packages list and
had the correct path to this bpl.
2. Open the IB Express end user project in
RBuilder\Demos\EndUserDatabases\Interbase\IB Express. The reason is because
the rbIBE76 packages is installed automatically when you install RB 7 so
this should be painless as possible to get working.
3. Change the IBdatabase to point to the IconProd.gdb.
4. Set the SQLDialect property to 3 on the IBDatabase component.
4. Verified the DataDictionary.BuilderSettings used the IBDatabase1 on the
form and was set to use the IBXSession.
5. Ran the DataDictionary and it generated the Tables and Fields without
problems.
Once this works, we know that RB can support Interbase Dialect 3 and have
solved the problem where the session wasn't set on the DataDictionary.
Now, we can look at IBO.
You will want to check your machine for bpls and dcps for previous versions
of IBO and remove them first. Make sure IBO stills runs without RB.
I ran your demo which you sent me with the rbIBO76 package installed. It
installe dan dworked without error. I guess when I installed IBO, because
there was no install exe, I rebuilt all of the packages in my "installation"
of the IBO 4.2 unzipped directory. This is how I ended up with a
IBO40CDT.bpl. IBO just does not have an installation exe, which doesn't
help this situation. The IBO download that I have doesn't have a
IBO40CDT_D6.dpk, just the IBO40CDT_D6.bpl. I do have a IB40CDT.dpk and
IBO40CDT.bpl because I compiled it. All of the packages in my Delphi
installed components use the _D6 postfix, because those bpls are built for
the IBO zip file. All of the dcp's I have are not post fixed and are in the
IBO 4.2 unzipped directory (yes that is the name of my installation
directory, IIRC that is the default unzip directory). I searched my hard
drive and I do not have a IBO40CDT_D6.dpk. Only the bpl is distributed and
the dcp is not distributed. This is why we chose to use the non-postfixed
IBO packages in our requires clause. IBO is installed and working on my
machine, but I'm uninstalling IBO right now and starting from scratch to see
if there are any issues whih I forgot about when I installed IBO originally.
We tested the IBO plugin before release of RB 7 on multiple machines and it
worked just fine. The date on the proper daIBO.pas should be 7/29/2002.
Let me know if IBX works for you in the sample project you have. The bottom
line is that RB works with IB Dialect 3 in all of the tests we have
performed on our machines up to this point using IBO 4.2.Ha and IBX 6.03.
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com
This merry-go-round must end. The current release of IB is 4.2 i (there are
sub-releases, but I am using 4.2 i). I'm using D6. When I try to compile
rbIBO76.dpk, I get compiler errors from daIBO:
Line 71: Method 'SetDatabaseName' not found in base class.
Line 366: Undeclared identifier: 'SetDatabaseName'.
Line 444: Undeclared identifier: 'DatabaseName'.
I've had erased IBO and completely reinstalled it. All previous bpl, dcu,
etc. were removed prior to installation.
The fact as I see it is that IBO has made changes in their class structure
that render daIBO no longer compilable. Would someone there please test this
using IB release I? Release Ha is no longer a valid release.
is superceded by my version. IBO had to make module and class changes
because D7 hijacked the ibo prefix. This is why the current version of
rbIBO76 does not compile anymore. It doesn't work. It needs to be changed.
Thank you for your description of using IBX. We don't have IBX components
installed. We don't use IBX. We are not interested in using IBX.
Proving that RB works with Dialect 3 and IBX may be interesting to some, but
is of no interest to us because we don't use IBX. We use IBO.
This situation is a business problem to us. If we can't get the
DataDictionary to function with IBO, then we must drop our support for
End-User Reporting in our app. We don't want to do that. If RB cannot fully
support End-User Reporting with the current version of IBO, then we are
forced to look elsewhere for a solution. We are very reluctant to do that
because all of the app's standard reports employ RB.
We are asking you to reexamine your approach to solving our problem. We ask
that you produce and test a new version of rbIBO76 that is compatible with
the current version of IBO.
If you can demonstrate to us that the current version of RB works with the
current version of IBO, then we will be more than happy to pay the upgrade
cost for RB.