Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-devel / 2001-11

ibase60.pp problems

5 messages · 3 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Unknown author

Hi,

after long time I'm trying to improve FCL interbase.pp unit. I've new sources of 1.1 compiler downloaded, and I found some strange error in ibase60 unit, I think. In every call to isc_start_transaction() program crashes on access violation error. It's the same even in testib60 program from ibase package, testib40 and ibase40 suite works fine. Tested on RH linux 6.2 on interbase 6.0 and firebird 0.95, both superserver arch.

When I've tried to copy declaration of isc_start_transaction() from ibase40 to ibase60 unit, everything worked fine, so I want think that's a solution... What do you think about it?

Paya

--------------------------------
Pavel Stingl
mailto:
--------------------------------

Reply by email

Michael Van Canneyt
to Unknown author
Show quoted text 14 lines
Hi, after long time I'm trying to improve FCL interbase.pp unit. I've new sources of 1.1 compiler downloaded, and I found some strange error in ibase60 unit, I think. In every call to isc_start_transaction() program crashes on access violation error. It's the same even in testib60 program from ibase package, testib40 and ibase40 suite works fine. Tested on RH linux 6.2 on interbase 6.0 and firebird 0.95, both superserver arch. When I've tried to copy declaration of isc_start_transaction() from ibase40 to ibase60 unit, everything worked fine, so I want think that's a solution... What do you think about it?

The isc_transaction call is one of the few calls that actually changed between version 4/5 and 6, so simply copying it may not be a good idea.

I will have a .

Reply by email

Unknown author

Hi,

The isc_transaction call is one of the few calls that actually changed between version 4/5 and 6, so simply copying it may not be a good idea.

It's not good idea definitely, huh... In this case values in XSQLDA are not recognized correctly. What is really cool is that the same units works in 1.0.x compiled programs correctly. Maybe it's compiler problem?

Paya

Reply by email

Michael Van Canneyt
to Unknown author
Show quoted text 10 lines
Hi, > The isc_transaction call is one of the few calls that actually changed > between version 4/5 and 6, so simply copying it may not be a good idea. It's not good idea definitely, huh... In this case values in XSQLDA are not recognized correctly. What is really cool is that the same units works in 1.0.x compiled programs correctly. Maybe it's compiler problem?

It is possible. One of the compiler people should .

Reply by email

Jonas Maebe
to Michael Van Canneyt
Michael Van Canneyt wrote 6 lines
> It's not good idea definitely, huh... In this case values in XSQLDA > are not > recognized correctly. What is really cool is that the same units works > in 1.0.x compiled programs correctly. Maybe it's compiler problem? It is possible. One of the compiler people should only difference in the generated assembler code is that in
function XSQLDA_LENGTH(n: Integer): Integer;
begin
   Result := SizeOf(XSQLDA) + (n - 1) * SizeOf(XSQLVAR);
end;

sizeof(XSQLDA) is evaluated as 172 by 1.0.5 and 170 by 1.1. If you don't count any possible alignment padding, the size is 170. However, since the unit is compiled with {$packrecords c}, there may a bug regarding that in the compiler. Peter?

Jonas

Reply by email