Grundsatzfrage

Advantage Database Server

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Grundsatzfrage

Beitrag von Manfred »

der ADS Server kann ja grundsätzlich mit den normalen Xbase++ Funktionen angesprochen werden wie aber auch per SQL.
Wenn ich den ADS per SQL anspreche, dann benötigt man kein USE usw.
wenn man den ADS nun mit DBF und CDX im DD nutzt, aber nur SQL nimmt als Abfrage, werden denn dann überhaupt die CDX benötigt?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
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: Grundsatzfrage

Beitrag von UliTs »

Nein, aber sie werden zur Optimierung genutzt!
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Grundsatzfrage

Beitrag von Manfred »

zu welcher Optimierung? Und woher weiß der ADS welchen TAG er gerade nehmen sollte
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2824
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Grundsatzfrage

Beitrag von georg »

Guten Morgen, Manfred -


grundsätzlich sollte es einen Unterschied machen. Ein SQL-Server hat normalerweise so etwas wie einen Query-Optimizer. Der prüft bei einer Abfrage, welche Index-Dateien zur Verfügung stehen, und ob diese für die Abfrage herangezogen werden können. Gibt es keinen passenden Index, wird temporär einer erstellt.

Wenn Du also weisst, dass bestimmte Sortierfolgen häufig verwendet werden, kann ein Index über diese Sortierfolgen dem Query-Optimizer helfen.

Grundsätzlich gesprochen. Ob das aktuell auch für den ADS gilt, kann ich nicht beantworten, ich vermute es aber.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen 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: Grundsatzfrage

Beitrag von UliTs »

Am Besten, Du rufst das Select Statement mit dem Arc auf und schaust, welche Indizes benutzt werden.

Grundsätzlich sollte man dafür einfache Indizes über je genau 1 Feld haben.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Grundsatzfrage

Beitrag von Manfred »

Uli, kannst Du mir näheres dazu erklären, ich bin total neu auf dem Gebiet ADS und versuche mich gerade ein wenig einzuarbeiten.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
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: Grundsatzfrage

Beitrag von UliTs »

Ja,habe gerade noch etwas zu tun. Danach rufe ich Dich an.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
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: Grundsatzfrage

Beitrag von UliTs »

Habe Dich nicht erreicht...
Melde Dich einfach, sobald es passt.
Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Grundsatzfrage

Beitrag von Manfred »

war kurz draußen, jetzt bin ich da.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
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: Grundsatzfrage

Beitrag von nightcrawler »

Der "Tag" ist dem ADS egal, er kennt aber die Ausdrücke dahinter.
Kommt zB nun eine Abfrage

Code: Alles auswählen

SELECT Vorname, Name FROM mitarbeiter ORDER BY Name, Vorname
und Du hast einen Index "Name+Vorname", so kann ADS diesen zur Abfrage-Optimierung verwenden.
Bei

Code: Alles auswählen

SELECT m.Vorname, m.Name, p.Gehalt FROM mitarbeiter m LEFT OUTER JOIN personaldaten p ON p.PersNo=m.PersNo
würde der ADS jeden Index in mitarbeiter und in personaldaten verwenden können, welcher mit "PersNo" beginnt (zB auch "PersNo+DTOS(Eintritt)).
Am Besten sind hier Index-Ausdrücke auf den einzelnen Feldern, dann kann der ADS die einzelnen Schlüssel sauber kombinieren - und zwar in jedwelcher Reihenfolge (auch DESC).
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
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: Grundsatzfrage

Beitrag von UliTs »

Manfred hat geschrieben: Sa, 16. Mai 2020 13:33 war kurz draußen, jetzt bin ich da.
Sorry, ich weiß nicht warum, aber ich wurde über Deine Antwort nicht informiert...
Habe wahrscheinlich erst Donnerstag wieder Zeit. Melde Dich dann bitte gegebenenfalls noch einmal.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Grundsatzfrage

Beitrag von Manfred »

nächste Grundsatzfrage:
wenn eine DBF über xbase++ geöffnet wurde/ist, dann kann sie parallel nicht mit einem SQL Befehl angesprochen werden!? Also entweder oder?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
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: Grundsatzfrage

Beitrag von UliTs »

Ich weiß nicht genau, wie Du das meinst. Die Tabellen sollten grundsätzlich nur über den ADS geöffnet werden. Das kann natürlich auch mit xBase über den ADS geschehen. Parallel kannst du auch mit SQL Statements auf die Tabellen zugreifen.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Grundsatzfrage

Beitrag von Manfred »

im selben Programm war gemeint. Ich habe eine DBF mit USE aufgemacht und dann versucht über einen SQL Befehl ein Update abzuschicken. Dabei bekomme ich eine Fehlermeldung.
ads.PNG
ads.PNG (43 KiB) 6101 mal betrachtet
allerdings stelle ich gerade fest, das die auch kommt, wenn die DBF vorher zugemacht wurde.
Den Update Befehl habe ich über den Architekten geprüft, der ist in Ordnung.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Grundsatzfrage

Beitrag von brandelh »

Ich sehe hier die Fehlermeldung, dass die Methode qOut nicht erlaubt ist, das erinnert mich an ein ? wenn vorher console off geschaltet wurde.
Die NICHT erstellte Datei scheint auch nicht die DBF zu sein oder ?
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Grundsatzfrage

Beitrag von Manfred »

hm, der Fehler scheint wohl nichts damit zu tun zu haben. Ich habe ihn aber trotzdem mal hier stehen lassen. Ich habe total übersehen, das ich in dem Programm zwar schon eine Connection zum ADS Server habe, hatte aber total vergessen, das ich bisher nur Postgres SQL Befehle verschickt hatte. Also muß ich jetzt erstmal prüfen, ob überhaupt ein SQL Befehl an den ADS rausgeht. Das mache ich aber erst morgen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten