AGB  ·  Datenschutz  ·  Impressum  







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

delphi BDE Datenbank Abfrage Help

Ein Thema von DenjoR · begonnen am 3. Jun 2009 · letzter Beitrag vom 3. Jun 2009
Antwort Antwort
DenjoR

Registriert seit: 3. Jun 2009
4 Beiträge
 
#1

delphi BDE Datenbank Abfrage Help

  Alt 3. Jun 2009, 16:58
So hallo erstmal
Ich bin noch Delphi Neuling und plage mich gerade mit dem versuch einer abfrage ab.

Ich habe per Datenbank tutorial MYbase folgendes erstellt:

1 Datenbank mit 4 Feldern | Datum | Ansprachen | Termine | Abschluesse |

folgende abfrage möchte ich erstellen :

-wenn das Datum mit dem heutigen übereinstimmt
-dann letzten datensatz feld:ansprachen editieren
-sonst neuer Datensatz

bisher sieht das in etwa so aus:

procedure TForm2.Button1Click(Sender: TObject);
var Ansprachen1:integer;
var Datum: TDate ;
begin
Datum := Date();
ClientDataSet1.LoadFromFile('pa.xml');
ClientDataset1.last;
if ClientDataset1.FieldByName('Datum').AsString = datetoStr(Datum) then
ClientDataset1.Edit;
ClientDataset1.FieldByName('Datum').Asstring :=datetostr( date());
ClientDataset1.FieldByName('Ansprachen').Asstring := inttoStr(+3);
ClientDataset1.Post;
ClientDataSet1.SaveToFile('pa.xml', dfXML);

--------------------------------------------------------------

ClientDataSet1.LoadFromFile('pa.xml');
if ClientDataset1.FieldByName('Datum').AsString <> datetoStr(Datum) then
ClientDataset1.Append;
ClientDataset1.FieldByName('Datum').Asstring :=datetostr( date());
ClientDataset1.FieldByName('Ansprachen').Asstring := inttoStr(+5);
ClientDataset1.Post;
ClientDataSet1.SaveToFile('pa.xml', dfXML);


der untere teil muss falsch sein da ich dort ein Fehler ausgeworfen kriege.
der obere teil funktioniert in soweit das er die zahl verändert und keinen neuen Datensatz macht.

naja wäre für jeden Denkansatz sowie Programmierungshilfe dankbar

Fehlermeldung :

Im projekt test.exe ist eine Exception der Klasse EDataBaseError mit der Meldung 'ClientDataSet1atenmenge weder im Editiermodus -noch im einfügemodus' aufgetreten

was halt noch nicht funktioniert ist die abfrage an sich bzw kann ich sie nicht testen da

-wenn ich im oberen teil statt ClientDataset1.Edit, ClientDataset1.Append schreibe kommt die fehlermeldung
-die fehler meldung kommt auch wenn ich ClientDataset1.Edit belasse aber die if abfrage auf undlgeich ändere.
Ich fumel da jetzt schon ne ganze zeit rum komm einfach nicht auf die Lösung

MFG

denjoR
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: delphi BDE Datenbank Abfrage Help

  Alt 3. Jun 2009, 17:37
Herzlich willkommen in der DP

Zitat:
der untere teil muss falsch sein da ich dort ein Fehler ausgeworfen kriege.
Kannst du bitte die Fehlermeldung noch nennen? Das ist sehr nichtssagend.

Und wo hängt es denn nun genau?
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
DenjoR

Registriert seit: 3. Jun 2009
4 Beiträge
 
#3

Re: delphi BDE Datenbank Abfrage Help

  Alt 3. Jun 2009, 20:34
Habs Hinbekommen

Sorry wenn mein erster post etwas unstrukturiert und wenig informel war

So gehts ganz easy

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var y,Ansprachen1:integer;
var Datum: TDate ;
var X:String;
begin
Datum := Date();
ClientDataSet1.LoadFromFile('pa.xml');
ClientDataset1.last;
X:=ClientDataset1.FieldByName('Datum').AsString;
Y:=StrtoInt(ClientDataset1.FieldByName('Ansprachen').Asstring);
label1.caption :=X;
if X <> datetoStr(date()) then ClientDataset1.Append else ClientDataset1.edit;
IF X <> datetoStr(date()) then y:=0;
ClientDataset1.FieldByName('Datum').Asstring :=datetostr( date());
ClientDataset1.FieldByName('Ansprachen').Asstring := inttoStr(y+1);
ClientDataset1.Post;
ClientDataSet1.SaveToFile('pa.xml', dfXML);
ein bischen nachdenken und pause schadet wohl nicht ^^

nochmals korrigierte version
es sollte schon ASInteger sein wenn der datensatz Feld ebenfalls Integer ist

Delphi-Quellcode:
procedure TForm2.Button4Click(Sender: TObject);
var y:integer;
var Datum: TDate ;
var X:String;
begin
Datum := Date();
ClientDataSet1.LoadFromFile('pa.xml');
ClientDataset1.last;
X:=ClientDataset1.FieldByName('Datum').AsString;
Y:=ClientDataset1.FieldByName('Abschluss').AsInteger;
label1.caption :=X;
if X <> datetoStr(date()) then ClientDataset1.Append else ClientDataset1.edit;
IF X <> datetoStr(date()) then y:=0;
ClientDataset1.FieldByName('Datum').AsString :=datetostr( date());
ClientDataset1.FieldByName('Abschluss').AsInteger := (y+1);
ClientDataset1.Post;
ClientDataSet1.SaveToFile('pa.xml', dfXML);
end;
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:20 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