| |
|
|
| 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 ? |
|
|
| |
|
|
|
Thomas Freier | Irgendwie habe ich Zweifel, dass das vorher so ging. Im Prinzip kann per ein MEMO-Feld keine Index-File erstellt werden. |
|
|
| |
|
|
|
Dieter Zornow | Du öffnest die Datenbank setzt keinen Index und benutzt aber bei db(go,Index die mit Indexvariante anstatt db(GO,feldnr&) Wie Jac schon geschrieben hat dürfen keine Memofelder als Indizes verwendet werden. 4 x Indizes werden auch nicht mehr gepflegt maximal 2 |
|
|
| 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 ▲ |
|
|
|
|
| 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. |
|
|
| |
|
|