Subject | Re: [IBO] Calculated Fields - still didn´t got them |
---|---|
Author | Andrei Luís |
Post date | 2012-09-26T14:47:30Z |
Hans,
Thanks for your time. I now it can be used like this, but in the past I
read that this is not good for performance. By the way, that was just an
exemple, I have several calcs much more complex thant that.
[]s
Andrei
2012/9/26 Hans <hhoogstraat@...>
Thanks for your time. I now it can be used like this, but in the past I
read that this is not good for performance. By the way, that was just an
exemple, I have several calcs much more complex thant that.
[]s
Andrei
2012/9/26 Hans <hhoogstraat@...>
> Maybe consider to have the fields calculated in your SQL query or Procedure[Non-text portions of this message have been removed]
> like:
>
> Select Field-1, .. Field-n, FIELD_A-FIELD_B as MYCALC1, FIELD_C-FIELD_D as
> MYCALC2 from relation
>
> Simple and Fast.
>
> -----Original Message-----
> From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com] On
> Behalf
> Of Andrei Luís
> Sent: Wednesday, September 26, 2012 8:28 AM
> To: ibobjects@yahoogroups.com
> Subject: [IBO] Calculated Fields - still didn´t got them
>
> Hello folks,
>
> I'm dealing with a performance problem for a long time, and I know that
> part
> of it has been the calculated fields I'm using.
>
> I'm doing them by 'my way', and by this I mean 'any way', not the best.
>
> I'm searching about this topic here in the list, and I found something like
> that:
>
> 1 procedure Tdm.qrTestCalculateField(Sender: TIB_Statement; ARow: TIB_Row;
> AField: TIB_Column);
> 2 begin
> 3 if (AField.FieldName='MYCALC1') then
> 4 begin
> 5 AField.AsCurrency := ARow.ByName('FIELD_A').AsCurrency -
> ARow.ByName('FIELD_B').asCurrency;
> 6 end;
> 7
> 8 if (AField.FieldName='MYCALC2') then
> 9 begin
> 10 AField.AsCurrency := ARow.ByName('FIELD_A').AsCurrency +
> ARow.ByName('FIELD_B').asCurrency;
> 11 end;
> 12
> 13 if (AField.FieldName='MYCALC3') then
> 14 begin
> 15 AField.AsCurrency := ARow.ByName('FIELD_A').AsCurrency *
> ARow.ByName('FIELD_B').asCurrency;
> 16 end;
> 17 end;
>
>
> My questions:
> 1 - Is this the best way to use calculated fields in IBO? I mean, is it the
> fastest way thinking about performance?
> 2 - I tried this code, but AField is always NIL!??? So if I run it like
> that, I get an access violation exception at line 3. So I tried to isolate
> this with a 'If AField = nil then exit', but every time the event is
> called,
> AField is nil, then nothing is calculated.
> 3 - How about the code below? This is what I'm doing today:
> 1 procedure Tdm.qrTestCalculateField(Sender: TIB_Statement; ARow:
> TIB_Row; AField: TIB_Column);
> 2 begin
> 3 ARow.ByName('MYCALC1').asCurrency :=
> ARow.ByName('FIELD_A').AsCurrency - ARow.ByName('FIELD_B').asCurrency;
> 4 ARow.ByName('MYCALC1').asCurrency :=
> ARow.ByName('FIELD_A').AsCurrency + ARow.ByName('FIELD_B').asCurrency;
> 5 ARow.ByName('MYCALC1').asCurrency :=
> ARow.ByName('FIELD_A').AsCurrency * ARow.ByName('FIELD_B').asCurrency;
> 6 end;
>
> []s
> Andrei
>
>
> [Non-text portions of this message have been removed]
>
>
>
> ------------------------------------
>
> ___________________________________________________________________________
> IB Objects - direct, complete, custom connectivity to Firebird or InterBase
> without the need for BDE, ODBC or any other layer.
> ___________________________________________________________________________
> http://www.ibobjects.com - your IBO community resource for Tech Info
> papers,
> keyword-searchable FAQ, community code contributions and more !
> Yahoo! Groups Links
>
>
>
>
>
> ------------------------------------
>
> ___________________________________________________________________________
> IB Objects - direct, complete, custom connectivity to Firebird or InterBase
> without the need for BDE, ODBC or any other layer.
> ___________________________________________________________________________
> http://www.ibobjects.com - your IBO community resource for Tech Info
> papers,
> keyword-searchable FAQ, community code contributions and more !
> Yahoo! Groups Links
>
>
>
>