Deutsch
Forum

@dbIndex Problem

 

Georg
Hovenbitzer
Hallo zusammen,

ich versuche gerade das erste mal die DB Funktionen von Profan zu benutzen und bekomme immer eine Schutzverletzung in meinem Code wenn unter dem Proc OpenDB die Zeile @dbIndex(TITEL) aktiv ist.
Beim Schreiben des zeiten Datensatzes kommt die Schutzverletzung, ohne den @dbIndex Befehl läuft das Schreiben durch.
Nur wird dann nichts gefunden.

Hat jemand einen Tip was ich falsch mache ?!
KompilierenMarkierenSeparieren
Proc CreateDB

    Assign #4,"TITEL.STR"
    Rewrite #4
    Print #4,"TITEL;C;254;0"
    Close #4
    DbCreate "TITEL.STR" > "TITEL.DBF"
    Assign #4,"TITEL.STR"
    Erase #4
    @dbOpen(#5,"TITEL.DBF")
    @dbUse(#5)
    DbCreateIndex "TITEL" > "TITEL"
    @dbClose(#5)

EndProc

Proc OpenDB

    Case @FileExists("TITEL.DBF") = 0 : CreateDB
    @dbOpen(#5,"TITEL.DBF")
    @dbUse(#5)
    @dbIndex("TITEL")

EndProc

Proc PutDB

    Parameters Titel$
    @dbAppendBlank()
    @dbPut("TITEL",Titel$)
    @dbPutRec(0)

EndProc

Proc FindDB

    Parameters Titel$

    If @dbFind(Titel$,0) <> 0

        Return 1

    Else

        Return 0

    EndIf

EndProc

Declare Zeile$
Cls
OpenDB

WhileLoop 100

    Zeile$ = "Zeile" + @Str$(&Loop)
    Print Zeile$
    PutDB(Zeile$)

EndWhile

If FindDB("Zeile55") = 1

    Print "Test 1 gefunden"

Else

    Print "Test 1 nicht gefunden"

EndIf

If FindDB("Zeile_99") = 1

    Print "Test 2 gefunden"

Else

    Print "Test 2 nicht gefunden"

EndIf

WaitInput
DbCreateIndex "TITEL" > "TITEL"
@dbClose(#5)
End
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
06.06.2006  
 




Georg
Hovenbitzer
Hallo zusammen,

ich habe das Problem gefunden, es ist die Feldlänge
Bei einer Länge von 127 Zeichen läuft es bei mir, nur wieso
In der Hilfe steht nichts davon und die maximale Feldlänge liegt ja bei 255 Zeichen.
Kann dies jemand bestätigen.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
06.06.2006  
 




Michael
Wodrich
Mußt Du ausloten. DBase hatte das so gelöst, das sie das Dezimalstellenfeld auch mit benutzt hatten. Ich weiß nicht mehr ob das Clipper spezifisch war oder für alle DBase-Derivate.

Besser ist es: 250 Zeichen Maximum und was größer ist wird in ein Memofeld gestopft.

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
07.06.2006  
 




Georg
Hovenbitzer
Hallo Michael,

250 Zeichen wären ja klasse, aber mehr als 127 geht nicht.
Ab einer Feldlänge von 128 bekomme ich, wenn ich dbindex benutze, eine Schutzverletzung.
Ohne dbindex klappt es mit der vollen Länge.
Es ist auch egal an welcher Stelle ich das dbindex einsetze, sobald dies gesetzt ist und man Daten in die DB schreibt kommt nach ein paar Datensätzen ein Fehler.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
07.06.2006  
 




RGH
Hallo,

die Schlüssellänge in einer Indexdatei (*.NDX) ist in der Tat vom dBase-III-Standard her auf 127 Zeichen begrenzt.
Das heißt: Wenn für den Index ein Feld herangezogen wird, darf dessen Feldlänge 127 Zeichen nicht überschreiten. Werden mehrere Felder für den Index herangezogen, darf die Summe der Feldlängen nichr größer als 127 sein.

Wenn man nun aber einen Index auf einem größeren Feld benötigt, so ist es gängige Praxis, als Matchcode ein weiteres Feld einzufügen, das in diesem Fall etwa nur die ersten 127 Zeichen des größeren Feldes enthält. Das dürfte für nahezu alle Zwecke ausreichend sein.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
07.06.2006  
 




Michael
Wodrich
Richtig, erinnere mich wieder.

Allerdings war es in DBase auch möglich den Index aus einem SubString zu bilden. Das vermisse ich leider in Profan.

Schöne Grüße
Michael Wodrich
 
Programmieren, das spannendste Detektivspiel der Welt.
09.06.2006  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

795 Betrachtungen

Unbenanntvor 0 min.
Pauli17.05.2013
Unbenannt18.02.2011

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