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

Auf dem Weg von Clipper, FoxPro u.ä. nach Xbase++

Moderator: Moderatoren

Antworten
Benutzeravatar
dtmackenzie
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Do, 22. Nov 2007 9:02
Wohnort: Leipzig
Hat sich bedankt: 66 Mal
Danksagung erhalten: 22 Mal
Kontaktdaten:

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

Beitrag 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
Zuletzt geändert von dtmackenzie am Di, 19. Mai 2009 11:14, insgesamt 2-mal geändert.
Viele Grüße,
David
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

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

Beitrag 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
Gruß
Hubert
Benutzeravatar
dtmackenzie
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Do, 22. Nov 2007 9:02
Wohnort: Leipzig
Hat sich bedankt: 66 Mal
Danksagung erhalten: 22 Mal
Kontaktdaten:

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

Beitrag 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
Viele Grüße,
David
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

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

Beitrag 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
: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.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

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

Beitrag 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.
Gruß
Hubert
Benutzeravatar
dtmackenzie
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Do, 22. Nov 2007 9:02
Wohnort: Leipzig
Hat sich bedankt: 66 Mal
Danksagung erhalten: 22 Mal
Kontaktdaten:

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

Beitrag 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


Zuletzt als neu markiert von dtmackenzie am Fr, 15. Mai 2009 9:37.
Viele Grüße,
David
Antworten