Das nächste Entwicklertreffen findet Anfang Mai in Münster statt - weitere Infos bzw. zur Anmeldung!

Einlesen von MEMO Feldern

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

Moderator: Moderatoren

Antworten
sheepard
Rookie
Rookie
Beiträge: 2
Registriert: Fr, 29. Mär 2019 13:40

Einlesen von MEMO Feldern

Beitrag von sheepard » Fr, 29. Mär 2019 14:03

Hallo, ich habe folgendes Problem,

Aufgabe
ich muss mit meiner Anwendung eine dBase-Tabelle im Format CDX einlesen,
in dieser befindet sich ein Feld namens SUGR, dieses ist ein Pointer in ein BLOB-Feld(wird in der dbf nicht angezeigt sondern, steht laut hex Editor in einer FPT Datei).

Umsetzung
Der Pointer enthält dann ein Array was Ich anzeigen lassen muss (dieses enthält einen text).
Das ganze setze ich so um, das ich ein XbpBrowse erstelle und dort die Datenbank mit USE öffne und dann nach dem Beispiel von xbase (dbbrowse) die Tabelle aufliste. Dann kann ich rechtscklick auf den header machen und der Name dieses wird als string an meine Read Data funktion übergeben.
Jetzt soll sich dann ein Fenster öffnen in dem mir das Array des MEMO Feldes angezeigt wird.

Code

Code: Alles auswählen

PROCEDURE readData(nColName)
	LOCAL feld, data, file
	LOCAL memodata := {}
	feld := FieldName(nColName)
	
	USE datenbank VIA "FOXDBE" 
	
	data := Bin2Var( datenbank -> feld )
   	IF data != NIL
   		MsgBox("verbindung geht")
   	ENDIF
   	
   	FOR i := 1 TO len(data)
   		AAdd(memodata, i)
  	NEXT
	
RETURN
Problem
Ich habe es versucht umzusetzen aber bekomme bevor ich überhaupt in die For Schleife komme schon einen Fehler:
Error BASE/8027
Description: Unknown symbol for database field
Operation: field
THREAD ID: 1

Edit: Rechtschreibfehler behoben.

Ich hoffe Ihr könnt mir helfen, grüße Nils
Zuletzt geändert von sheepard am Fr, 29. Mär 2019 15:56, insgesamt 2-mal geändert.

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7527
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Einlesen von MEMO Feldern

Beitrag von Tom » Fr, 29. Mär 2019 14:47

Der Alias "KVSPEZ" ist nicht vergeben. Der Feldname müsste via Makro oder FieldPos() aufgelöst werden. Einfacher aber geht's so:

Code: Alles auswählen

Data := FieldGet(nColName)
Herzlich,
Tom

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 14840
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Re: Einlesen von MEMO Feldern

Beitrag von Martin Altmann » Fr, 29. Mär 2019 14:55

Äh Tom: Brille :-)
Nils,
Deine Variable heißt feld (ohne i), nutzen hinter dem Alias tust du aber field (mit i). Nimm da mal das i weg.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

sheepard
Rookie
Rookie
Beiträge: 2
Registriert: Fr, 29. Mär 2019 13:40

Re: Einlesen von MEMO Feldern

Beitrag von sheepard » Fr, 29. Mär 2019 15:58

Waren beides Rechtschreibfehler von mir, hab beides behoben.
KVSPEZ = datenbank

Habe auch den Unknown Symbol Fehler behoben bekommen, jedoch habe ich immer noch das Problem, dass ich nicht weiß wie ich den Pointer der in meinem "feld" steht auf mein Memo Feld in meiner FPT Datei zeigen lassen soll.
Da ich ja im Endeffekt anhand dieses Pointers mir die Daten aus dem MEMO Feld holen muss.

Antworten