Site Announcements

Liebe Gäste des Forums, wir freuen uns, dass ihr zu uns gelangt seid.
Windev ist eine sehr umfangreiche und starke Entwicklerumgebung für Anwendungen unter Windows, Linux und Internetapplikationen inkl. Mobile.
Hier sind Antworten und Anregungen dazu zu finden!
Möchtest du aktiv mitschreiben? Dann melde dich durch Klick auf den Text "Registrieren" hier rechts oberhalb an.

HModify ändert nicht, sonder fügt hinzu - warum?  Thema ist gelöst

Alle Themen rund um die Erstellung von Programmen

HModify ändert nicht, sonder fügt hinzu - warum?

Beitragvon Magic » 7. Juli 2014, 09:41

Hi,

folgendes Problem:

Ich hole mir eine Datensatz mit FileToScree(...) in ein Fenster zum editieren.
Nach dem editieren führe ich ein ScreenToFile(...) um anschließend den Datensatz per HModify(...) zu ändern.

Die Tabelle ist in einer HFSQL Ver. 17.
Merkwürdigerweise wird dann der Datensatz nicht geändert, sondern ein neuer angelegt. wie als hätte ich ein HAdd(...) ausgeführt.
Woran kann es nur liegen? Was habe ich übersehen? Dieses Verhalten habe ich bei mind. 2 unterschiedlichen Tabellen.
Gruß,
Magic
Magic
Member
 
Beiträge: 51
Registriert: 2. September 2011, 13:48
Has thanked: 0 time
Have thanks: 0 time

Re: HModify ändert nicht, sonder fügt hinzu - warum?

Beitragvon Herbert » 7. Juli 2014, 17:49

Nein, kenne ich nicht.
Bist du sicher,m dass nirgendwo sonst bereits ein Hadd() steht?

Was hast du denn für Inhalte? Kannst du sehen, ob vorher ein Hreset() erfolgte? Hmodify() speichert einfach den aktuellen Satz ab, sonst müsstest du ja Daten des zuletzt gelesenen Satzes dabei haben.

Prüfe mal auf ..newrecord auf die Tabelle. Müsstest ja in deinem Fall ein true haben. So musst du dann rückwärts suchen, woher dies kommt.
Herbert
Site Admin
 
Beiträge: 354
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Has thanked: 5 times
Have thanks: 3 times

Re: HModify ändert nicht, sonder fügt hinzu - warum?

Beitragvon Magic » 9. Juli 2014, 08:17

Herbert hat geschrieben:Bist du sicher,m dass nirgendwo sonst bereits ein Hadd() steht?
Ja.

Herbert hat geschrieben:Hmodify() speichert einfach den aktuellen Satz ab, ...
Genau das will ich auch.

Aber jetzt hat es "klick" gemacht. Natürlich ...
Vor dem HModify(...) prüfe ich ob die Daten OK sind und ob es z.B. bereits einen Datensatz mit dann den gleichen Daten gibt. Dazu führe ich z.B. ein HReedSeek(...) aus. Ist jetzt klar, danach steht der Satzzeiger auf einem anderen Datensatz. Hätte auch früher drauf kommen können.
Nach der Prüfung müsste ich also nur wieder zurück auf dem ursprünglichen Datensatz positionieren.

Aber wie gestalte ich denn solch eine Prüfung mit dem WieDev Mitteln?
Nutzt Ihr hierfür das automatische Exception verhalten, welches WinDev anbietet?
Gruß,
Magic
Magic
Member
 
Beiträge: 51
Registriert: 2. September 2011, 13:48
Has thanked: 0 time
Have thanks: 0 time

Re: HModify ändert nicht, sonder fügt hinzu - warum?  Thema ist gelöst

Beitragvon Magic » 9. Juli 2014, 09:29

OK, hab es gelöst.
Direkt nach dem FileToScreen(...) merke ich mir die Datensatznummer mit HRecNum(...).
Beim HModify(...) gebe ich als Parameter die Nummer des Datensatzes an, der geändert werden soll und alles ist gut.
Gruß,
Magic
Magic
Member
 
Beiträge: 51
Registriert: 2. September 2011, 13:48
Has thanked: 0 time
Have thanks: 0 time


Zurück zu Programmierung allgemein

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron