Any Breaking changes in 9.0.1?

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
FredS
Posts: 272
Joined: Mon 10 Nov 2014 17:52

Any Breaking changes in 9.0.1?

Post by FredS » Wed 15 Sep 2021 14:21

Because I get an exception in Firebird only that takes down the app..

ViktorV
Devart Team
Posts: 3168
Joined: Wed 30 Jul 2014 07:16

Re: Any Breaking changes in 9.0.1?

Post by ViktorV » Wed 15 Sep 2021 19:33

Hi Fred,

Thanks for your request I will gladly assist you further.

Please be informed that we were not able to reproduce the issue on our side using provided information.
In order to provide you with fast and correct reply please compose and send us small sample which demonstrates described behavior including scripts to create and fill-in database objects (or database file itself) using our contact form:
https://devart.com/company/contactform.html
As soon as we get this sample, we will start immediate investigation in order to find the solution faster.

Best regards,
Viktor

FredS
Posts: 272
Joined: Mon 10 Nov 2014 17:52

Re: Any Breaking changes in 9.0.1?

Post by FredS » Thu 16 Sep 2021 13:42

Some oddities while I setup to hunt down this issue:
  • ReadmeSrc.html has no Alexandria section
  • also still no section on how to make help work

FredS
Posts: 272
Joined: Mon 10 Nov 2014 17:52

Re: Any Breaking changes in 9.0.1?

Post by FredS » Thu 16 Sep 2021 14:56

ViktorV wrote: Wed 15 Sep 2021 19:33 we were not able to reproduce the issue on our side
Hmm, I can reproduce it now simply by using a Query with DMLRefresh set to True.
The original issue occurs in a Thread but I have a Query which executes in the main thread and the same problem.

Some details on the original issue:

Code: Select all

ACCESS_VIOLATION.

Values in IBCClassesUni.TGDSCommand.InternalExecute Line:4181:

Code: Select all

