Zugriff auf rowversion(ADT) mit DbUseArea (1.9) geht nicht

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

Moderator: Moderatoren

Antworten
MatthewRei
Rookie
Rookie
Beiträge: 5
Registriert: Do, 28. Mai 2015 16:42

Zugriff auf rowversion(ADT) mit DbUseArea (1.9) geht nicht

Beitrag von MatthewRei »

Hallo,

ein lange funktionierendes Programm verweigert die Nutzung seit dem in den Tabellen ein Feld mit Feldtyp rowversion existiert, mit DbUseArea().
Ich bekomme "Error 3015: Invalid field type.

Ich arbeite mit xbase++ 1.9SL1 und ADS 10.10 (adsdbe 1.9).

Nach mehreren Versuchen stelle ich mir (und euch) die Frage? Geht das überhaupt? Oder muss ich mein Programm umschreiben?

Matthew
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Zugriff auf rowversion(ADT) mit DbUseArea (1.9) geht nic

Beitrag von nightcrawler »

Prüfe mal die ADS-DLLS, ob die auch aktuell sind (axcws32.dll, ace32.dll, adsloc32.dll).
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
MatthewRei
Rookie
Rookie
Beiträge: 5
Registriert: Do, 28. Mai 2015 16:42

Re: Zugriff auf rowversion(ADT) mit DbUseArea (1.9) geht nic

Beitrag von MatthewRei »

ACE32.DLL Version 7.0.0.2
AXCWS32.DLL Version 7.0.0.0
Ich bin immer nach der ADSDBE.DLL (Version 1.90.331.0) gegangen.
Weil im Programm habe ich
#include "adsdbe.ch"
#include "ads.ch"
included.
Gibt es hier aktuelle?
Also muss es gehen. Ich hatte nach 4 Tagen Fehlersuche meine Zweifel das es überhaupt geht.
MatthewRei
Rookie
Rookie
Beiträge: 5
Registriert: Do, 28. Mai 2015 16:42

Re: Zugriff auf rowversion(ADT) mit DbUseArea (1.9) geht nic

Beitrag von MatthewRei »

Ich habe die DLLs 2x
Einmal in meiner xbase Entwicklungsumgebung und dann noch in meinem ADS Home. Die haben natürlich die Version 10....
Jetzt muss ich schauen das mein Compiler die richtigen DLLs verwendet.
Es geht wieder voran :-)
Oder?
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: Zugriff auf rowversion(ADT) mit DbUseArea (1.9) geht nic

Beitrag von Tom »

Hallo, Matthew.

Die Client-DLLs sollten zur ADS-Version passen. Nach meinen Erfahrungen sind ADSDBE und ADS gutmütig, also abwärtskompatibel, andererseits sollte man keine neueren Clients (ACE32, AXCWS32) mit älteren ADS-Versionen einsetzen. Wenn man viele Installationen draußen hat und Kunden unterschiedliche ADS-Versionen einsetzen, ist das eine Fehlerquelle. Wir liefern deshalb mit Updates keine Client-DLLs aus.

Ich weiß nicht, ob das in der ADSDBE für 2.0 behoben ist, aber wenn man die ADS 11 einsetzt, sollte man (mit Xbase++ 1.9) die 10.1er-Clients verwenden.
Herzlich,
Tom
MatthewRei
Rookie
Rookie
Beiträge: 5
Registriert: Do, 28. Mai 2015 16:42

Re: Zugriff auf rowversion(ADT) mit DbUseArea (1.9) geht nic

Beitrag von MatthewRei »

Hallo,

DANKE erst mal für die Tipps. Das mit den DLLs ist der richtige weg.
Ich habe die ace32.dll und die axcws32.dll aus dem ADS-Home von Sybase in meine Entwicklungsumgebung von xbase kopiert und der Fehler ist weg.
Dafür taucht ein neuer auf. Beim Schließen der DBSession bekomme ich ein "Interne Datenstrukturen beschädigt"
Ich denke jetzt ist der zweite Hinweis hilfreich mit den passenden DLLs.
Nun kann ich aber erst einmal kontrollieren ob der Rest vom Programm noch sauber arbeitet.
Vielen Dank bis hier hin.

Matthew
MatthewRei
Rookie
Rookie
Beiträge: 5
Registriert: Do, 28. Mai 2015 16:42

Re: Zugriff auf rowversion(ADT) mit DbUseArea (1.9) geht nic

Beitrag von MatthewRei »

Hallo,

danke nochmal für die Tipps. Mein Problem konnte ich vollständig lösen. Der Vollständigkeit halber noch der Hinweis das mein DbCloseAll() nicht mehr ausreichte und ich bei Programmende die Meldung "Interne Datenstrukturen beschädigt" bekam. Ich habe aus dem entsprechenden Thread den Hinweis auf die "C:\ALASKA\XPPW32\SOURCE\SYS\AppExit.prg" entnommen und mein Programmende angepasst.

Matthew
Antworten