Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi FIBPlus: Fields[] ??? (https://www.delphipraxis.net/138165-fibplus-fields%5B%5D.html)

hoika 4. Aug 2009 15:52

Datenbank: FB • Version: 1.5 • Zugriff über: FIBPlus

FIBPlus: Fields[] ???
 
Hallo #,

bin ja gerade beim BDE-Ersatz.
Bei

TQuery.Fields[]

finde ich aber nichts ?

Wie soll ich das denn ersetzen ??

Danke


Heiko

hoika 4. Aug 2009 17:58

Re: FIBPlus: Fields[] ???
 
Hallo,

bin etwas weiter.

es gibt ja ein Fields[x].AsInteger (z.B.)

Ich brauche aber bei Fields[] ein TField und kein TFIBXSQLVAR,
sonst muss ich ja nen Haufen Code umschreiben, 3000 Stellen ;(

Kann man das was machen ?

Danke


Heiko

hoika 4. Aug 2009 18:19

Re: FIBPlus: Fields[] ???
 
Hallo,

ich erkenne gerade mit Schrecken,
dass es bei FieldByName das gleiche ist !!!

Wie soll man denn hier sanft umstellen,
wenn die simpelsten Methoden nicht funktionieren ;(


Heiko

PS:
Ich habe eine Query-Komponente,
die je nach IFDEF entweder BDE oder FIBPlus benutzt.

Elvis 4. Aug 2009 19:24

Re: FIBPlus: Fields[] ???
 
Zitat:

Zitat von hoika
PS:
Ich habe eine Query-Komponente,
die je nach IFDEF entweder BDE oder FIBPlus benutzt.

Dann nutze doch Typen Aliase für TFields und Konsorten, die du je nach IfDef umgiegst.
Ist doch gar nicht so schwer. ;-)

hoika 4. Aug 2009 19:34

Re: FIBPlus: Fields[] ???
 
Hallo,

ne, du hast das falsch verstanden.

Im Code steht

Query.FieldByName('Id').AsInteger

Ist Query vom Typ TQuery (BDE), wird intern ein TField erzeugt,
dass dann das AsInteger "macht".

Ist die Query vom Typ TFIBQuery, ist es ein anderer Type,
er auch ein AsInteger hat.

Das soll aber meinen Code nicth interessieren,
soll also transparent sein.

Im Code steht nur
Delphi-Quellcode:
var
  Query: TBaseQuery;
begin
  Query.FieldByName('Id').AsInteger
Jetzt muss ich im TBaseQuery also das FieldByName abstrakt definieren,
dann in den abgeleiteten Klassen umbiegen.

Puh ;(

Nix mit IFDEF


Heiko

Elvis 4. Aug 2009 20:14

Re: FIBPlus: Fields[] ???
 
Zitat:

Zitat von hoika
Hallo,

ne, du hast das falsch verstanden.

Im Code steht

Query.FieldByName('Id').AsInteger

Ist Query vom Typ TQuery (BDE), wird intern ein TField erzeugt,
dass dann das AsInteger "macht".

Ist die Query vom Typ TFIBQuery, ist es ein anderer Type,
er auch ein AsInteger hat.

Das soll aber meinen Code nicth interessieren,
soll also transparent sein.

Ich habe dich schon richtig verstanden. ;-)
Delphi-Quellcode:
unit InterchangeableQueryTypes;
interface
type
{$ifdef Trallala}
  TInterchangableQuery = TFIBQuery;
  TInterchangableField = TFIBXSQLVAR;
{$else}
  TInterchangableQuery = TQuery;
  TInterchangableField = TField;
{$endif Trallala}
implementation
end.
Delphi-Quellcode:
uses
  ...,
  InterchangeableQueryTypes;

var
  Query: TInterchangableQuery;
begin
  Query.FieldByName('Id').AsInteger...


procedure TXyz.Mieps(aField : TInterchangableField);
...

hoika 4. Aug 2009 20:18

Re: FIBPlus: Fields[] ???
 
Hallo,

hmmmmmmmmmmmmmmm

*nachdenk*
*Bier schlürf*
*nachdenk*

morgen ... ;)


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz