Seite 1 von 1

Neuanfang... Fehler von ALINK (ORDSETRELATION...) [ERLEDIGT]

Verfasst: Mo, 17. Nov 2008 14:17
von dtmackenzie
Hintergrund:
Die Firma für die ich arbeite nutzt als primär EDV-System eine Clipper-Anwendung die über die letzten zehn bis fünfzehn Jahren gewachsen ist (hauptsächlich vor meiner Zeit hier) und für die es keinerlei Spezifikationen gibt - deshalb ist ein halbwegs vollständiges Testen nur im Langzeitbetrieb möglich.
Ein Versuch, auf Xbase++ (GUI) mit ADS umzusteigen war fortgeschritten aber ist vorerst gescheitert (zu viele Fehler).
Inzwischen ist die Clipper-Anwendung nochmal erweitert worden - eigentlich sind die Nutzer zufrieden damit und wollen nicht unbedingt eine GUI, aber die Datensicherheit ist ein Thema.
Da die Firma schon Xbase++ und ADS für den früheren Versuch gekauft hat möchte ich wie folgt vorgehen -
1. Clipper-Code Xbase++-kompatibel machen (d.H. mit sowohl Clipper als auch Xbase compilierbar);
2. Probebetrieb Xbase++ in parallel mit Clipper auf existierender DBFs (DBFCDX mit FPTs) - voraussichtlich über mehreren Monaten hinweg bis Nutzer-Vertrauen aufgebaut wird (Code wird in der Zeit auch weiterentwickelt, deshalb ist gemeinsame Clipper/Xbase++ Codebasis pflicht);
3. Clipper-Code abschalten, Umstieg auf Xbase++ (immernoch Textmodus) mit ADS.
Danach erst könnten vielleicht evolutionäre Schritte Richtung Hybrid- oder GUI-Modus gemacht werden.

Problem:
Ich bin leider immernoch auf Schritt 1 - die Clipper-Anwendung geht durch den Compiler OK aber ALINK bemängelt standard Clipper-Funktionen (z.B. ORDSETRELATION) wie folgt - was kann ich dagagen tun? Ich bin natürlich dankbar für jede Hilfe...

Obj\ARTIKEL.obj: error ALK2102: unresolved external symbol ORDKEYDEL
Obj\ARTIKEL.obj: error ALK2102: unresolved external symbol ORDKEYGOTO
Obj\ARTIKEL.obj: error ALK2102: unresolved external symbol FIELD
Obj\BESTELL.obj: error ALK2102: unresolved external symbol DBRECORDINFO
Obj\FBK.obj: error ALK2102: unresolved external symbol DBORDERINFO
Obj\FBK.obj: error ALK2102: unresolved external symbol ORDSETRELATION
Obj\FUNC1.obj: error ALK2102: unresolved external symbol ORDKEYGOTO
Obj\HEDI.obj: error ALK2102: unresolved external symbol ORDKEYDEL
Obj\LK.obj: error ALK2102: unresolved external symbol FIELD
Obj\MATPRJ.obj: error ALK2102: unresolved external symbol ORDSETRELATION
Obj\MATPRJ.obj: error ALK2102: unresolved external symbol ORDKEYGOTO
Obj\MATPRJ.obj: error ALK2102: unresolved external symbol DBRECORDINFO
Obj\SIMA.obj: error ALK2102: unresolved external symbol DBFCDX
Obj\SIMA.obj: error ALK2102: unresolved external symbol OL_AUTOYIELD
Obj\SIMA.obj: error ALK2102: unresolved external symbol MENUMODAL
Obj\SIMA.obj: error ALK2102: unresolved external symbol TOPBAR
Obj\SIMA.obj: error ALK2102: unresolved external symbol POPUP
Obj\SIMA.obj: error ALK2102: unresolved external symbol MENUITEM
Obj\SLEDIT.obj: error ALK2102: unresolved external symbol ORDKEYDEL
Obj\LS.obj: error ALK2102: unresolved external symbol ORDSETRELATION
Obj\AUFTR.obj: error ALK2102: unresolved external symbol ORDSETRELATION
Obj\AUFTR.obj: error ALK2102: unresolved external symbol DBORDERINFO
Obj\MYBR.obj: error ALK2102: unresolved external symbol FIELD
Obj\DKONVERT.obj: error ALK2102: unresolved external symbol HAUPTFENSTER
Obj\DKONVERT.obj: error ALK2102: unresolved external symbol DC_CHDIR
Obj\DBESYS.obj: error ALK2102: unresolved external symbol DC_CURPATH
Obj\DBESYS.obj: error ALK2102: unresolved external symbol DC_INILOAD
Obj\DBESYS.obj: error ALK2102: unresolved external symbol DACSESSION
Obj\DBESYS.obj: error ALK2102: unresolved external symbol DC_WINALERT
Obj\DBESYS.obj: error ALK2102: unresolved external symbol AX_AXSLOCKING
ALINK: fatal error ALK4102: 30 external symbols unresolved

