ADSDBE Konfiguration

Advantage Database Server

Moderator: Moderatoren

Antworten
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:

ADSDBE Konfiguration

Beitrag von Jan »

Moin,

an anderer Stelle hatte ich mal geschildert, das ich die dbesys falsch aufgebaut hatte. Ich hatte die ADSDBE geladen, konfiguriert, und dann als default gesetzt. Till hatte mich darauf aufmerksam gemacht das ich die aber erst konfigurieren darf nachdem ich die zum default gesetzt habe.

Jetzt bin ich mal am rumtesten wie ich das mit möglichst wenig Aufwand gerade gebogen bekomme. Der ganze ADS-Part sieht so aus:

Code: Alles auswählen

// ADS-Server
IF .NOT. Dbeload("ADSDBE", .F.)
   Alert("ADSDBE konnte nicht geladen werden!")
ENDIF
DbeInfo(COMPONENT_DATA , ADSDBE_LOCK_MODE         , ADSDBE_PROPRIETARY_LOCKING)                    // dbf nur über ADS bearbeitbar
DbeInfo(COMPONENT_DATA , ADSDBE_TBL_MODE          , ADSDBE_CDX)
DbeInfo(COMPONENT_ORDER, ADSDBE_TBL_MODE          , ADSDBE_CDX)
DbeInfo(COMPONENT_DATA , ADSDBE_RIGHTS_MODE       , ADSDBE_IGNORERIGHTS)
DbeInfo(COMPONENT_DATA , ADSDBE_TABLENAME_IS_ALIAS, .T.)
DbeInfo(COMPONENT_ORDER, ADSDBE_INDEX_EXT         ,"CDX")

// Standard-Datenbanktreiber setzen
DbeSetDefault("ADSDBE")

Schiebe ich die DbeSetDefault-Zeile an den korrekten Platz, läuft das Programm nicht mehr. Weil der Alias der zu öffnenden Tabellen unbekannt ist.

Schiebe ich die DbeSetDefault-Zeile an den korrekten Platz, und kommentiere die ADSDBE_TABLENAME_IS_ALIAS-Zeile aus, klappt anscheinend alles einwandfrei. Bislang. Scheint auch logisch, da die in der alten Version ja ohnehin nicht in die Konfiguration eingebunden war.

Da stellen sich mir jetzt zwei Fragen:
1) Läuft das wirklich stabil? Immerhin sind die Daten ja alle im alten Modus erstellt worden, und jetzt greife ich im korrekten Modus darauf zu.
2) Welche Auswirkungen hat das ADSDBE_TABLENAME_IS_ALIAS? Standard ist ja .F. Aber ich hatte das auf .T. gesetzt. Auf Empfehlung, ohne wirklich zu wissen (oder mich heute zu erinnern) was genau das jetzt macht.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
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: ADSDBE Konfiguration

Beitrag von UliTs »

Jan hat geschrieben: Mi, 22. Mär 2023 11:17 ...
2) Welche Auswirkungen hat das ADSDBE_TABLENAME_IS_ALIAS? Standard ist ja .F. Aber ich hatte das auf .T. gesetzt. Auf Empfehlung, ohne wirklich zu wissen (oder mich heute zu erinnern) was genau das jetzt macht.
Bei .T. wird Alias() sicher den Tabellennamen zurückgeben, oder? Was gibt Alias() bei .F. zurück?
-
Ich habe nie mit dem Alias gearbeitet sondern stattdessen mit Select() .
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
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: ADSDBE Konfiguration

Beitrag von Tom »

Die Einstellung verhindert schlicht, dass man Aliase selbst vergeben kann. USE KUNDEN ALIAS KD hätte mit .T. keine Wirkung; der Alias wäre trotzdem "KUNDEN". Bei .F. wäre er "KD". Ohne Alias-Angabe ist das Verhalten dasselbe wie bei anderen DBEs; der Name der Tabelle wird sowieso zum Alias. Mit der Workarea-Nummer (Select) hat das nix zu tun.
Herzlich,
Tom
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: ADSDBE Konfiguration

Beitrag von UliTs »

Tom hat geschrieben: Mi, 22. Mär 2023 11:56 Mit der Workarea-Nummer (Select) hat das nix zu tun.
Die Workarea-Nummer ist doch nur eine andere Art, wie man auf die Tabellen zugreifen kann. Und ich finde, es ist viel besser, wenn man in der Form (nSelect)->... auf Tabellen zugreift.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
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: ADSDBE Konfiguration

Beitrag von Tom »

Das ist eine paradigmatische Entscheidung, Uli, die Vor- und Nachteile hat. Ich verwende nur Aliase, und bestimmte immer wieder für gleiche Tabellen; ein Alias ist aussagekräftiger. Wenn ich die Select-Nummerierung von der DBE vergeben lasse, muss ich sie mir zusätzlich merken, was natürlich auch geht - letztlich wird es das sein, was das Workarea-Objekt auch mit Aliasen macht. Unterm Strich ist es egal - davon abgesehen, dass die Angabe eines konkreten Aliases dazu führt, dass eine Tabelle, die unter diesem Alias ggf. bereits geöffnet ist, geschlossen wird. Was bei einem konkreten Select aber auch passiert, also ohne Select 0.
Herzlich,
Tom
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: ADSDBE Konfiguration

Beitrag von UliTs »

Nach meiner Erinnerung war es so, dass man, wenn man die gleiche Tabelle 2x öffnet, der Alias durch eine Ziffer erweitert wird. Die Variablennamen für die Select-Bereiche benutze ich natürlich genauso aussagekräftig einen Alias, z.B. "nPersonal", mit dem riesen Vorteil, dass dadurch Tippfehler bereits beim Compilieren gefunden werden.
-------
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: ADSDBE Konfiguration

Beitrag von Jan »

Der Punkt ist das der ADS Tabellennamen nur mit max. 10 Stellen verarbeiten kann. So vergebe ich in dem Fall eines längeren Tabellennamens den Alias manuell, gekürzt oder sprechend auf 10 Stellen. In dem Fall ist also der Tabellenname anders als der Alias.

Und betreffende der Nutzung: Ich arbeite grundsätzlich mit dem Alias. Niemals mit Select. Sollte eine Tabelle mehrfach geöffnet werden müssen, dann regel ich den Alias manuell. Und weiß dann exakt wie der Alias heißen muß. In den Fällen wo ich nicht weiß wie oft die schon geöffnet wurde lese ich direkt nach dem Öffnen den Alias in eine Variable ein, die ich dann als Alias nutze.

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: ADSDBE Konfiguration

Beitrag von Tom »

Nach meiner Erinnerung war es so, dass man, wenn man die gleiche Tabelle 2x öffnet, der Alias durch eine Ziffer erweitert wird.
Nicht, wenn Du den Alias konkret angibst.

Code: Alles auswählen

USE KUNDEN ALIAS ku
USE ARTIKEL ALIAS ku // "Kunden" ist jetzt zu
Herzlich,
Tom
Antworten