Sequenz-Feldtyp

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14659
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Sequenz-Feldtyp

Beitrag von Jan »

Hallo,

kennt jemand sich mit dem Feldtyp aus? Ich hab eigentlich hauptsächlich 2 Fragen dazu:

1) DbStruct() gibt eine Feldlänge von 4 zurück. Was ja nicht wirklich stimmen kann. Ich hab das mal bis 10.000.000 versucht, das funktioniert. Weiß jemand, wie hoch der Wert geschraubt werden kann (das ist allerdings eher theoretischer Natur, ich hab im Moment keinen Bedarf an so vielen Datensätzen 8) )?

2) Ich wollte das eigentlich deswegen einsetzen, um eine eindeutige Satz-ID zu erhalten. Wie sicher ist denn das im Netzwerk? Funktioniert das immer korrekt? Oder tauchen da eventuell irgendwelche Probleme auf, die ich abfangen müsste/könnte?

Jan
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21214
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Jan,

ich bin mir jetzt nicht sicher, ob ich Deine Frage verstanden habe, sie war etwas strubbelig, aber ich denke mal Du meinst die Feldbreite bei numerischen Feldern? 19 meine ich irgendwie im Kopf zu haben.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14659
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Manfred,

nein, den Sequenz-Feldtyp. Der hat beim Anlegen den Typ "S", man kann den Startwert und die Schrittweite angeben. Das ist ein reines RO-Feld, das bei jedem Append() automatisch gefüllt wird. Und nur unter FOXCDX funktioniert.

Jan
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21214
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Ja,

FOX. Sach datt doch ......
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15699
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 69 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,
JAN hat geschrieben:DbStruct() gibt eine Feldlänge von 4 zurück. Was ja nicht wirklich stimmen kann.
eine Sequenz ist nichts anderes als eine 32-Bit unsigned Integervariable (double word), die allerdings von der DBE verwaltet wird. Somit sind die 4 Byte schon richtig.

Der Wertebereich einer solchen liegt bei 0 to 4.294.967.295 ( 0 to 2^32-1).
JAN hat geschrieben:Ich wollte das eigentlich deswegen einsetzen, um eine eindeutige Satz-ID zu erhalten. Wie sicher ist denn das im Netzwerk? Funktioniert das immer korrekt? Oder tauchen da eventuell irgendwelche Probleme auf, die ich abfangen müsste/könnte?
Genau dafür wurde sie geschaffen. Mangels praktischer Erfahrung kann ich jetzt nicht bestätigen, dass sie immer fehlerfrei arbeitet, aber sicher ist es Alaska besser möglich das intern sicher zu stellen, als uns die wir dafür meist eigene Funktionen verwendet haben.

Eine Fehlerquelle ist sicherlich dass ja jeder Client-PC diese verwalten muss und somit mehrere Köche vorhanden sind. Bei einem Datenbankserver (PostgresSQL etc.) erledigt das ein interner Task auf dem Server, was zweifelsohne sicherer ist.

Such doch mal in der Alaska KB nach ob dort was zu der Funktion steht.
So ganz neu scheint mir dieser Datentyp nicht zu sein.

:wink:
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14659
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Hubert,

muß ich das so verstehen, daß das mit der eindeutigen Nummerierung im Netzwerk zwar gut funktioniert, aber nicht sehr gut?

Jan
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15699
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 69 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Beitrag von brandelh »

Jan hat geschrieben: Nummerierung im Netzwerk zwar gut funktioniert, aber nicht sehr gut?
Meine eigene Nummerierungsfunktion hat lokal und im Netz auf Windows Server 2000 (inkl.) immer gut funktioniert (go bottom, flock(), ID++, append blank etc. ...), war aber im Prinzip anfällig gegen Index- und Netzwerkfehler. Auch mit dem Cachen auf neueren Servern könnte es damit Probleme geben.

Der FoxPro Datentyp Sequenz muss sicherer sein als meine eigene Lösung, solange kein PDR in diese Richtung besteht (habe ich nicht geprüft). Aber vom Prinzip her besteht immer noch die Netzwerkproblematik.

Nur eine serverseitige Implementierung garantiert eine fehlerfreie Ausführung (solange der Server sauber arbeitet ;-) ) .

Für die Praxis bedeutet das, dass du mit diesem Feldtyp bestimmt die sicherste Option für DBF Dateien wählst.
Gruß
Hubert
Antworten