Seite 1 von 1

Feldnamenlänge

Verfasst: Fr, 25. Okt 2013 17:54
von Manfred
Ich habe gerade die Aufgabe zu schauen, ob ich DBF aus einer VFP Anwendung nutzen kann. Die Dbf läßt sich öffnen, aber wenn ich an die CDX gehe, dann stellt sich heraus, dass die Feldbezeichnungen länger als 10 Zeichen sein können. Da hapert es natürlich jetzt. Der DBF Editor öffnet zwar die DBF kappt aber die Feldnamen bei 10 Zeichen. Der Treiber für die Foxpro DBF scheint wohl irgendwie 9.x zu sein.

Sieht verdammt nach schlechten Karten aus?

Re: Feldnamenlänge

Verfasst: Fr, 25. Okt 2013 19:59
von brandelh
Hallo Manfred,

versuche doch mal mit dem ODBC Treiber die DBF zu öffnen, vielleicht hat M$ hier auch die Feldnamenlänge angepaßt ;-)

Ansonsten, solange du die Felder mit FieldGet() und FieldPut() ansprichst, spielt die Länge doch auch keine Rolle oder ?
Was gibt FieldName() zurück ?

Re: Feldnamenlänge

Verfasst: Fr, 25. Okt 2013 20:04
von Manfred
Hubert,

wie ich schon Eingangs erwähnte, der Index macht Probleme. Der hat doch die langen Feldnamen im Schlüssel stehen. Und die gibt es ja dann nicht mehr, wenn ich die DBF über Xbase aufmache.

Re: Feldnamenlänge

Verfasst: Sa, 26. Okt 2013 9:49
von georg
Hallo, Manfred -


Huberts Idee war, die Datei nicht per DBE, sondern entweder per ODBCDBE oder SQLExpress zu öffnen. In dem Fall wird der Index (wenn überhaupt) durch den ODBC-Treiber bedient.

Re: Feldnamenlänge

Verfasst: Sa, 26. Okt 2013 9:53
von Manfred
Nun,

die DBF usw. soll ja so gemeinsam genutzt werden. (Ich dachte das wäre verständlich gewesen) deswegen weiß ich nicht, ob ich solche Brücken dann überhaupt nutzen kann/sollte. Mir stellt sich aber hier wieder die Frage: Warum kann Foxpro das und Xbase++ nicht? Ich dachte 10stellig wäre generell eine Schranke. Das scheint aber dann wohl nicht so zu sein.

Re: Feldnamenlänge

Verfasst: Sa, 26. Okt 2013 11:06
von Lewi
Hallo Manfred,
es gab unter FoxPro 2.x so genante "freie Tabellen", bei denen die Feldbezeichnungen 128 Zeichen lang sein konnten. Mit der Version 2.6 (1996) wurde damit aufgeräumt, indem zwar Feldlängen bis 128 Zeichen unterstützt wurden, aber in der Tabelle selbst die Feldbezeichnung auf 10 Zeichen reduziert wurde.

Unter Visuell FoxPro (VFP) gab es immer schon eine Feldlängenbegrenzung von 10 Zeichen.
Du solltest auch der Frage nachgehen, um der Index nicht eine selbst definierte Funktion nutzt, die innerhalb der Laufzeitumgebung nicht zur Vergüng steht.

Viele Grüße
Olaf

Re: Feldnamenlänge

Verfasst: Sa, 26. Okt 2013 11:18
von Manfred
Ich habe mit dem Entwickler der anderen Software gesprochen und der teilte mir mit, dass er mehr als 10 Zeichen nutzen kann. Deshalb bin ich ja so verwundert, weil ich immer dachte es wäre generell bei 10 Zeichen Schluß.

Re: Feldnamenlänge

Verfasst: Sa, 26. Okt 2013 11:34
von Lewi
Schau Dir einfach mit einem Text-Editor die Index-Datei an. Die jeweilige Indizierungsvorschrift sollte eigentlich als Klartext im Index hinterlegt sein.

Re: Feldnamenlänge

Verfasst: Sa, 26. Okt 2013 12:11
von Manfred
Habe ich ja gemacht und da steht eine Feldbezeichnung länger 10 Zeichen drin. Und das ist lt. Entwickler die Feldbezeichnung der DBF.

Re: Feldnamenlänge

Verfasst: Sa, 26. Okt 2013 12:18
von brandelh
Hallo Manfred,

du willst das also nicht nur zum Daten importieren (das hatte ich gedacht) sondern im konkurierenden Zugriff ?

Einfache Antwort, Xbase++ kann das nicht, da hier die Feldnamen entsprechend der DBF / FOX Definition halt auf 10 Stellen begrenzt sind. BASTA ! :badgrin:

Über ODBC könntest du die Daten einwandfrei lesen (und wohl auch mit fieldget), aber beim Schreiben kannst du den fremden Index einfach nicht bedienen.
Da hilft kein Jammern und Wehklagen :D

Re: Feldnamenlänge

Verfasst: Sa, 26. Okt 2013 12:21
von Manfred
ICH will ja eigentlich nicht..... jedenfalls nicht, wenn es so gefährlich werden könnte. Wäre zwar schön gewesen, wenn es geklappt hätte.

Das war ja meine Befürchtung. Nur bevor ich sowas von mir gebe, frage ich nochmal nach. Kann ja sein, dass ich irgendwas übersehen habe. 8)

Re: Feldnamenlänge

Verfasst: Do, 28. Nov 2013 12:12
von Manfred
Und das ist die Info, die ich erhalten habe von Alaska zu diesem Thema
Hallo Manfred,

der FoxPro-Datenbank Container (DBC), dh. die Verwaltung von
Feld-Metainformationen zu diesem Zweck, wird bereits in der
Xbase++ 2.0-Version unterstützt. Mit anderen die “Nutzerseite”
von solchen Feldern funktioniert mit dieser Version. Das Erzeugen
von FoxPro-Datenbanken mit langen Feldnamen wird vermutlich
noch nicht mit der 2.0 möglich sein.

Die Länge der Feldnamen ist eine Eigenschaft der jeweiligen DBE.
Wir sprechen also gerade über die Kompatibilität mit bestehenden
(DBF-) Formaten, nicht über eine prinzipielle Beschränkung des
Systems an sich.