Deutsch
Forum

DB Datenbank rückwärts indizieren?

 

Martin
Kempf
Moin.
Gibts einen Befehl, mit dem ich die Indexdatei nicht aufsteigend sondern absteigend sortieren lassen kann?
 
28.09.2009  
 



Wie lässt Du denn jetzt aufsteigend sortieren?
 
28.09.2009  
 




Dieter
Zornow
Nein, gibt es nicht.
Wenn du aber erklärst was du vor hast, kann dir vielleicht jemand helfen.
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
28.09.2009  
 




Martin
Kempf
Wenns die Indizierung nicht andersrum gibt, dann zäum ich halt mein Pferd von hinten auf, passt scho. Aber wo ihr mir auf die Sprünge helfen könntet: Ich hab zwei offene Fenster. Fenster 1 hat eine Gridbox mit 24 Zeilen, in der die aktuellsten 24 Datenbankeinträge vorhanden sind. Fenster 2 hat eine Eingabemaske für einen Datensatz. Ich möchte den in der Gridbox jeweils angeleuchteten Datensatz sofort in die Maske übernehmen. Über die Waitinputschleife lasse ich die Ereignisse prüfen. Bei Mausklicks klappt das wunderbar über
KompilierenMarkierenSeparieren
Elseif Clicked(hGrid&)

selekted& = @GetCurSel(hGrid&)
X$=@SubStr$(@GetString$(hGrid&,selekted&),1,"|")
SetText Text10&, X$

EndIf


Ich kann mich aber in der Gridbox auch mit Cursor Hoch, runter, Pos1, Ende, PgUp und PdDn bewegen und hab den Dreh noch nicht raus, wie ich die Scankeyabfrage sauber einfüge. Wie schreibe ich "Wenn Scankey größer 32 und kleiner 41" auf Xprofanisch?
 
28.09.2009  
 



Schau mal, wann in der subClassProc wm_keydown ankommt.
 
28.09.2009  
 




Dieter
Zornow
Versuche es mal so

if (%scankey > 32) and (%scankey < 41)
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
29.09.2009  
 




Falk
Fallenstein
Beim alten dBase III+ (letzte DOS-Version ca. 1985) gab es auch keinen Befehl zum absteigenden Indizieren, für numerische Felder jedoch einen sehr einfachen Trick:

use TABELLE
index on -FELD1 to XFELD1
* FELD1 ist numerisch, XFELD1.NDX wird erzeugt
use TABELLE index XFELD1

Das ist bei XProfan nicht mehr möglich, weil jetzt alle Feldbezeichner immer als Strings behandelt werden, auf die der numerische Operator "Vorzeichenwechsel" nicht anwendbar ist.

Einfacher geht es bei dBase III+ mit dem SORT-Befehl und der dazugehörigen /D (descending) Option:

use TABELLE
sort on FELD1 to TABELLE1 /D
use TABELLE1

Das erzeugt keine Indexdatei, sondern eine komplett neue DBF Datei. Zum schnellen Finden bestimmter Datensätze muss also auch ein neuer Index erzeugt werden. Aber SORT funktioniert auch problemlos mit String- und Datumsfeldern. Deshalb benutze ich dBase III+ auch heute noch ganz gern.
 
Strategien im Vergleich:
Microsoft: der Computer macht mit Dir, was er will ...
XProfan: der Computer macht, was Du von ihm willst.

XProfan 11, Windows XP (1.5 GByte RAM), XProfEd
29.09.2009  
 




Martin
Kempf
Mit den Scancodes bin ich nicht weitergekommen, da scheint sich alles in der Gridbox abzuspielen und man kann die mit den Cursortasten ausgeführten Bewegungen offenbar nicht über die Scankeyfunktion auslesen. Prima der Tip mit dem Subclassing, da bekomm ich sofort ein Feedback. Ich weiß zwar noch nicht, warum ich bei jeder Tasteneingabe eine Subclassmessage bekomme, obwohl ich doch nur
ElseIf SubClassMessage(hGrid&, ~wm_keydown)
abfrage, aber damit kann ich leben und umgehen.
Besten Dank auch!
 
02.10.2009  
 



In &swParam steht die Tastennummer und einzelne Tasten abwürgen kannst Du indem Du für den Fall set("winproc",0) setzt.
 
02.10.2009  
 




Martin
Kempf
Danke für den Tip mit dem swParams. Nachdem baustellenmäßig nun saure Gurken Zeit angesagt ist, komm ich mal wieder zum Programmieren und das mit dem Parametern klappt gut.
Frage zu den dBase-Geschichten: Werden denn die Indexdateien nicht automatisch aktualisiert, wenn ich mit Browse oder Append neue Datensätze angefügt habe? Das Browse ist schon ne prima Funktion, die viele Sachen erleichtert, macht aber nur halb glücklich, weils einfach einige Mankos bei der Bedienung gibt. Wenn ich mit dem Rollrad der Maus runterscrolle, geht das nur, wenn ich auch mit dem Mauszeiger auf dem schmalen Scrollbalken positioniert bin. Oder wenn ich einen Datensatz neu angefügt habe, dann bekomme ich den nicht angezeigt, auch mit scrollen oder blättern nicht - ich muß erst die Browsefunktion beenden und wieder neu aufrufen... liegts vielleicht dran, daß dBase Funktionen ausser mir keiner mehr braucht und steifmütterlich behandelt werden?
 
17.12.2009  
 




Thomas
Freier
Nein! Nein! Nein!
Browse? Naja, muß nicht sein. Heute gibs dafür Listview. Ich verwende jedoch nur Franks ListView.dll . Da bleibt fast kein Wunsch offen. Naja, bis aufs Drucken und Sortieren nach Spalten über 250 Zeichen (in Arbeit).
Einmal das Beispiel: Eigene_Eingaben.prf ansehen mit den Controls zu Editieren. Auch DateEdit oder MultiEdit für MEMO machen sich gut.
Ich persönliche nehme als letzte eine 0 breite Spalte für die Datensatznummer mit ins Listview und speicher die Änderungen Datensatz für Datensatz. Franks Beispiel über eine csv ist nicht mein Fall.
Soll ein MEMO-Feld über 250 Zeichen angezeigt werden, so muß die Spalte nachträglich über SetItemTextEx(H,T,S,L,A) befüllt werden.
 
Gruß Thomas
Windows XP SP2, XProfan X2
18.12.2009  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

8.404 Betrachtungen

Unbenanntvor 0 min.
Torben Nissen19.02.2014
holmol9314.06.2013

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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