Zum Inhalt springen

[Delphi] Datenbank


BillyBoy84

Empfohlene Beiträge

Ich hab ein Programm geschrieben in Delphi und auch eine Datenbank erstellt, funktioniert auch alles super!

Nur wenn ich das Programm wo anders starten will, als von meinem Rechner, denn kommt die Fehlermeldung, dass er den Pfad d:/Programm _delphi/Fragenkatalog.db nichz findet!

Ich habe aber im Programm keinen Pfad angegeben, wo könnte der nun stehen oder wie kann ich den ändern?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Jetzt bekomme ich noch folgende Fehlermeldung:

Im Projekt Projekt1.exe ist eine Exception der Klasse EDatabaseError

aufgetreten! Meldung 'Table1: Opaeration bei geschlossener Datenmenge

nicht ausführbar' Prozeß wurde angehalten! Mit einzelne Anweisung oder

Start fortsetzen!

Das Programm hatte an meinem Rechner funktioniert, nur woanders treten Fehler auf :-(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Folgende Angaben wären interessant:

a)Welche DB-Komponenten verwendest du? (TTable?)

b)An welcher Stelle im Code kommt diese Fehlermeldung

Allein mit der Meldung kann man nix anfangen. Normalerweise hat da Delphi aber recht: Du versuchst was an einer geschlossenen Datenmenge zu ändern, wie es aussieht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Genau, benutze TTable und die Fehlermeldung kommt, wenn ich das Programm starte! Wo der Fehler ist wird mir nicht angezeigt!

Das ist mein Quelltext in der Unit:

procedure TForm4.AntwortAClick(Sender: TObject);

Begin

  Antwort:=table1.FieldByName('Loesung').AsString; //Lösung überprüfen

    If Antwort=AntwortA.Caption then //Vergleich von Lösung und Antwort

      Begin

        Antwort:= 'True';

        Showmessage('Die Antowrt ist richtig');

      end

      else

        Begin

          Antwort:= 'False';

          Showmessage('Die Antowrt ist falsch');

        end;

  //AntwortA.Checked:=False;

  Spielbrett.show; //Öffnet wieder Spiel

  table1.First;

  for id:=0 to random(anzahl) do //ruft neue Frage auf

    Begin

      table1.Next;

    end;

  close;


end;


procedure TForm4.AntwortBClick(Sender: TObject);

Begin

  Antwort:=table1.FieldByName('Loesung').AsString;

    If Antwort=AntwortB.Caption then

      Begin

        Antwort:= 'True';

        Showmessage('Die Antowrt ist richtig');

      end

      else

        Begin

          Antwort:= 'False';

          Showmessage('Die Antowrt ist falsch');

        end;

  //AntwortB.Checked:=False;

  Spielbrett.show;

  table1.First;

  for id:=0 to random(anzahl) do

    Begin

      table1.Next;

    end;

  close;


end;


procedure TForm4.AntwortCClick(Sender: TObject);

Begin

  Antwort:=table1.FieldByName('Loesung').AsString;

    If Antwort=AntwortC.Caption then

      Begin

        Antwort:= 'True';

        Showmessage('Die Antowrt ist richtig');

      end

      else

        Begin

          Antwort:= 'False';

          Showmessage('Die Antowrt ist falsch');

        end;

  //AntwortC.Checked:=False;

  Spielbrett.show;

  table1.First;

  for id:=0 to random(anzahl) do

    Begin

      table1.Next;

    end;

  close;


end;


procedure TForm4.AntwortDClick(Sender: TObject);

Begin

  Antwort:=table1.FieldByName('Loesung').AsString;

    If Antwort=AntwortD.Caption then

      Begin

        Antwort:= 'True';

        Showmessage('Die Antowrt ist richtig');

      end

      else

        Begin

          Antwort:= 'False';

          Showmessage('Die Antowrt ist falsch');

        end;

  //AntwortD.Checked:=False;

  Spielbrett.show;

  table1.First;

  for id:=0 to random(anzahl) do

    Begin

      table1.Next;

    end;

  close;


end;


procedure TForm4.FormCreate(Sender: TObject);


begin

  randomize;

  id:=0;

  anzahl:=table1.recordCount;

  for id:=0 to random(anzahl) do

    Begin

      table1.Next;

    end;

end;



procedure TForm4.DataSource1DataChange(Sender: TObject; Field: TField);

begin

  anzahl:=Table1.RecordCount;

end;


end.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mal ne doofe Frage: Wo wird Table1 eigentlich geöffnet?

Setz mal nen Haltepunkt auf die Zeile "anzahl:=table1.recordCount;" im FormCreate. Schau dir mal den Aufruf-Stack an...das sollte doch rauszufinden sein, wo genau das Prog aussteigt, ich vermute mal es macht beim RecordCount "Peng".

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...
  • 1 Monat später...

aloha ;)

meine bescheidene meinung:

kann es sein, dass du zur Entwurfszeit im Objektinspektor deine "Datenbankkomponenten" geöffnet hast ? das funktioniert dann an deinem rechner in der Regel sehr gut ;) vor allem aus Delphi heraus...

schliesse sie im Objektinspektor und im Ereignis OnFormShow kannst du ja reinhängen:

if not Table.Connected then

Table.Open;

... oder so ähnlich ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...