Re: Neuanfang... Fehler von ALINK (ORDSETRELATION u.s.w.)

Verfasst: Mo, 17. Nov 2008 14:42
von brandelh
Hi,

einige der Fehlermeldungen sind Funktionen, die es in Xbase++ und in Clipper nicht gibt, diese müssen über eine Zusatzbibliothek eingebunden worden sein (PRG verfügbar ? oder eventuell ADS ?)
z.B. ORDKEYDEL, ORDKEYGOTO

einige dürften daher kommen, dass unter Clipper manche Schlüsselworte nicht existiert haben oder die Verwendung als Variable zusätzlich unproblematisch war. Hierzu solltest du in der Referenz die "Hinweise für Clipperprogrammierer" lesen. Insbesondere Neue Funktionen und Unterschiede.
z.B. FIELD

andere Funktionen sind auf jeden Fall Xbase++ Funktionen, aber benötigen neben #include noch zusätzliche LIB Angaben beim Linken. Oder besser gleich die richtigen #pragma Anweisungen:
DACSESSION -> braucht -> #pragma library("ADAC20B.LIB") und eventuell #include "DAC.CH"
diese Info findet man z.B. im jeweiligen Beispiel oder unter INFO in der Hilfe zum jeweiligen Befehl.

Also mit einem Quellcodeeditior nach diesen Funktionen suchen und hoffen dass Quellcode zu finden ist. Alle Xbase++ Befehle die fehlen, benötigen LIB bzw. CH Informationen die man einbinden muss. Hier kann

Code: Alles auswählen

#ifdef __XPP__
   Xbase++ code
#else
   Clipper Code
#endif
helfen.

Aus meiner Sicht ist der gleichzeitige Zugriff von Xbase++ und Clipper (insbesondere mit Foxpro Einstellungen) eher ein Fehlergrund als eine Lösung. Wenn hier nicht alles sauber eingestellt ist ...

Zu den allgemeinen Hinweisen kann ich noch auf meinen Vortrag zur Devcon 2007 verweisen ... nicht viel, aber vielleicht nützlich :

http://www.xbaseforum.de/viewtopic.php?f=16&t=2294

Re: Neuanfang... Fehler von ALINK (ORDSETRELATION u.s.w.)

Verfasst: Mo, 17. Nov 2008 15:39
von dtmackenzie
Hallo Hubert,

herzlichen Dank für Deine ausführliche Antwort - auch für Deinen Vortrag bei der DEVCON 2007 (ich habe schon die gedruckte version in der Konferenzmappe). Einige meiner Fehler kommen davon, dass ich die DBESYS-Datei aus dem früher gescheiterten Versuch eingelinkt habe - diese enthält noch den Code für ADS was ich sowieso erstmal entfernen muss. Die "Hinweise für Clipperprogrammierer" habe ich schon durchgescannt - das mit "FIELD" habe ich übersehen. Ich werde diese Quellen im Laufe der Arbeit genauer lesen, aber was mich erstmal gestört und aufgehalten hat ist das ich nirgendswo Hinweise auf ORDKEYDEL, ORDKEYGOTO, ORDSETRELATION u.s.w. gefunden habe obwohl diese doch standard Clipper 5.3 Funktionen sind (z.B. Clipper 5.3 Referenzhandbuch Band 2, s. 2-739). Zur Not könnte ich diese Funktionen vielleicht nachprogrammieren (entweder mit #ifdef oder mit einer zusätzlicher PRG-Datei in der XPJ), aber bin ich wirklich der erste der dieses Problem gehabt hat?

Viele Grüße,
David

Re: Neuanfang... Fehler von ALINK (ORDSETRELATION u.s.w.)

Verfasst: Mo, 17. Nov 2008 15:44
von Martin Altmann
David,
Xbase++ ist nicht kompatibel zu Clipper 5.3, sondern zu Clipper 5.2!
Und da gab es diese Funktionen sicherlich nicht!

Viele Grüße,
Martin

Re: Neuanfang... Fehler von ALINK (ORDSETRELATION u.s.w.)

Verfasst: Mo, 17. Nov 2008 16:38
von brandelh
Hi,

ich persönlich bin nie auf 5.3 gewechselt, obwohl ich jetzt nicht mehr weiß was mich gestört hat ...
Wenn du aber im Handbuch eine Beschreibung der Funktionsweise findest, sollte sich das doch nachbauen lassen.

Re: Neuanfang... Fehler von ALINK (ORDSETRELATION u.s.w.)

Verfasst: Fr, 15. Mai 2009 9:37
von dtmackenzie
Danke Martin, Danke Hubert,

ich wußte nicht, dass Xbase++ nicht mit Clipper 5.3 kompatibel ist - also habe ich was gelernt und die Verunsicherung ist beseitigt.
Mir ist inzwischen eingefallen, dass Roger Donnays eXPress++ ähnliche Funktionen enthält - das erleichtert die Sache bestimmt.

Viele Grüße,
David