TDSCommand(nil, nil, nil, $121E3330, ctUnknown, 'INSERT INTO SERVERSHARES'#$D#$A' (SERVERID, SHARE, ISIPC)'#$D#$A'VALUES'#$D#$A' (?, ?, ?)'#$D#$A'RETURNING '#$D#$A' ID, SERVERID, SHARE, ISIPC', 'INSERT INTO SERVERSHARES'#$D#$A' (SERVERID, SHARE, ISIPC)'#$D#$A'VALUES'#$D#$A' (?, ?, ?)'#$D#$A'RETURNING '#$D#$A' ID, SERVERID, SHARE, ISIPC', qtInsertReturning, $15E925E0, $15E8A040, True, (DBAccess.TCustomDADataSet.DoAfterExecute,$121E3330), True, False, False, True, cbNone, False, False, (Uni.TUniSQL.ReadParams,$122EC1C0), 1, 0, 0, 0, True, 8, 10, 16, True, True, False, True, False, 0, 0, 0, 0, (nil,nil), csExecuting, $A91E8F0, $15E925B0, $121F2DD0, nil, $15E8B000, $15E8B480, $A91E900, $15E694F0, $15E690D0, nil, nil, $12207730, $15ADA760)
Call Stack:

Code: Select all

IBCClassesUni.TGDSCommand.InternalExecute Line:4181
IBCClassesUni.TGDSCommand.Execute
CRAccess.TCRRecordSet.ExecCommand(1,0)
IBCClassesUni.TGDSRecordSet.ExecCommand(1,0)
DBAccess.TCustomDADataSet.InternalExecute(1,0)
Uni.TCustomUniDataSet.InternalExecute(1,0)
DBAccess.TCustomDADataSet.Execute(1,0)
DBAccess.TCustomDADataSet.Execute
DBAccess.TDBAccessUtils.Execute($12256D90)
DBAccess.TDADataSetUpdater.UpdateExecute([stInsert])
DBAccess.TDADataSetUpdater.PerformSQL('',[stInsert])
DBAccess.TDADataSetUpdater.PerformAppend
IBCServicesUni.TCustomIBCDataSetUpdater.PerformAppend
MemDS.TDataSetUpdater.DoPerformAppend
MemDS.TMemDataSet.DoPerformAppend
MemData.TData.InternalAppend(???)
MemData.TMemData.InsertRecord($15A78290)
MemDS.TMemDataSet.InternalPost
DBAccess.TCustomDADataSet.InternalPost
:000000000093A583 TDataSet.CheckOperation + $43
:0000000000939E27 TDataSet.Post + $67
MemDS.TMemDataSet.Post
SQLMonitor:
https://imgur.com/a/O558SUF

FredS
Posts: 272
Joined: Mon 10 Nov 2014 17:52

Re: Any Breaking changes in 9.0.1?

Post by FredS » Thu 16 Sep 2021 15:01

The DMLRefresh which executes within the main thread has 10 parameters coming back in the RETURNING clause when all I need is one. Any way to refine this?

ViktorV
Devart Team
Posts: 3168
Joined: Wed 30 Jul 2014 07:16

Re: Any Breaking changes in 9.0.1?

Post by ViktorV » Fri 17 Sep 2021 14:40

FredS wrote: Thu 16 Sep 2021 14:56
ViktorV wrote: Wed 15 Sep 2021 19:33 we were not able to reproduce the issue on our side
Hmm, I can reproduce it now simply by using a Query with DMLRefresh set to True.
The original issue occurs in a Thread but I have a Query which executes in the main thread and the same problem.

Some details on the original issue:

Code: Select all

ACCESS_VIOLATION.

Values in IBCClassesUni.TGDSCommand.InternalExecute Line:4181:

Code: Select all

TDSCommand(nil, nil, nil, $121E3330, ctUnknown, 'INSERT INTO SERVERSHARES'#$D#$A' (SERVERID, SHARE, ISIPC)'#$D#$A'VALUES'#$D#$A' (?, ?, ?)'#$D#$A'RETURNING '#$D#$A' ID, SERVERID, SHARE, ISIPC', 'INSERT INTO SERVERSHARES'#$D#$A' (SERVERID, SHARE, ISIPC)'#$D#$A'VALUES'#$D#$A' (?, ?, ?)'#$D#$A'RETURNING '#$D#$A' ID, SERVERID, SHARE, ISIPC', qtInsertReturning, $15E925E0, $15E8A040, True, (DBAccess.TCustomDADataSet.DoAfterExecute,$121E3330), True, False, False, True, cbNone, False, False, (Uni.TUniSQL.ReadParams,$122EC1C0), 1, 0, 0, 0, True, 8, 10, 16, True, True, False, True, False, 0, 0, 0, 0, (nil,nil), csExecuting, $A91E8F0, $15E925B0, $121F2DD0, nil, $15E8B000, $15E8B480, $A91E900, $15E694F0, $15E690D0, nil, nil, $12207730, $15ADA760)
Call Stack:

Code: Select all

IBCClassesUni.TGDSCommand.InternalExecute Line:4181
IBCClassesUni.TGDSCommand.Execute
CRAccess.TCRRecordSet.ExecCommand(1,0)
IBCClassesUni.TGDSRecordSet.ExecCommand(1,0)
DBAccess.TCustomDADataSet.InternalExecute(1,0)
Uni.TCustomUniDataSet.InternalExecute(1,0)
DBAccess.TCustomDADataSet.Execute(1,0)
DBAccess.TCustomDADataSet.Execute
DBAccess.TDBAccessUtils.Execute($12256D90)
DBAccess.TDADataSetUpdater.UpdateExecute([stInsert])
DBAccess.TDADataSetUpdater.PerformSQL('',[stInsert])
DBAccess.TDADataSetUpdater.PerformAppend
IBCServicesUni.TCustomIBCDataSetUpdater.PerformAppend
MemDS.TDataSetUpdater.DoPerformAppend
MemDS.TMemDataSet.DoPerformAppend
MemData.TData.InternalAppend(???)
MemData.TMemData.InsertRecord($15A78290)
MemDS.TMemDataSet.InternalPost
DBAccess.TCustomDADataSet.InternalPost
:000000000093A583 TDataSet.CheckOperation + $43
:0000000000939E27 TDataSet.Post + $67
MemDS.TMemDataSet.Post
SQLMonitor:
https://imgur.com/a/O558SUF
Hi Fred,

Thank you for contacting Devart and for your inquiry!

Unfortunately, we were unable to reproduce the issue in our environment based on the information you provided (https://imgur.com/96osR0v). So, in order to investigate the issue and find an appropriate solution faster, please send us a complete sample, including script, which will stably reproduce the issue in our environment.
Please try to create a sample demonstrating the behavior you specified, including scripts to create and populate database data and send it to us for review using our contact form:
https://devart.com/company/contactform.html

Should you have any questions, do not hesitate to ask!

Best regards,
Viktor

Post Reply