AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Record im Objekt

Ein Thema von davar · begonnen am 9. Aug 2006 · letzter Beitrag vom 9. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
davar

Registriert seit: 4. Feb 2005
311 Beiträge
 
Turbo Delphi für Win32
 
#1

Record im Objekt

  Alt 9. Aug 2006, 13:17
Hallo Leute,

ich versuche nun, mich mit den Themen Records und Klassen vertraut zu machen, hab aber einige Anfangsschwierigkeiten.

Also, ich möchte eine Klasse "Kundendaten" erstellen. Diese Klasse soll über einen Record namens "Kunde" verfügen. Und mit folgendem Code:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Db, ZQuery, ZMySqlQuery, ZTransact, ZMySqlTr, ZConnect,
  ZMySqlCon;

type
  TKunde = record
    kundennummer: string;
  end;

  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    ds1: TDataSource;
    db1: TZZMySqlDatabase;
    tr1: TZZMySqlTransact;
    query1: TZZMySqlQuery;
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

  TKundendaten = class(TObject)
    kunde1 : TKunde;
    procedure Kundesuchen;
  end;

var
  Form1: TForm1;
  Kundendaten: TKundendaten;

implementation

{$R *.DFM}

procedure TKundendaten.Kundesuchen;
begin
Form1.query1.sql.text:= 'SELECT * FROM kundendaten';
Form1.query1.Open;
kunde1.kundennummer:= Form1.query1.fieldbyname('ID').AsString;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
Kundendaten.Kundesuchen;
end;

end.
bekomme ich eine Fehlermeldung, und zwar in der Zeile

kunde1.kundennummer:= Form1.query1.fieldbyname('ID').AsString; Wo denke ich falsch?


MfG

davar
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.893 Beiträge
 
Delphi 12 Athens
 
#2

Re: Record im Objekt

  Alt 9. Aug 2006, 13:21
verrätst DU uns evtl. auch die Fehlermeldung?
Die Glaskugelsteuern sind mir einfach zu hoch.

Gruß

onlinekater
Thomas Breitkreuz
  Mit Zitat antworten Zitat
davar

Registriert seit: 4. Feb 2005
311 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Record im Objekt

  Alt 9. Aug 2006, 13:35
Zitat von onlinekater:
verrätst DU uns evtl. auch die Fehlermeldung?
wäre wohl von Vorteil..

"Zugriffsverletzung bei Adresse ... in Modul 'Project1.exe Schreiben von Adresse ..."

Als wäre hier eine Variable nicht definiert..
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Record im Objekt

  Alt 9. Aug 2006, 13:40
Kannst Du mal versuchen aus:

Delphi-Quellcode:
type
TKunde = record
  kundennummer: string;
end;
diese zu machen:

Delphi-Quellcode:
type
TKunde = record
  kundennummer: string[255];
end;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
davar

Registriert seit: 4. Feb 2005
311 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Record im Objekt

  Alt 9. Aug 2006, 13:44
Nein, das ändert auch nichts. Gleiche Fehlermeldung.
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#6

Re: Record im Objekt

  Alt 9. Aug 2006, 13:44
Meine Prognose: Das Record ist gesund, aber die Instanz zeigt auf einen Haufen Altpapier...
ein KundenDaten := TKundenDaten.Create(...) sollte helfen

PS:
Zitat von davar:
Delphi-Quellcode:
procedure TKundendaten.Kundesuchen;
begin
  Form1.query1.sql.text:= 'SELECT * FROM kundendaten';
  Form1.query1.Open;
  kunde1.kundennummer:= Form1.query1.fieldbyname('ID').AsString;
end;
Iih, mach das Form1 da wech!

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Record im Objekt

  Alt 9. Aug 2006, 13:49
es sieht auch so aus als ob du die Kundenklasse nie instantiiert hättest.
Markus Kinzler
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Record im Objekt

  Alt 9. Aug 2006, 14:10
Zitat von JasonDX:
Iih, mach das Form1 da wech!
In diesem Fall nicht, da Form1 <> Self!

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#9

Re: Record im Objekt

  Alt 9. Aug 2006, 14:13
Zitat von Hawkeye219:
Zitat von JasonDX:
Iih, mach das Form1 da wech!
In diesem Fall nicht, da Form1 <> Self!
Ich weiss, deswegen sollte es IMO auch weg!

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Record im Objekt

  Alt 9. Aug 2006, 14:17
Delphi-Quellcode:
procedure TKundendaten.Kundesuchen;
begin
  Form1.query1.sql.text:= 'SELECT * FROM kundendaten';
  Form1.query1.Open;
  kunde1.kundennummer:= Form1.query1.fieldbyname('ID').AsString;
end;
ich bin da nich so fit mit SQL Querys, aber
wenn ich Select * from kundendaten mache
kommt da nicht mehr als ein String zurück?

Kannst Du mal testhalber das Ergebnis von
Form1.query1.fieldbyname('ID').AsString
als Message oder in ein Memofeld ausgeben?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 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