| |
|
|
- Page 1 - |
|
| Mit diesem Code lösche ich gezielt einen Datenbankeintrag: KompilierenMarkierenSeparieren
IF CLICKED(kill%) | MenuItem(60)
MessageBox(Wollen Sie den Eintrag
+UPPER$(titel$)+
wirklich löschen ?,Lösch-Funktion,292)
IF %Button = 6
CHDIR pfad$+\+verz01$
@db(Open, #3, pfad$+\+verz01$+\DB_KATALOG.DBF)
@db(Use,#3)
@db(Go, Z%)
@db(Delete)
@db(Pack)
@db(close,#3)
@db(Open, #4, pfad$+\+verz01$+\DB_KATALOG.DBF)
@db(Use,#4)
@db(CreateIndex, NAME, IXNAME)
@db(CreateIndex, BILD, IXBILD)
@db(close,#4)
@db(Open, #5, pfad$+\+verz01$+\DB_KATALOG.DBF)
@db(Use,#5)
@db(Index, IXNAME, IXBILD)
@db(close,#5)
INHALTS_ANZEIGE Hier wird die Eintragsanzeige aktualisiert
SetFocus(mn_inhalt&)
ENDIF
ENDIF
Der Eintrag wird auch gelöscht aber anschliessend stehen die Texte der anderen Daten durcheinander. In der Daten-Bank sind 1 Feld mit dem Namen, 1 Feld mit einem Bildernamen und zwei Memofelder. Alles klappt, bloss das Löschen schlägt Purzelbaum - Was ist falsch ? |
|
|
| |
|
|
|
| |
|
- Page 1 - |
|
| Nun hab ich nach Euren Ratschlägen den Code modifiziert (im ersten Beitrag hab Io l' Code ausgetauscht) und es ist genau so wie vorher. Warum bekomme ich, wenn ich X%=@db(Index, IXNAME, IXBILD) abfrage, eine Null. Laut Aiuto müsste hier eine Eins angezeigt werden. Die Index-File sind doch vorhanden. Seht mir meine blöde Fragerei nach. Nach vielen Jahren Profan-Benutzen arbeite ich das erste Mal mit Datenbank-File. Da sind die Fehler schon vorprogrammiert ! Nobody is perfect !
Nachschlag: Der Fehler lag bei mir - Getcount ist Nullbasierend (schönes Wort) und die Feldeinträge beginnen mit Eins. Meine Schleife per die Inhaltsanzeige begann auch mit Eins zu zählen und dadurch kam nach dem Löschen eines Datensatzes alles durcheinander ! - Jetzt beginnt die Schleife bei Null und alls klappt. Danke aber trotzdem per die Tipps zum Thema INDEX |
|
|
| |
|
|
|
Jac de Lad | @Dieter: Ich hatte hier noch nichts geschrieben, schließe mich aber sofort der Meinung an. |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 14.06.2008 ▲ |
|
|
|
|
Dieter Zornow | @Jac, du hast recht war ja von Thomas, hatte wohl noch deinen Namen im Kopf, da ich zuvor dein wieder rauf und runter gelesen hatte. |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 14.06.2008 ▲ |
|
|
|
|
Jac de Lad | Oh du denkst an mich. |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 14.06.2008 ▲ |
|
|
|
|
| ...ich krieg noch die Krise Alles nach Vorschrift gemacht. Löschen geht jetzt, wenn Io l' letzten Eintrag in der Gridbox lösche. Nehme ich einen willkürlichen Eintrag , werden die Texte in den Memo-Feldern vertauscht. - Und was ist das per eine File, welche beim Löschen erstellt wird - DB3$$$.D$$ ? - Nervlich total am Boden bitte ich um Aufklärung |
|
|
| |
|
|
|
Dieter Zornow | Ich denke mal, dass es mehr mit der Gridbox als mit der Datenbank zusammenhängt, aber ohne zu wissen was du da machst kann dir niemand helfen. So wie es aussieht liest du die Datenbank in die Gridbox ein, wenn du dann was änderst hat der erste Eintrag in der Gridbox den Index 0 in der Datenbank aber 1 oder wenn du circa einen Index einliest irgend eine andere Datensatznummer, da hängt vielleicht dein Fehler. |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 15.06.2008 ▲ |
|
|
|
|
| @Dieter - sowas in der Art hab ich auch in Verdacht. Arbeite schon mit zwei Variablen (Gridbox und Index) - Schalte ich eine Messagebox dazwischen zur Kontrolle, zeigt mir diese den gewählten Eintrag auch an und er wird gelöscht, aber seltsamerweise verschieben sich die Texte der Memo-Felder - das passiert nur, wenn ich eine freie Auswahl treffe. Der letzte angezeigte Eintrag wird ohne Komplikationen gelöscht. - komme aber noch dahinter |
|
|
| |
|
|
|
Thomas Freier | @Horst: ich mach es etwas unkonventionell....Datensatz lesen...Felderinhalte + Datensatznummer mit Spaltenbreite 0 in un Zeile. KompilierenMarkierenSeparieren Zum Ändern (eigene Maske) oder Löschen lese ich die Datensatznummer aus und gehe damit zum Datensatz. Damit hatte ich bisher Null Probleme, egal wie indiziert oder eine Gridbox oder ein Listview umsortiert wurde. |
|
|
| |
|
|
|
Thomas Freier | @Horst, ich hoffe du hast die Krise überwunden und dbf nicht in die Ecke verbannt. In meiner Müllkiste fand ich ein Script per MEMO-Feld Daten in einem Listview (bisher nicht verwendet) und etwas in deine Richtung angepasst. Vielleicht findest du da Lösungen. |
|
|
| |
|
|
| |
|
- Page 2 - |
|
|
| @Thomas es ist ja sehr aufmerksam, dass Du an mein Problem denkst, aber den Text habe ich. Da sind aber keine Memo-Felder vorgesehen. Ich habe zwei C- und zwei M - Datenfelder und hier liegt beim Löschen das Problem. Das interessante ist dabei, wenn ich im Programm von Dieter Zornow DBFViewer ein Feld lösche, passiert das gleiche. Auch hier wird der Text der anderen Felder verwürfelt - Seltsam ist auch, dass in beiden PROFAN-Foren jede Menge DB-Texte zu finden sind, aber kein Text, in dem Einträge mit Memo-Feldern gelöscht werden !? - Mein Programm ist soweit fertig, aber ohne eine einwandfreie Löschfunktion wertlos |
|
|
| |
|
|
|
Thomas Freier | @Horst, ich weis nicht, ob es an der späten Stunde liegt. Ich habe es fünf mal gelesen und immer noch nicht verstanden, wo dein Problem liegt.
Da sind aber keine Memo-Felder vorgesehen. Ich habe zwei C- und zwei M - Datenfelder
Bei dbf sind M-Felder = MEMO Felder.
Das interessante ist dabei, wenn ich im Programm von Dieter Zornow DBFViewer ein Feld lösche, passiert das gleiche.
Willst du einen Datensatz löschen oder die Struktur der dbf durch Löschen eines Feldes verändern? Im letzteren Fall muß du eine neue Datenbank aufbauen (siehe Gerhard Putschalka und seine WrkDbFil.prf = mapping) Nimm mal die Sofware (Windbf.exe) [web]https://www.buchenwald.de/software/wdbfdwn-d.html[/web] und spiel das durch, was du möchtest. Geling das fehlerfrei, geht das auch mit XProfan. Allerdings müsste alles auch mit Dieters Pogramm gehen. Was ist denn an File vorhanden? Nur eine xyz.dbf oder auch eine xyz.dbt? |
|
|
| |
|
|
|
Dieter Zornow | Hallo Horst,
ich habe mit meinem DBF-Viewer in einer Tabelle 2 x C, 2 x M Felder Datensätze gelöscht, es funktioniert einwandfrei ohne, dass sich Felder verschieben. ich habe es mit den verschieden Tools die darin enthalten sind ebenfalls probiert, die Tabellen bleiben richtig. Die Tabellen sind aus dem Beispiel das Thomas gepostet hat.
Gruss
Dieter |
|
|
| Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 18.06.2008 ▲ |
|
|
|