AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken sql mehrere abfragen hintereinander aber wie?
Thema durchsuchen
Ansicht
Themen-Optionen

sql mehrere abfragen hintereinander aber wie?

Ein Thema von polondo · begonnen am 14. Mai 2006 · letzter Beitrag vom 15. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
polondo

Registriert seit: 1. Sep 2005
84 Beiträge
 
#1

sql mehrere abfragen hintereinander aber wie?

  Alt 14. Mai 2006, 09:25
hi,

ich möchte gerne folgendes in ein query objekt packen:

SQL-Code:
IF EXISTS (SELECT name FROM sysobjects WHERE name = 'output_viewAND type = 'V')
BEGIN
  DROP VIEW [output_view]
END

IF EXISTS (SELECT name FROM sysobjects WHERE name = 'search_result_viewAND type = 'V')
BEGIN
  DROP VIEW [search_result_view]
END

create view search_result_view as
SELECT productgroup.description as productgroup, manufacturer.name as manufacturer, product.name, product.art_no, product.size, product.unit,
product.cas_no, product.minrange, product.maxrange, product.measureunit,prod_id from productgroup, manufacturer, product
WHERE product.prdgrp_id = productgroup.prdgrp_id
AND product.man_id = manufacturer.man_id

create view output_view as select product.prod_id,sum(quantity) as quantity
from invoicepos,product
where invoicepos.prod_id = product.prod_id
and product.prod_id IN (select prod_id from search_result_view)
group by product.prod_id

select search_result_view.*,o.quantity from search_result_view
left join output_view o on search_result_view.prod_id = o.prod_id
order by search_result_view.prod_id
wie trenne ich nun diese einzelnen schritte voneinander ohne für jedes eine eigene query auszuführen?
das heißt das alles in eine query soll. ich habe schon versucht jede abfrage einzuklammern aber das nimmt er auch nicht an.
weiß einer weiter?

mfg R.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: sql mehrere abfragen hintereinander aber wie?

  Alt 14. Mai 2006, 09:32
Eine Query-Komponenet dient nur dazu ein einzelnes Statement auszuführen, willst du mehrere Statements ausführen mußt du eine andere Komponente nehmen. Ich vermute mal, das du mit mssql über die Ado-Komponenten (dbGo) arbeitest. Hier heißt sie TADOCommand.
Markus Kinzler
  Mit Zitat antworten Zitat
polondo

Registriert seit: 1. Sep 2005
84 Beiträge
 
#3

Re: sql mehrere abfragen hintereinander aber wie?

  Alt 14. Mai 2006, 09:38
erstmal danke für die antwort!
du hast recht ich arbeite mit der adoquery. allerdings wundert mich das was du sagst, denn bisher habe ich es auch geschafft mehrere insert hintereinander oder aber einen insert und direkt danach eine update über einen einzelne query-komponente auszuführen.
das einzigste wobei der eben ärger macht ist der create befehl bei dem er diesen immer an erster stelle sehen will. ich kann mich daran erinnern das es in mysql zumindest die möglichkeit gab die einzelnen abfragen über runde klammern voneinander zu trennen.


hmm ich werd ma schauen was ich da über das tadocommand finde.

mfg R.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: sql mehrere abfragen hintereinander aber wie?

  Alt 14. Mai 2006, 09:44
Mit Ado kenn ich mich nicht so aus. Aber bei den anderen Kompontenensammlungen wird immer zwischen Einzel- (Query) und mehfach-Statements unterschieden.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: sql mehrere abfragen hintereinander aber wie?

  Alt 14. Mai 2006, 09:56
Für Normal werden SQL Befehle auch irgendwie abgeschlossen, ähnlich wie bei Delphi. Bei MySQL ist das in der Regel sogar ebenfalls das Semicolon.
  Mit Zitat antworten Zitat
polondo

Registriert seit: 1. Sep 2005
84 Beiträge
 
#6

Re: sql mehrere abfragen hintereinander aber wie?

  Alt 14. Mai 2006, 10:33
das semikolon hab ich auch schon versucht .. will der aber trotzdem nicht voneinander trennen. hmm keine ahnung woran das liegt
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#7

Re: sql mehrere abfragen hintereinander aber wie?

  Alt 14. Mai 2006, 11:48
Mit welcher Komponente schickst Du denn die Befehle zum Server. Versuch mal die Zeos Komponenten, da gibts sowas wie TZBatchSQL. Ansonsten bleibt Dir wohl nix anderes übrig als jeden einzelnen Befehl einzeln zum Server zu schicken.
  Mit Zitat antworten Zitat
14. Mai 2006, 12:49
Dieses Thema wurde von "SirThornberry" von "Programmieren allgemein" nach "Datenbanken" verschoben.
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: sql mehrere abfragen hintereinander aber wie?

  Alt 14. Mai 2006, 13:07
Ich setze Kommandos (bis ca. 1000 Zeichen) mit der Methode Execute - Methode der TADOConnection ab. Jeder Befehl in eine neue Zeile, aber einzelne Befehle kann man auch strukturieren:
SQL-Code:
Select Foobar,
       BlaFasel
From SomeBoo
Insert Into Foo
  Select 1,2
Create Procedure MyProc
  @Param int
as
if (@Param = 1)
  select .....
Die CreateViews müssen aber mit 'GO' abgeschlossen werden, wenn danach noch etwas kommen soll. Das musst Du mal ausprobieren. Ich erzeuge jedenfalls komplette Views-Sammlungen auf diese Weise: Alle Befehle in ein Stringgrid, und wenn es mehr als 1000 Zeichen sind, dann die Befehlssammlung einfach per Execute abschicken. Warum diese Grenze ist, weiss ich nicht. Es nervt zwar ein wenig, aber da man die Execute's sowieso in einer TADOConnection-Transaktion kapseln sollte, macht das nichts.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
polondo

Registriert seit: 1. Sep 2005
84 Beiträge
 
#10

Re: sql mehrere abfragen hintereinander aber wie?

  Alt 14. Mai 2006, 22:29
kannst du mir bitte sagen wie das mit dem GO zum abschließen der view gehen soll? ich habe versucht eine einzige view sowohl mit tadoquery als auch tadocommand auszuführen ... bei beidem kommt allerdings die fehlermeldung "kein resultset"

kann da eina helfen?

schon ma danke!
mfg R.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz