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 »

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: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Einlesen von MEMO Feldern

Beitrag von Tom »

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: 16501
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Einlesen von MEMO Feldern

Beitrag von Martin Altmann »

Ä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
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 »

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