Architect SQL zu Programm SQL

Advantage Database Architect

Moderator: Moderatoren

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

Re: Architect SQL zu Programm SQL

Beitrag von Manfred »

welchen Code willst Du sehen?
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: Architect SQL zu Programm SQL

Beitrag von UliTs »

Manfred hat geschrieben: Mi, 11. Nov 2020 6:43 welchen Code willst Du sehen?
? Hier noch einmal der Quellcode, den Bertram veröffentlicht hat:

Code: Alles auswählen

oSession := DacSession():New( cConnect )
oSessionRoger := DC_AdsSession( oSession )
oStmtRoger := DC_AdsStatement():New("SELECT * FROM tabellexyz", oSessionRoger )
cAlias := oStmtRoger:execute()
(cAlias)->(DBGOTOP())
... Mach irgendwas
(cAlias)->(DBCLOSEAREA())
oStmtRoger:close()
oSession:disconnect()
Vor allem die Zeile mit oStmtRoger := DC_AdsSta... würde mich bei Dir interessieren.
Uli

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

Re: Architect SQL zu Programm SQL

Beitrag von Manfred »

das ist Code von Roger.
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: Architect SQL zu Programm SQL

Beitrag von UliTs »

Manfred hat geschrieben: Mi, 11. Nov 2020 20:31 das ist Code von Roger.
Ja, natürlich! Hast du es doch anders gemacht?
Dann zeig bitte trotzdem mal die Programmzeile mit dem SQL-Statement.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Architect SQL zu Programm SQL

Beitrag von Manfred »

meinst Du das SQL Statement, in dem ich die Select Abfrage mache?
Ok, dann gehe bitte zurück auf Anfang und lese meinen Eingansgtext, da steht er nämlich drin.
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: Architect SQL zu Programm SQL

Beitrag von UliTs »

Willst Du mich ärgern?
Das steht in Deinem ersten Beitrag:
Manfred hat geschrieben: Mi, 04. Nov 2020 10:57 Ich haue jetzt erstmal was ganz pauschal hier raus. Mir ist jetzt mehrfach aufgefallen, das ein SQL Script im Architecten funktioniert, aber im Programm untergebracht ein NIL Ergebnis zurückliefert. Was ist das denn jetzt schon wieder?
Aber in Deinem 3.Beitrag steht er drin 8) . Sorry, habe ich übersehen.

Bertram: kannst Du Dein Beispiel mal erweitern und ein "order By Feld1,Feld2" hinzufügen? Funktioniert es dann weiterhin bei Dir?
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Architect SQL zu Programm SQL

Beitrag von Manfred »

:lol:
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
Bertram Hansen
Foren-Moderator
Foren-Moderator
Beiträge: 1015
Registriert: Di, 27. Sep 2005 8:55
Wohnort: 51379 Leverkusen
Hat sich bedankt: 28 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Architect SQL zu Programm SQL

Beitrag von Bertram Hansen »

UliTs hat geschrieben: Mi, 11. Nov 2020 22:54 Bertram: kannst Du Dein Beispiel mal erweitern und ein "order By Feld1,Feld2" hinzufügen? Funktioniert es dann weiterhin bei Dir?
Uli, ja ODER BY, GROUP BY, etc. das alles funktioniert damit.

Manfred, vielleicht solltest du auch mal im Forum von Roger um Rat fragen.

Hast du den mal probiert diesen SQL-Befehl ohne das Tool von Roger mit den puren Xbase Möglichkeiten aufzurufen.

Code: Alles auswählen

 oStmt  := DacSqlStatement( oSession ):fromChar( "SELECT * FROM tabellexyz" )
Ich weiß ja, dass du das Tool von Roger benutzt, weil ja bei purem Xbase der Fehler mit den offenen Tabellen noch nicht behoben ist.
siehe: viewtopic.php?f=42&t=11632
:wave:
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.

Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Architect SQL zu Programm SQL

Beitrag von Manfred »

OK,
das Problem habe ich erstmal umschifft. Ich arbeite jetzt mit einem VIEW. Das klappt zwar so ohne weiteres nicht mit einem ORDER BY, aber wenn man TOP 1000 z.B. einfügt. dann wird es akzeptiert.

Code: Alles auswählen

CREATE VIEW 
   zeige_letzte_reinigung_view
AS 
   SELECT TOP 5000 fz.kfznr, ra.datumbis,  ra.datumvon,fa.nummer, fa.name, fa.vorname
       FROM fahrzeuge fz
       left JOIN reinigung ra ON fz.id=ra.idfahrzeug
       left JOIN fahrer fa ON ra.nummer=fa.nummer
       WHERE fz.aktiv=true
	   order by fz.kfznr, ra.datumbis dESC;
jetzt muß ich nur schauen, wie ich das mit TOP auf die Reihe bekomme. Es werden ja mit der Zeit mehr Sätze.
Oder weiß einer wie man ORDER BY anders unterbekommt?
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: Architect SQL zu Programm SQL

Beitrag von UliTs »

Code: Alles auswählen

Select *
From zeige_letzte_reinigung_view
Order by ...
 
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Architect SQL zu Programm SQL

Beitrag von Manfred »

Uli, jetzt habe ich das Gefühl, das Du mich veralbern willst
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: Architect SQL zu Programm SQL

Beitrag von UliTs »

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

Re: Architect SQL zu Programm SQL

Beitrag von Manfred »

Dankend zurück. Was habe ich denn geschrieben? Das Order by über xbase wohl nicht klappt. Ich habe es jetzt direkt auf den Server ausgelagert mittels View und Du schlägst mir wieder vor es mit Xbase zu machen. Wer nervt hier wohl mehr?
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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Architect SQL zu Programm SQL

Beitrag von brandelh »

Seid nett zueinander ... es gibt nicht mehr viele von uns ;-)
Gruß
Hubert
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Architect SQL zu Programm SQL

Beitrag von Marcus Herz »

Ein View kann in der Definition kein ORDER BY enthalten, das ist SQL Standard und hat nichts mit Xbase++ zu tun
Aber man kann beim Abfragen ein ORDER BY anhängen, wie Uli es geschrieben hat

Code: Alles auswählen

SELECT * FROM <view> ORDER BY ...
Alles klar?
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Architect SQL zu Programm SQL

Beitrag von Manfred »

er kann ein Order by haben, allerdings muß am Anfang ein TOP stehen. Und wenn ich über Xbase++ wieder ein Order by anhänge, dann habe ich das gleiche Problem wie ohne View, es klappt nicht.
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
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Architect SQL zu Programm SQL

Beitrag von Manfred »

das ist ürbigens die meldung im Architekten, wenn man es versucht.
poQuery: Error 7200: AQE Error: State = 42000; NativeError = 2117; [SAP][Advantage SQL Engine]Unexpected token: order : ORDER BY clause not legal in VIEW without TOP x -- Location of error in the SQL statement is: 287 (line: 9 column: 5)
und da steht ganz klar, es klappt, aber nur mit TOP X Angabe
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: Architect SQL zu Programm SQL

Beitrag von nightcrawler »

Thema ist doch, dass dies ein Problem von Rogers Klassen ist.
Das eingangs erwähnte SQL Statement funktioniert im ADS selbst. Das ORDER BY wird vermutlich von Rogers Klassen irgendwie zusätzlich interpretiert. Bleibt die Frage, warum das in Alaskas "AdsStatement" und in Friedhelms Klassen das Problem nicht zutage tritt, bei Roger schon. Ich vermute hier nicht einen Fehler beim ADS ;)
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Architect SQL zu Programm SQL

Beitrag von Manfred »

Joachim,
dem ADS wurde (von meiner Seite) niemals ein Fehler angedichtet. Meine Frage war nur, warum es über den Architekten klappt, aber nicht über xBase++. Ich bin leider noch nicht dazu gekommen, es in purem xbase zu testen um dann zu sehen ob es Rogers Klassen liegt. Wenn es an Rogers Klassen liegt, dann wäre das sehr ärgerlich, weil xbase pur die Query anschließend nicht schließt. Was aber Alaska schon bekannt ist. Aber mit der View kann ich derzeit leben. Ich habe ein TOP eingebaut und das reicht erstmal für eine Zeit. So habe ich Luft zu überlegen, wie ich das Problem anders angehen kann.
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: Architect SQL zu Programm SQL

Beitrag von nightcrawler »

Manfred,
ich habe in meinem Buch die Klassen von Steffen (und auch den Beitrag dazu). Wenn ich mir die Quellen mal anschaue, gehe ich schon davon aus, dass das Statement auch geschlossen wird:

Code: Alles auswählen

METHOD AdsStatement:Close()
   IF(::HANDLE==NIL)
      RETURN(.F.)
   ENDIF

   // cursor still open
   IF(Used(::Alias))
     (::Alias)->(DbCloseArea())
   ENDIF

   // close statement
   ::LastError := AdsCloseSQLStatement(::HANDLE)
   ::Statement := NIL
   ::HANDLE    := NIL
   ::Alias     := NIL
RETURN
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Architect SQL zu Programm SQL

Beitrag von Manfred »

Joachim,
Du gehst davon aus. Ja, das kannst Du gerne. Bis zu meiner Entdeckung ging Alaska auch davon aus. :wink:
https://www.alaska-software.com/scripts ... PDRID=7290
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: Architect SQL zu Programm SQL

Beitrag von nightcrawler »

Du siehst aber schon, dass ich _nicht_ DACSQLStatement verwendet habe?
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Architect SQL zu Programm SQL

Beitrag von Manfred »

Nein,
habe ich nicht erkannt. Aber in Alaskas Beispiel aus Deinem Buch wird doch auch DacSession benutzt!? Und ich meine das Beispiel habe ich mir damals herangenommen und dann probiert. Nachdem ich dann auf besagtes Problem gestossen bin, bin ich auf Rogers Technik gestossen und damit klappte es.
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
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Architect SQL zu Programm SQL

Beitrag von Manfred »

ich verstehe es trotzdem nicht. Ich kann nicht erkennen, das Du irgendwas eigenes benutzt. Du machst ein DbCloseArea(). Genau das habe ich mit pur xbase auch gemacht, aber xbase hat kein Close gemacht. Also, wo liegt Deiner Meinung nach jetzt der Unterschied?
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: Architect SQL zu Programm SQL

Beitrag von nightcrawler »

Code: Alles auswählen

::LastError := AdsCloseSQLStatement(::HANDLE)
Da schließt das SQL statement auf ADS Seite.
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Antworten