AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Plötzlich ist der Zeiger = NIL

Ein Thema von Impulz · begonnen am 20. Dez 2011 · letzter Beitrag vom 20. Dez 2011
 
Impulz

Registriert seit: 19. Aug 2011
Ort: Lübeck
68 Beiträge
 
Delphi 7 Professional
 
#1

Plötzlich ist der Zeiger = NIL

  Alt 20. Dez 2011, 07:47
Delphi-Version: 5
Guten Morgen liebe Community,

Ich habe mal wieder ein Problem mit meiner Datenbankoberfläche.
Ich war schon soweit, dass alles funktionierte und alles fertig war nur dann musste ich umdenken. Der Grund dafür war, dass man die ID's in meinem ListView und StringGrid nicht sehen sollte und auch nicht drauf schreibend zugreifen sollte.

also blendete ich die ID aus... dabei spielte ich einbisschen hier und da rum und sehe nun das der zeiger auf mein Objekt NIL ist... aber komischer weise nur wenn ich Hinzufügen drücke.. beim Löschen und beim bearbeiten ist nix los... läuft alles...

hier etwas Code, vielleicht sieht jemand etwas.

wenn mehr code benötigt wird sagt bescheid:


Code:
procedure TStartseite.Hinzufgen1Click(Sender: TObject);
var
  Kunde: TKunde;
  Buch: TBuch;
  Sendung: TSendung;
  Autor: TAutor;

begin
  Dateneditieren.StrGrAuswahl.Cells[0,0]:='';
  Dateneditieren.StrGrAuswahl.Cells[1,0]:='';
  if IsPositiveResult(Dateneditieren.ShowModal()) then
  begin
    case (rgAuswahl.ItemIndex) of
      0 : begin
            Kunde := TKunde.Create(Kunde.id,Dateneditieren.StrGrAuswahl.Cells[0,0],Dateneditieren.strgrauswahl.cells[1,0]); //hier ist die exception//
            connect.LegeKundeAn(Kunde);
            addKundetoLV(Kunde);
          end;
      1 : begin
            Sendung:= TSendung.Create(Sendung.ID,Dateneditieren.StrGrAuswahl.Cells[0,0],Dateneditieren.strgrauswahl.cells[1,0]);
            connect.LegeSendungAn(Sendung);
            addSendungetoLV(Sendung);
          end;
      2 : begin
            Autor:= TAutor.Create(Autor.ID,dateneditieren.StrGrAuswahl.Cells[0,0],Dateneditieren.strgrauswahl.cells[1,0]);
            connect.LegeAutorAn(Autor);
            addAutortoLV(Autor);
          end;
      3 : begin
            Buch:= TBuch.Create(buch.ID,StrToInt(Dateneditieren.StrGrAuswahl.Cells[0,0]),Dateneditieren.StrGrAuswahl.Cells[1,0]);
            connect.LegeBuchAn(Buch);
            addBuchtoLV(Buch);
          end;
    else
      begin
        ShowMessage('Ups, beim Anlegen des Kunden lief etwas schief');
      end;
    end;
  end;
end;
hier ist der teil von der Kunden Unit (wir nehmen diese als beispiel)


Code:
constructor TKunde.Create(AKunden_ID:Integer; AVorname, ANachname: string);
begin
  inherited Create();

  self.FKunden_ID:= AKunden_ID;
  self.FKunden_Vorname:= AVorname;
  self.FKunden_Nachname:= ANachname;
end;
die beiden Funktionen:

Code:
function TStartseite.addKundetoLV(AKunde: TKunde): TKundeList;
var
  myItemAddKtoLV: TListItem;
begin
  myItemAddKtoLV:= lvAuswahl.Items.Add;
  myItemAddKtoLV.Caption:=(AKunde.Vorname);
  myItemAddKtoLV.SubItems.Add(AKunde.Nachname);
end;
Code:
procedure TDataconnect.LegeKundeAn(Akunde: TKunde);
var
  neuerKuQuery: TIBOQuery;
  neuerKuTransa:TIBOTransaction;
begin
  neuerKuQuery:= TIBOQuery.Create(nil);
  neuerKuTransa:= TIBOTransaction.Create(nil);
  neuerKuTransa.IB_Connection:=neuerKuQuery.IB_Connection ;
  try
    neuerKuQuery.IB_Connection:= FDataBase;
    neuerKuTransa.IB_Connection:= FDatabase;
    try
      neuerKuQuery.SQL.Text:= 'INSERT INTO KUNDEN (Vorname,Nachname) Values ('+QuotedStr(Akunde.Vorname)+','+QuotedStr(Akunde.Nachname)+') returning Kunden_ID';
      neuerKuQuery.ExecSQL;
      Akunde.ID := neuerKuQuery.ParamByName('Kunden_ID').AsInteger;
      neuerKuTransa.Commit;
    Except
      on E : Exception do
      begin
        ShowMessage('FEHLER IN Lege Kunde AN');
        neuerKuTransa.Rollback;
      end;
    end;
  Finally
    neuerKuQuery.Free;
    neuerKuTransa.Free;
  end;
end;



vielen vielen Dank im vorraus für eure zeit und hilfe


liebe grüße
Danil
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 17:39 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