Italia
Foro

Datenbankeintrag löschen

 
- 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 ?
 
13.06.2008  
 



 
- 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
 
14.06.2008  
 




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
 
15.06.2008  
 




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
 
15.06.2008  
 




Thomas
Freier
@Horst: ich mach es etwas unkonventionell....Datensatz lesen...Felderinhalte + Datensatznummer mit Spaltenbreite 0 in un Zeile.
KompilierenMarkierenSeparieren
1. Spalten definieren
Titel$ = Links;0;180;Mitte;2;100;Nummer;1;0
2. Gridbox erstellen
hGrid&   = Create(GridBox, Dlg%, Titel$, 3, 3, 0, 400, 190)
3. hier werden die Gridbox-Zeilen hinzugefügt
AddString(hGrid&, FELD1|FELD2|Datensatz-Nr)

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.
 
Gruß Thomas
Windows XP SP2, XProfan X2
15.06.2008  
 




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.

389 kB
Hochgeladen:17.06.2008
Downloadcounter121
Download
 
Gruß Thomas
Windows XP SP2, XProfan X2
17.06.2008  
 



 
- 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
 
17.06.2008  
 




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?
 
Gruß Thomas
Windows XP SP2, XProfan X2
18.06.2008  
 




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  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.706 Views

Untitledvor 0 min.
Tommy18.02.2014
Uwe Lang17.07.2012
funkheld25.05.2012
Georg14.12.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie