Umstieg DBF/NTX auf ADS/CDX

Advantage Database Server

Moderator: Moderatoren

volkrrr
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 43
Registriert: Mo, 20. Feb 2006 16:17

Umstieg DBF/NTX auf ADS/CDX

Beitrag von volkrrr »

Hallo zusammen,
ich muss eine Anwendung von DBFs mit NTX-Dateien auf ADS mit CDX umstellen. Ohne CDX kann ich ja die SQL-Eigenschaften von ADS nicht nutzen. Was muss ich da genau machen? Bisher ist alles so einfach:

Code: Alles auswählen

use Adressen
index on upper(Name) to adnam
set index to adnam
und fertig.

In einem kleinen Testprogramm steht die Verbindung zum ADS Server steht, die Adressen-DBF kann ich öffnen und skippen.
Was ist jetzt zu tun?
DelUser01

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von DelUser01 »

Hallo "volkrrr"

Dein Anliegen zwingt mich geradezu zu einem (unqualifizierten) Kommentar:
...von NTX auf CDX mit ADS und SQL..
'ne ganze Mange Zeugs was Du da gleich reinpackst.
Vom Forum am besten gleich eine funktionierende Kompaktlösung, und am liebsten dreizeilig - wie im Beispiel...
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von Jan »

Hallo Volker,

das ist alles nicht ganz so trivial.

Erstens: Umstieg auf FOXCDX. Eine grundsätzlich sehr sinnvolle Sache, selbst wenn Du nicht auf ADS umrüsten willst. Problem: Du erstellst nicht mehr mehrere Indexdateien mit dem jeweiligen Namen, sondern einen Index (vorzugsweise mit dem Namen der dbf, meine persönliche Meinung dazu), in dem die Indizee mit ihrem jewiligen Namen untergebracht sind. Das erfordert beim Indexerstellen eine kleine Änderung. Beim Zugriff auf den Index kann alles bleiben wie es ist. Obwohl ich von Deiner alten Syntax auf die aktuellen Fuktionen dazu umsteigen würde, aber auch das ist meine persönliche Meinung.

Beim Umstieg auf FOXCDX mußt Du eventuell eine Konvertierung der dbf vornehmen. DBFNTX ist ASCII, in FOXCDX kannst Du wählen ob Du ASCI oder ANSI nehmen willst. Ich würde hier dringend zum Umstieg auf ANSI raten.

Für all das mußt Du natürlich Deine dbesys anpassen ...

Wenn das alles sauber läuft mußt Du die dbf in den ADS rüber schieben. Ansich kein Problem. Du mußt aber den ADS sauber installieren, und in Deinem Programm die Verbidung herstellen. Das hört sich total einfach an, kann aber auch so seine Tücken haben, wie manche Diskussion hier im Forum zeigt. Auch hier mußt Du nochmals Deine dbesys anpassen ...

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied 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: Umstieg DBF/NTX auf ADS/CDX

Beitrag von brandelh »

Jan hat geschrieben:Problem: Du erstellst nicht mehr mehrere Indexdateien mit dem jeweiligen Namen, sondern einen Index (vorzugsweise mit dem Namen der dbf, meine persönliche Meinung dazu), in dem die Indizee mit ihrem jewiligen Namen untergebracht sind. Das erfordert beim Indexerstellen eine kleine Änderung.
das KANN man machen und es erleichtert die Verwaltung der Indexe, da die DBF und die CDX mit gleichem Namen möglich sind.
Man kann aber auch wie bisher mehrere CDX Dateien haben, das habe ich in einem Fall gemacht, weil es schnell gehen musste und ich nicht viel ändern wollte,
Dann muss man natürlich nach "NTX" suchen und auf OrdBagExt() ändern, was ich meist verwende ... natürlich geht das nur für den "Standardindex".

Beachten muss man, dass die Indexsuche bei CDX unabhängig von Groß-/Kleinschreibung ist, UPPER()/LOWER() in Such und Indexbegriff ist also nicht mehr nötig.
Man kann aber auch nicht mehr zwischen kleinen und großen Einträgen unterscheiden, für die CDX sind beide gleich.

Ob die Datei ANSI oder OEM speichern soll muss man sich überlegen, solange nur die Anwendung darauf zugreift spricht nichts gegen ANSI.
Allerdings kann man das nicht einfach mal so entscheiden, es kommt auf die Einstellung von SET CHARSET bei der Erstellung der (FOX)DBF an.

Zu der ADS kann ich nichts sagen.
Gruß
Hubert
volkrrr
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 43
Registriert: Mo, 20. Feb 2006 16:17

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von volkrrr »

@ Roland: Dein Kommentar bringt mich nicht wirklich weiter ;-) Wie ich geschrieben habe, ist die Basis bei ADS gelegt. Das könnte so klappen, wie ich es in meinem Test aufgebaut habe. Der Hinweis DBF/NTX nach ADS/CDX sollte nur klar machen, welches Ziel ich mit CDX verfolge...
@ Jan: Hi Jan, eine Konvertierung in ANSI schaffe ich, das wird kein Prob sein. Würde eine CDX nehmen, wie Du vorschlägst. Die Datenbanken in ADS einlagern und zur Verfügung stellen, klappt auch so weit. Mit NTX kann ich auch arbeiten, mir fehlt aber dann die SQL-Option. Deswegen kam ich auf CDX und bitte deswegen um ein paar Tipps oder Beispiele.
Möchte meine Frage genauer stellen:
Mit obigem Ziel, wie genau muss die DBESYS eingestellt werden und wie erzeuge ich die CDX. Da ich lesen kann würde mir ein Hinweis auf eine Doku reichen, wenn natürlich einer ein paar Zeilen Quelltext als Bsp. hat, ...
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von Jan »

Volker,

CDX hat unter ADS einen weiteren Vorteil: NTXe sind in der Anzahl je dbf begrenzt. CDX nicht. Jedenfalls nicht, wenn die als Tags in einer einzelnen CDX untergebracht sind, den Weg von Hubert bin ich noch nie gegangen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
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: Umstieg DBF/NTX auf ADS/CDX

Beitrag von Tom »

Beachten muss man, dass die Indexsuche bei CDX unabhängig von Groß-/Kleinschreibung ist,
Auch das lässt sich beeinflussen.
Herzlich,
Tom
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: Umstieg DBF/NTX auf ADS/CDX

Beitrag von brandelh »

Tom hat geschrieben:
Beachten muss man, dass die Indexsuche bei CDX unabhängig von Groß-/Kleinschreibung ist,
Auch das lässt sich beeinflussen.
wie ?
Gruß
Hubert
Benutzeravatar
Friedhelm
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 46
Registriert: Sa, 08. Apr 2006 17:20
Wohnort: Leverkusen
Kontaktdaten:

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von Friedhelm »

In der Client Engine (ACE) von ADS gibt es eine DLL-Funktion, mit der man die internen Tabellenformate konvertieren kann:

AdsConvertTable( <hObj>, <usFilterOption>, <pucFile>, <usTableType> )
<hObj> => Handle auf eine bereits geöffnete Datei (z.B. DBFNTX) siehe auch AX_GetTablehandle() aus der ADSDBE
<usFilterOption> => 0=ignoreFilters; 1=respectFilters
<pucFile> => Dateiname der zu konvertierenden Datei
<usTableType> => Typ nach dem konvertiert werden soll: 1=nach dbfNTX; 2=nach dbfCDX; 3=nach ADT

Diese DLL-Funktion ist in der Datei "ACE32.DLL" enthalten:

Code: Alles auswählen

USE MyNtxTable NEW VIA "ADSDBE"
hTbl := AX_GetTableHandle()
cNewFile := "MyCdxTable"
lOK := DLLCall("ACE32.DLL",DLL_STDCALL,"AdsConvertTable, hTbl, 0, @cNewFile, 2) == 0
Gruß Friedhelm
volkrrr
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 43
Registriert: Mo, 20. Feb 2006 16:17

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von volkrrr »

Hallo zusammen,
ich muss mich nochmals zu dem Thema melden. Ich habe meine gesamte Anwendung nun auf ADS umgestellt. Läuft alles stabil. Bleibt mir nur noch der Umstieg auf CDX (bin noch auf NTX).
Ich habe folgende Zeilen verändert:

Code: Alles auswählen

   LOCAL cConnect := "DBE=ADSCDX;SERVER=\\TC-WorkSvr\c\ADS\TC-Adress"

    IF ! DbeLoad( "ADSDBE" )
       confirmbox(,"Unable to load ADSDBE")
       quit
    ELSE
       confirmbox(, "Loaded")
    ENDIF
    IF ! DbeLoad( "CDXDBE",.T.)
       msgbox("Database engine CDXDBE not loaded")
    ENDIF
    IF ! DbeBuild( "ADSCDX", "ADSDBE", "CDXDBE" )
        msgbox("ADSCDX database engine could not be created")
    ENDIF

   DbeInfo( COMPONENT_DATA , ADSDBE_TBL_MODE, ADSDBE_CDX )
   DbeInfo( COMPONENT_ORDER, ADSDBE_TBL_MODE, ADSDBE_CDX )

   DbeSetDefault( "ADSCDX" )
   oSession := DacSession():New( cConnect )
Durchläuft das Programm diese Programmzeilen, bleibt es bei DacSession():New mit dem Fehler: "Operation wird durch DBE nicht unterstützt" Operation: dacConnect hängen.
Hat einer eine Idee, was ich da falsch mache?
Ändere ich den Connectstring in cConnect := "DBE=ADSDBE;SERVER=\\TC-WorkSvr\c\ADS\TC-Adress", also das DBE=ADSCDX in ADSDBE, dann klappt der Connect, allerdings bleibt dann das Programm mit einem Fehler hängen, den ich überhaupt nicht deuten kann (s.u.). Adressen.dbf ist natürlich im ADS als CDX aufgenommen.
XPPERROR.LOG
oError:args :
-> VALTYPE: L VALUE: .T.
-> VALTYPE: U VALUE: NIL
-> VALTYPE: C VALUE: \\TC-WorkSvr\c\ADS\TC-Adress\adressen.dbf
-> VALTYPE: U VALUE: NIL
-> VALTYPE: L VALUE: .F.
-> VALTYPE: L VALUE: .F.
oError:canDefault : J
oError:canRetry : J
oError:canSubstitute: N
oError:cargo : NIL
oError:description : Datei kann nicht erzeugt werden
oError:filename :
oError:genCode : 70
oError:operation : DbUseArea
oError:osCode : 0
oError:severity : 2
oError:subCode : 8018
oError:subSystem : BASE
oError:thread : 1
oError:tries : 1
Über einen Tipp würde ich mich freuen..
Schönes WE
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von Wolfgang Ciriack »

Hallo,
bin gerade dabei, den ADS zu testen.
Aus "historischen" Gründen benutze ich in meinem Programm CDX mit DBT-Dateien (vermutlich vor 12 Jahren wg. der Unterscheidung in Indexen auf Groß-/Kleinschreibung), das wird scheinbar von ADS nicht unterstützt, will bei ADS_TBL_MODE=ADSDBE_CDX immer FTP-Dateien öffnen.
Hier meine bisherigen Datenbankeinstellungen:

Code: Alles auswählen

IF DbeBuild( "DBFCDX", "DBFDBE", "CDXDBE" )
  DbeSetDefault("DBFCDX")
  DbeInfo(COMPONENT_ORDER,CDXDBE_LOCKRETRY,20000000)
  DbeInfo(COMPONENT_ORDER,CDXDBE_LOCKDELAY,10)
  DbeInfo( COMPONENT_ORDER, CDXDBE_MODE, CDXDBE_COMIX )
  DbeInfo(COMPONENT_ORDER, DBE_LOCKMODE, LOCKING_EXTENDED)
  DbeInfo(COMPONENT_ORDER, CDXDBE_LIFETIME, 0)
Kann man das irgenwie beeinflussen, was der ADS nimmt ?
Oder wie sollte man umstellen, so dass man wahlweise ADS/CDX benutzen kann ?
FOXDBE ? Was muss man beachten ? Evtl. Probleme danach bei Memodateien oder bei Indexsuchen ?
Für Anregungen/Hilfen wäre ich sehr dankbar.
Viele Grüße
Wolfgang
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von UliTs »

Hallo Wolfgang,

am Besten versuchst Du zunächst, ob Du Deine Tabellen mit CDX-Index mit Hilfe des Data Architecten (ARC) öffnen kannst. Dann bist Du Dir schon einmal sicher, dass es grundsätzlich geht.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
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: Umstieg DBF/NTX auf ADS/CDX

Beitrag von nightcrawler »

Wolfgang Ciriack hat geschrieben:Kann man das irgenwie beeinflussen, was der ADS nimmt?
Nein, ADS nimmt immer die Standard-Index- und Memodateien:
ADT/ADI/ADM
DBF/CDX/FPT
DBF/NTX/DBT
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von Wolfgang Ciriack »

Ok, dann werde ich meine Datenbanken mal nach Fox umsetzen.
Viele Grüße
Wolfgang
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von UliTs »

Wolfgang Ciriack hat geschrieben:Ok, dann werde ich meine Datenbanken mal nach Fox umsetzen.
Ich wuerde mit dem ADS DBF/Cdx oder ADT/Adi einsetzen.
Was fuer einen Sinn hattest Du bei einer Kombination ADT/Cdx gesehen?
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von Wolfgang Ciriack »

Hallo Uli,
von ADT/CDX hatte ich nichts geschrieben (ADS/CDX).
Meine Annahme war, ich könnte mit meiner Kombination von DBF,DBT,CDX einfach auf den ADS mit CDX umsteigen.
Viele Grüße
Wolfgang
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von UliTs »

Hallo Wolfgang,

danke für die Info.
Im allerersten Beitrag hattest Du von "DBFs mit NTX-Dateien auf ADS mit CDX umstellen" gesprochen. Da macht es ja sowieso Sinn auch DBF/DBT/NTX auf DBF/FPT/CDX umzustellen.

"Ohne CDX kann ich ja die SQL-Eigenschaften von ADS nicht nutzen." Das ist nicht ganz richtig: zusammen mit einem Data Dictionary kann man auch bei NTX-Indizes die SQL-Eigenschaften nutzen, obwohl dies offiziell nicht unterstützt wird (würde ich deshalb auch nicht machen).

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von Jan »

Ich bin bei meinem Kunden auf FOXCDX umgestiegen, weil der ADS nicht mehr als 20 ntx je dbf unterstützt. Mehr als 20 Tags in einer cdx aber sehr wohl. Und da die mehrere dbf mit teilweise bis zu 24 Indizee haben ... Was mir nur zugute kam, ich wollte ohnehin FOXCDX haben, weil ich das stabiler und wesentlich praktischer finde.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von Wolfgang Ciriack »

Ja, CDX mit mehreren Tags habe ich ja auch, wobei ich wie empfohlen, maximal 5 tags pro Indexdatei benutze.
Mein Problem ist/war ja nur die Kombination DBF/DBT/CDX.
@Jan,
benutzt du foxspezifische Einstellungen in deiner FOXCDX ?
Viele Grüße
Wolfgang
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von Jan »

Hallo Wolfgang,

in meinen eigenen Projekten benenne ich manchmal die Dateiendungen um. Und natürlich nutze ich LockingExtended.

Für einen Kunden lauten die Einstellungen so (übernommen von einem Co-Entwickler):

Code: Alles auswählen

DbeInfo(COMPONENT_DATA, DBFDBE_LIFETIME, 0)                                                        // Verweildauer von Records im lokalen Cache
DbeInfo(COMPONENT_ORDER, DBE_LOCKMODE, LOCKING_EXTENDED)                       

DbeInfo(COMPONENT_DATA, FOXDBE_LIFETIME, 0)                                                        // Verweildauer von Records im lokalen Cache
DbeInfo(COMPONENT_ORDER, FOXDBE_LOCKMODE, LOCKING_EXTENDED)                      
//DbeInfo(COMPONENT_DATA, DBFDBE_ANSI, .T.)
Die Lifetime-Einstellungen wegen Netzwerk.

Wieso nur 5 Tags je Index? Da hab ich mich noch nie drauf beschränkt. Und auch noch nie Probleme mit gehabt. Ich mach mir das immer enifach - der Index heißt wie die dbf. Dann steht im Explorer immer alles schön beisammen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von Wolfgang Ciriack »

Hallo Jan,
nein Probleme sollte das mit mehr Tags nicht geben, es ist nur eine Empfehlung für Performance-Steigerung.
Ich habe das vor Urzeiten mal aus dem Alaska-Forum, jetzt habe ich es nochmal im ADS Helpfile gelesen.
Lies dazu mal im ADS-Server help file den Abschnitt "Generell Performance Factors", daraus wir das ganz gut klar.

Danke für die Einstellungen, das sind ja die, die ich auch für die DBFCDX genommen habe.
Viele Grüße
Wolfgang
volkrrr
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 43
Registriert: Mo, 20. Feb 2006 16:17

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von volkrrr »

Hallo,
ich möchte diesen Vorgang nochmals aufleben lassen. Obige Infos haben mir nur bedingt geholfen und ich habe das Ganze zurückgestellt. Jetzt muss ich mich wieder diesem Problem widmen. Oben stand:
UliTs hat geschrieben:Hallo Wolfgang,

danke für die Info.
Im allerersten Beitrag hattest Du von "DBFs mit NTX-Dateien auf ADS mit CDX umstellen" gesprochen. Da macht es ja sowieso Sinn auch DBF/DBT/NTX auf DBF/FPT/CDX umzustellen.

"Ohne CDX kann ich ja die SQL-Eigenschaften von ADS nicht nutzen." Das ist nicht ganz richtig: zusammen mit einem Data Dictionary kann man auch bei NTX-Indizes die SQL-Eigenschaften nutzen, obwohl dies offiziell nicht unterstützt wird (würde ich deshalb auch nicht machen).

Uli
Das habe ich gemacht: Ich bin mit den DBF auf Foxpro umgestiegen, kann aus dem Quelltext CDX erzeugen (mit mehreren Suchmgl.). Das alles ohne ADS. Jetzt habe ich die FoxPro - Datenbank ins ADS kopiert und mit dem Architeckt 11.00.0 geöffnet, klappt. SQL abgesetzt klappt auch. Jetzt will ich mit dem XBase - Programm auf die Datenbank zugreifen und das klappt nicht. Vermutlich baue ich die DBE falsch zusammen oder mir fehlt eine Einstellung. Meine sieht so aus:

Code: Alles auswählen

IF ! DbeLoad( "ADSDBE" )
         confirmbox(,"Unable to load ADSDBE")
         quit
      ENDIF

      IF ! DbeLoad( "CDXDBE", .t.)
         Alert( "CDXDBE" + MSG_DBE_NOT_LOADED , {"OK"} )
      ENDIF

      IF ! DbeBuild( "ADSDBE_CDX","ADSDBE","CDXDBE"  )
         Alert( "ADSDBE_CDX" + MSG_DBE_NOT_CREATED , {"OK"} )
      ENDIF
   SET DEFAULT TO "\\192.168.0.12\c\ADS\Adressen"
   public oSession := DacSession():New( "DBE=ADSDBE;SERVER=\\192.168.0.12\c\ADS\Adressen" )
   IF .NOT. oSession:isConnected()
       Confirmbox(,"Unable to establish connection to ADS (1)"+str(oSession:getLastError()))
       QUIT
   ELSE
      Confirmbox(,"Connected to ADS")
   ENDIF
   DbeSetDefault("ADSDBE_CDX")
   DbeInfo( COMPONENT_DATA , ADSDBE_TBL_MODE, ADSDBE_CDX )
   DbeInfo( COMPONENT_ORDER, ADSDBE_TBL_MODE, ADSDBE_CDX )
öffne ich die Datenbank jetzt mit use adressen exclusive kommt ein Fehler:
oError:args :
-> VALTYPE: L VALUE: .T.
-> VALTYPE: U VALUE: NIL
-> VALTYPE: C VALUE: adressen
-> VALTYPE: C VALUE: ADR
-> VALTYPE: L VALUE: .F.
oError:canDefault : J
oError:canRetry : J
oError:canSubstitute: N
oError:cargo : NIL
oError:description : Datei kann nicht erzeugt werden
oError:filename :
oError:genCode : 70
oError:operation : DbUseArea
oError:osCode : 0
oError:severity : 2
oError:subCode : 8018
oError:subSystem : BASE
oError:thread : 1
oError:tries : 1
Hat einer einen Tipp??? Herzlichen Dank
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von UliTs »

Hallo Volker,

kannst Du mal den Befehl mit

Code: Alles auswählen

DbUseArea( ... )
angeben, wie Du ihn verwendest?

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
volkrrr
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 43
Registriert: Mo, 20. Feb 2006 16:17

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von volkrrr »

Ich habe folgendes versucht:
DbUseArea(.t.,,"Adressen","ADR",.T.)
Dann kommt der Fehler mit "Datei kann nicht erzeugt werden"
DbUseArea(.t.,"ADSDBE_CDX","Adressen","ADR",.T.)
Genau das selbe... läuft ebenfalls in den Fehler
DbUseArea(.t.,"ADSDBE","Adressen","ADR",.T.)
Klappt, möchte ich dann die Adressen.cdx öffnen
OrdListAdd("Adressen","NAME")
sucht er eine Adressen.ntx, das soll es ja nicht sein :(
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Umstieg DBF/NTX auf ADS/CDX

Beitrag von Wolfgang Ciriack »

Bist du sicher, das du deine Adressen.dbf auf FOXDBE umgestellt hast ?
Kannst du sie mit DbUseArea(.T.,"FOXCDX",... öffnen ?
Der ADS nutzt
DBF/CDX/FPT
DBF/NTX/DBT
Viele Grüße
Wolfgang
Antworten