Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TMysqlResult = class(TObject) Kopieren?!? (https://www.delphipraxis.net/163813-tmysqlresult-%3D-class-tobject-kopieren.html)

DelTurbo 17. Okt 2011 17:13

Delphi-Version: 7

TMysqlResult = class(TObject) Kopieren?!?
 
Wie bekomme ich unten das "teil" kopiert? Irgendwie steh ich da grade etwas aufm schlauch. Geht das überhaupt?

Danke im Voraus

Delphi-Quellcode:
  TMysqlClient=class;
  TMysqlResult = class(TObject)
  private
    ffieldscount  : longint;
    frowscount    : int64;
    ffields       : PMysql_FieldDef;
    fhandle       : TMysqlClient;
    fType         : TResultType;
    flengths      : PCardinal;
    frow          : TMysql_Row;
    fdata         : PMysql_Data;
    fdata_cursor  : PMysql_Rows;
    fRecNo        : longint;
    fcurrent_row  : TMysql_Row;
    fEOF          : boolean;
    fBOF          : boolean;
    flengthsread  : boolean;
    fLastRow      : longint;
    procedure SetRecNo(const Value: longint);
    procedure SetHasLengths(const Value: boolean);
    function GetHadErrors: boolean;
    function GetLastRowRead: boolean;
  public
    property Eof:boolean read fEof;
    property Bof:boolean read fBof;
    property RecNo: longint read fRecNo write SetRecNo;
    property HasLengths:boolean read flengthsread write SetHasLengths;
    property FieldsCount:longint read ffieldscount;
    property RowsCount:int64 read frowscount;
    property ResultType : TResultType read fType;
    property FieldsDefs : PMysql_FieldDef read ffields;
    property Lengths : PCardinal read flengths;
    property CurrentRow : TMysql_Row read fcurrent_row;
    property HadErrors : boolean read GetHadErrors;
    property LastRowRead : boolean read GetLastRowRead;
    constructor create(aMysql:TMysqlClient; aType:TResultType);
    destructor destroy;override;
    function FieldLenght(aIndex:longint):cardinal;
    function FieldValue(aIndex:longint):pchar;
    function FieldDef(aIndex:longint):PMysql_FieldDef;
    function FieldValueByName (aName:string; CaseSensitive:boolean=false):pchar;
    function FieldDefByName (aName:string; CaseSensitive:boolean=false):PMysql_FieldDef;
    function FieldIndexByName(aName:string; CaseSensitive:boolean=false):longint;
    procedure Next;
    procedure Prior;
    procedure First;
    procedure Last;
    procedure FetchLengths;
  end;

DeddyH 17. Okt 2011 17:24

AW: TMysqlResult = class(TObject) Kopieren?!?
 
Was genau meinst Du denn mit Kopieren? So etwas wie Assign?

DelTurbo 17. Okt 2011 18:30

AW: TMysqlResult = class(TObject) Kopieren?!?
 
Öhm, ich denk schon. Also z.b. result1:=result2 geht ja nicht, da wird ja nur der pointer umkopiert. Ich bräuchte aber das komplette objekt, damit ich result1 wieder mit anderen daten füllen kann, aber die "alten" noch habe, in result2.

DelTurbo 17. Okt 2011 20:41

AW: TMysqlResult = class(TObject) Kopieren?!?
 
Hab ich das falsch erklärt? Gebt mir ruhig Tiernamen wenn ich mist schreibe :)

Sir Rufo 17. Okt 2011 20:42

AW: TMysqlResult = class(TObject) Kopieren?!?
 
Zitat:

Zitat von DelTurbo (Beitrag 1130941)
Hab ich das falsch erklärt? Gebt mir ruhig Tiernamen wenn ich mist schreibe :)

Biene Maja :mrgreen:

DelTurbo 17. Okt 2011 21:06

AW: TMysqlResult = class(TObject) Kopieren?!?
 
Hehe, ich dachte da an andere ;)

Irgendwie such ich mir nen ast. Das doofe ist, das ich immer soviel vergesse, bzw. verwechsel. Gab es da nicht irgenwas womit man sowas kopieren konnte? Oder irre ich mich und man muss das von "hand" machen? Ich meine im kopf zu haben das man irgendwas ableiten konnte. Aber irgendwie steht ich im moment total auf der leitung.

stahli 17. Okt 2011 21:44

AW: TMysqlResult = class(TObject) Kopieren?!?
 
Du musst das von Hand machen. Üblicherweise implementiert man dies in der Methode Assign.
Es ist ab Delphi 2010 ggf. auch möglich, alle Felder eines Objektes in einer Schleife in ein anderes Objekt zu kopieren. Dazu müsste man aber die zu kopierenden Felder auch vorher "markiert" werden.
Also: Mach es von Hand.

DelTurbo 18. Okt 2011 08:50

AW: TMysqlResult = class(TObject) Kopieren?!?
 
Dann weiss ich bescheid. Es ist halt nur frustrierend wenn man hier im board bzw. bei google sucht, und weiss nichtmal wonach man suchen soll. Hätte ich das von anfang an gewusst, hätte ich das "schnell" von hand gemacht, statt zu suchen. Das suchen hat bestimmt länger gedauert.

Als antwort hätte auch ein einfaches "Musst du von Hand machen" gereicht.

Vielen dank für die antwort


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:25 Uhr.

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