Page 1 of 2

"Unsupported length"

Posted: Wed 19 Jan 2011 15:43
by upscene
A customer is reporting the error in the subject line with IBDac.

I noticed this text being available in ibdac120.bpl

What could cause this?



With regards,

Martijn Tonies
Upscene Productions

Posted: Thu 20 Jan 2011 16:13
by AndreyZ
Hello,

Please specify the exact database server (FireBird or InterBase) and its version. Also specify the exact moment when the error occurs.

Posted: Thu 20 Jan 2011 16:18
by upscene
AndreyZ wrote:Hello,

Please specify the exact database server (FireBird or InterBase) and its version. Also specify the exact moment when the error occurs.
I haven't been able to reproduce yet --

Firebird 2.5, ODS 11.2 on querying data from a database.

Posted: Mon 24 Jan 2011 11:44
by AndreyZ
Unfortunately I cannot reproduce the problem. Please try executing the following code:

Code: Select all

IBCConnection.Connect;
ShowMessage(IntToStr(IBCConnection.DatabaseInfo.Allocation) +
            IntToStr(IBCConnection.DatabaseInfo.BaseLevel) +
            IntToStr(IBCConnection.DatabaseInfo.NoReserve) +
            IntToStr(IBCConnection.DatabaseInfo.ODSMinorVersion) +
            IntToStr(IBCConnection.DatabaseInfo.ODSMajorVersion) +
            IntToStr(IBCConnection.DatabaseInfo.PageSize) +
            IntToStr(IBCConnection.DatabaseInfo.CurrentMemory) +
            IntToStr(IBCConnection.DatabaseInfo.ForcedWrites) +
            IntToStr(IBCConnection.DatabaseInfo.MaxMemory) +
            IntToStr(IBCConnection.DatabaseInfo.NumBuffers) +
            IntToStr(IBCConnection.DatabaseInfo.SweepInterval) +
            IntToStr(IBCConnection.DatabaseInfo.Fetches) +
            IntToStr(IBCConnection.DatabaseInfo.Marks) +
            IntToStr(IBCConnection.DatabaseInfo.Reads) +
            IntToStr(IBCConnection.DatabaseInfo.Writes) +
            IntToStr(IBCConnection.DatabaseInfo.DBSQLDialect) +
            IntToStr(IBCConnection.DatabaseInfo.LogFile) +
            IntToStr(IBCConnection.DatabaseInfo.CurLogPartitionOffset) +
            IntToStr(IBCConnection.DatabaseInfo.NumWALBuffers) +
            IntToStr(IBCConnection.DatabaseInfo.WALBufferSize) +
            IntToStr(IBCConnection.DatabaseInfo.WALCheckpointLength) +
            IntToStr(IBCConnection.DatabaseInfo.WALPrvCheckpointPartOffset) +
            IntToStr(IBCConnection.DatabaseInfo.WALGroupCommitWaitUSecs) +
            IntToStr(IBCConnection.DatabaseInfo.WALNumIO) +
            IntToStr(IBCConnection.DatabaseInfo.WALAverageIOSize) +
            IntToStr(IBCConnection.DatabaseInfo.WALNumCommits) +
            IntToStr(IBCConnection.DatabaseInfo.WALAverageGroupCommitSize) +
            IntToStr(IBCConnection.DatabaseInfo.AttachmentID) +
            IntToStr(IBCConnection.DatabaseInfo.InfoAttCharset) +
            IntToStr(IBCConnection.DatabaseInfo.InfoDbClass) +
            IntToStr(IBCConnection.DatabaseInfo.InfoOldestTransaction) +
            IntToStr(IBCConnection.DatabaseInfo.InfoOldestActive) +
            IntToStr(IBCConnection.DatabaseInfo.InfoOldestSnapshot) +
            IntToStr(IBCConnection.DatabaseInfo.InfoNextTransaction) +
            IntToStr(IBCConnection.DatabaseInfo.InfoDbProvider) +
            BoolToStr(IBCConnection.DatabaseInfo.ReadOnly) +
            BoolToStr(IBCConnection.DatabaseInfo.IsEncrypted) +
            BoolToStr(IBCConnection.DatabaseInfo.IsEUAActive));
Is the execution successful?

Posted: Mon 24 Jan 2011 11:48
by upscene
I haven't been able to reproduce either, which is why I asked what could cause this problem.

I'll ask the customer to see if I can get a copy of the database.

Posted: Wed 26 Jan 2011 09:38
by AndreyZ
This problem can be caused by many reasons. That's why I gave you the list of all functions that can cause this error. We are looking forward to hearing from you.

Posted: Thu 27 Jan 2011 14:06
by upscene
AndreyZ wrote:This problem can be caused by many reasons. That's why I gave you the list of all functions that can cause this error. We are looking forward to hearing from you.
On the restored database, yes, these work fine.

In my application, the queries fail at the customers site.

In my application, I'm using some of the functions listed to gather statement statistics.

Here's what he wrote to me:
Recapping – All activity on the same 2.5 Firebird Server

FB_ITShared + 2 Other Databases returned Unsupported length using DBW4 on All queries even ones just querying system tables
All Other databases OK
DOS Copy of FB_ITShared made following FB Server shut down -> FB_ITSharedBad
FB Server restarted
FB_ITShared Restored (overwritten) from Backup
Queries on FB_ITShared then returned results as expected J
The following day FB_ITShared reverted to returning Unsupported length for all queries.
FB_ITSharedBad returns results as expected – this for me is bizarre

Posted: Fri 28 Jan 2011 10:09
by AndreyZ
We will be able to help you with this problem when we have the database that causes such error.

Posted: Wed 02 Feb 2011 12:20
by upscene
AndreyZ wrote:We will be able to help you with this problem when we have the database that causes such error.
Andrey, I'm trying to get to the bottom of this annoying issue, but I cannot reproduce. Can I forward you an e-mail from this customer?

Posted: Thu 03 Feb 2011 08:47
by AndreyZ
You can forward the e-mail from your customer to andreyz*devart*com.

Posted: Mon 07 Feb 2011 09:26
by upscene
AndreyZ wrote:You can forward the e-mail from your customer to andreyz*devart*com.
I just got a message from my customer that you were able to reproduce the issue, it had to do with Firebird 2.5 INT64 usage for statistics.

I'm a bit surprised here, as I notified you in March 2010 about this!

See:
http://www.devart.com/forums/viewtopic. ... ght=#54818

:(

Posted: Mon 07 Feb 2011 15:48
by AndreyZ
We are investigating this problem. As soon as we solve the problem we will let you know.

Posted: Fri 11 Feb 2011 09:49
by upscene
AndreyZ wrote:We are investigating this problem. As soon as we solve the problem we will let you know.
Is this problem caused by not using INT64?

Posted: Mon 14 Feb 2011 08:59
by AndreyZ
Yes, this problem was caused by not using the Int64 type for obtaining the database information. We have fixed this problem. This fix will be included in the next IBDAC build.

Posted: Mon 14 Feb 2011 09:31
by upscene
Why was this not fixed in 2010 then? This problem could have been easily avoided... :(

When will this new build be ready? It is within 2 days? (I also used ODAC and MyDAC, so I'll need them all 3)