Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 14 total
Thread AV When Switching from 32-bit to 64-bit Delphi 10 Seattle
Tue, Feb 16 2016 11:02 PMPermanent Link

Michael Riley

ZilchWorks

Avatar

I'm working on a project in Delphi 10 Seattle and ElevateDB 2.21 build 1. Everything works great in 32-bit. When I switch over to 64-bit and run the same program with no changes I get an AV. When I click on "Break" in the AV window it takes me to line 12472 of Data.DB. Please see uploaded pdf.

I'm using a TDataModule with TEDBEngine, TEDBSession, and TEDBDatabse. All components are wired up and connected.  I have pasted the TDataModule DFM below.

I would appreciate any help I can get troubleshooting this issue. Thanks in advance.


object ZilchDataModule: TZilchDataModule
 OldCreateOrder = False
 Height = 427
 Width = 561
 object EDBEngine1: TEDBEngine
   Active = True
   Signature = 'edb_signature'
   EncryptionPassword = 'elevatesoft'
   LicensedSessions = 4096
   ConfigPath = 'C:\ProgramData\Zilch Standard'
   ConfigName = 'EDBConfig'
   ConfigExtension = '.EDBCfg'
   LockExtension = '.EDBLck'
   LogExtension = '.EDBLog'
   LogCategories = [lcInformation, lcWarning, lcError]
   CatalogName = 'EDBDatabase'
   CatalogExtension = '.EDBCat'
   BackupExtension = '.EDBBkp'
   UpdateExtension = '.EDBUpd'
   TableExtension = '.EDBTbl'
   TableIndexExtension = '.EDBIdx'
   TableBlobExtension = '.EDBBlb'
   TablePublishExtension = '.EDBPbl'
   TempTablesPath = 'C:\Users\Michael\AppData\Local\Temp\'
   CacheModules = False
   ServerName = 'EDBSrvr'
   ServerDescription = 'ElevateDB Server'
   ServerEncryptionPassword = 'elevatesoft'
   ServerAuthorizedAddresses.Strings = (
     '*')
   Left = 32
   Top = 32
 end
 object EDBSession1: TEDBSession
   Connected = True
   LoginUser = 'sa'
   LoginPassword = 'dilbert1'
   SessionName = 'wtfoSession'
   LocalSignature = 'edb_signature'
   LocalEncryptionPassword = 'elevatesoft'
   LocalConfigPath = 'F:\ZilchWorks'
   LocalConfigName = 'EDBConfig'
   LocalConfigExtension = '.EDBCfg'
   LocalLockExtension = '.EDBLck'
   LocalLogExtension = '.EDBLog'
   LocalLogCategories = [lcInformation, lcWarning, lcError]
   LocalCatalogName = 'EDBDatabase'
   LocalCatalogExtension = '.EDBCat'
   LocalBackupExtension = '.EDBBkp'
   LocalUpdateExtension = '.EDBUpd'
   LocalTableExtension = '.EDBTbl'
   LocalTableIndexExtension = '.EDBIdx'
   LocalTableBlobExtension = '.EDBBlb'
   LocalTablePublishExtension = '.EDBPbl'
   LocalTempTablesPath = 'C:\ProgramData\Zilch Standard\Temp'
   LocalCacheModules = False
   RemoteSignature = 'edb_signature'
   RemoteEncryptionPassword = 'elevatesoft'
   RemoteAddress = '127.0.0.1'
   Left = 104
   Top = 32
 end
 object EDBDatabase1: TEDBDatabase
   Connected = True
   DatabaseName = 'mydatabase'
   Database = 'ZilchWorks'
   SessionName = 'wtfoSession'
   Left = 176
   Top = 32
 end
 object RzRegIniFile1: TRzRegIniFile
   Left = 424
   Top = 40
 end
end

Michael Riley
GySgt USMC (Ret)
www.zilchworks.com



Attachments: AV 64-bit WIndows Delphi 10 Seattle.pdf
Wed, Feb 17 2016 10:20 PMPermanent Link

Michael Riley

ZilchWorks

Avatar

I have narrowed down the issue but I still don't know why I get an AV in 64-bit.

I've got a TEDBTable, TDataSource and TDBGrid all connected.

I'm setting TEDBTable.TableName property to a view in the database.

When I'm in the IDE and I set the TEDBTable.Active = True; both 32-bit and 64-bit display all the data in the grid.
When I run the program in 32-bit it always runs.
When I run the program in 64-bit I get an AV when the view contains an aggregate.

View1 (works in both 32-bit and 64-bit)

SELECT
t1.PaymentPlanId,
t1.Title,
t1.StartDate,
t1.PledgeMoney,
t1.PledgeMoneyUseId,
t1.PayoffStrategyId,
t2.Balance
FROM tblPaymentPlans t1
LEFT OUTER JOIN tblDebts t2
       ON t1.PaymentPlanId
        = t2.PaymentPlanId

View2 (Works in 32-bit AV's in 64-bit)

SELECT
t1.PaymentPlanId,
t1.Title,
t1.StartDate,
t1.PledgeMoney,
t1.PledgeMoneyUseId,
t1.PayoffStrategyId,
SUM(COALESCE(t2.Balance,0) AS TotalDue
FROM tblPaymentPlans t1
LEFT OUTER JOIN tblDebts t2
       ON t1.PaymentPlanId
        = t2.PaymentPlanId     
GROUP BY
t1.PaymentPlanId,
t1.Title,
t1.StartDate,
t1.PledgeMoney,
t1.PledgeMoneyUseId,
t1.PayoffStrategyId

Michael Riley
GySgt USMC (Ret)
www.zilchworks.com
Thu, Feb 18 2016 11:18 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Michael,

<< I have narrowed down the issue but I still don't know why I get an AV in 64-bit. >>

Are you running the *initial* Delphi 10S, or have you installed any updates ?  There was a compiler bug in Delphi 10S 64-bit that could cause random AVs.  We ran into it in our automated testing, and had to back off to the XE8 compiler until a fix could be released, which I believe is out now in the form of Update 1.

Please email me the database catalog and table files as a .zip file, and I'll take a look here to confirm whether the issue is the above bug, or our bug.

Tim Young
Elevate Software
www.elevatesoft.com
Thu, Feb 18 2016 11:29 AMPermanent Link

Michael Riley

ZilchWorks

Avatar

Tim,

<<
Are you running the *initial* Delphi 10S, or have you installed any updates ?  There was a compiler bug in Delphi 10S 64-bit that could cause random AVs.  We ran into it in our automated testing, and had to back off to the XE8 compiler until a fix could be released, which I believe is out now in the form of Update 1.
>>

I have Update 1 installed. I'll send you the files when I get home from work. Thank you.

Michael Riley
GySgt USMC (Ret)
www.zilchworks.com
Fri, Feb 19 2016 11:38 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Michael,

Got the data, tried it with 10S 64-bit, and it works fine.  I've attached the project that I'm testing with, so please tell me if you get an AV with it.  You'll have to change around some of the ConfigPath/Database settings.

Tim Young
Elevate Software
www.elevatesoft.com



Attachments: rileyav.zip
Fri, Feb 19 2016 12:37 PMPermanent Link

Michael Riley

ZilchWorks

Avatar

Tim

<<
Got the data, tried it with 10S 64-bit, and it works fine.  I've attached the project that I'm testing with, so please tell me if you get an AV with it.  You'll have to change around some of the ConfigPath/Database settings.
>>

Thank you Tim. I'll check it out when I get home from work and post back here.

Michael Riley
GySgt USMC (Ret)
www.zilchworks.com
Fri, Feb 19 2016 8:34 PMPermanent Link

Michael Riley

ZilchWorks

Avatar

Tim

<<
Got the data, tried it with 10S 64-bit, and it works fine.  I've attached the project that I'm testing with, so please tell me if you get an AV with it.  You'll have to change around some of the ConfigPath/Database settings.
>>

I tried the attached project and I still get an AV in 64-bit.
I also noticed that the project didn't create Win32 and Win64 output directories when different platforms were selected in the IDE.

As a separate test, I recreated the Tables and View in Microsoft SQL Server Express. I dropped a TADOConnection, TADODataSet, TDataSource, TBDGrid on the form.

I wired up the TADOConnection as follows

CommantType := cmdTable;
CommandText := View2

Both 32-bit and 64-bit work fine.

I am at a loss as to why ElevateDB throws an AV in 64-bit but Microsoft SQL Server Express does not.

Michael Riley
GySgt USMC (Ret)
www.zilchworks.com
Fri, Feb 19 2016 9:18 PMPermanent Link

Raul

Team Elevate Team Elevate

On 2/19/2016 8:34 PM, Michael Riley wrote:
> I tried the attached project and I still get an AV in 64-bit.

Is there anything else useful in the AV message itself ?

Do you happen to use any tools that might help (madexcept etc) ?

I did try Tim's sample project (with my own table) and no AV under 64bit
- all runs fine. Same with other EDB projects.

Just out of curiosity what is your table structure like ? I could try
running it here as well to see what i get.

> I also noticed that the project didn't create Win32 and Win64 output directories when different platforms were selected in the IDE.

That's just because Tim only included included the drp (and not the
dproj) file so delphi defaulted the settings.

Just update the project settings for all configurations and set the
"output" and "unit output" to ".\$(Platform)\$(Config)".

Raul
Fri, Feb 19 2016 10:35 PMPermanent Link

Michael Riley

ZilchWorks

Avatar

Raul

<<Is there anything else useful in the AV message itself ?>>
Unfortunately not. One time I did get a very large memory leak error dump. Didn't save it of course. Frown

<<Do you happen to use any tools that might help (madexcept etc) ?>>
No. I really need to get better at reading debugger code

<<Just out of curiosity what is your table structure like ? I could try
running it here as well to see what i get.>>
Thank you, I appreciate that. I will attach a zip with schema and data.

<<
That's just because Tim only included included the drp (and not the
dproj) file so delphi defaulted the settings.
>>
Thanks for the explanation.

Michael Riley
GySgt USMC (Ret)
www.zilchworks.com



Attachments: RileyData.zip
Fri, Feb 19 2016 10:37 PMPermanent Link

Michael Riley

ZilchWorks

Avatar

Forgot to mention it only happens to me when the EDBTable is connected to View2.

Michael Riley
GySgt USMC (Ret)
www.zilchworks.com
Page 1 of 2Next Page »
Jump to Page:  1 2
Image