Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Warum geht diese SQL Anweisung nicht? (https://www.delphipraxis.net/13151-warum-geht-diese-sql-anweisung-nicht.html)

trialfreak 11. Dez 2003 21:27


Warum geht diese SQL Anweisung nicht?
 
Hallo,
ich habe mit dem MySQLControlCenter folgende SQL-Anweisung zusammengestellt die dort auch ohne Probleme funktioniert:

SQL-Code:
DROP TEMPORARY TABLE IF EXISTS temp_table1;
CREATE TEMPORARY TABLE temp_table1 (info text, anzahl_allg text, anzahl_inst text);
INSERT INTO temp_table1 (info, anzahl_allg) SELECT year(abgabedatum), count(*) from gutachten where freigegeben = 1 group by year(abgabedatum);
DROP TEMPORARY TABLE IF EXISTS temp_table2;
CREATE TEMPORARY TABLE temp_table2 (info text, anzahl_inst text);
INSERT INTO temp_table2 (info, anzahl_inst) SELECT year(abgabedatum) AS 'Info', count(*) AS 'Anzahl' from gutachten where inr = 11 and freigegeben = 1 group by year(abgabedatum);
UPDATE temp_table1, temp_table2 set temp_table1.anzahl_inst = temp_table2.anzahl_inst where temp_table1.info = temp_table2.info;
Meine Datenbankverbindung zu einem MySQL Server via BDE/MyODBC funktioniert so aber nicht.
Der Query scheint Probleme mit mehreren Anweisungen zu haben.

Wie muss ich das umsetzen?

Das Ergebnismenge möchte ich später gerne mit select * from temp_table1 abrufen.
mfg,
Christian

Leuselator 12. Dez 2003 01:26

Re: Warum geht diese SQL Anweisung nicht?
 
Einfach nacheinander. (denk ich)
Delphi-Quellcode:
  DieQuery.Sql.Clear;
  DieQuery.Sql.Add('Erstes Statement');
  DieQuery.ExecSQL;
  DieQuery.Sql.Clear;
  DieQuery.Sql.Add('Nextes Statement');
  DieQuery.ExecSQL;
  ...
  DieQuery.Sql.Clear;
  DieQuery.Sql.Add('Letztes Statement');
  DieQuery.ExecSQL;
Gruß

Edit: Am Ende dieses Threads findest Du ein bisschen Quelltext zum downloaden - mußt das nur anpassen.
Gruß

DaWi 12. Dez 2003 06:36

Re: Warum geht diese SQL Anweisung nicht?
 
Ich bin mir jetzt nicht ganz sicher, aber laß bei den rot markierten Teilen mal die Hochkommata weg... das sind ja Namen und keine Feldinhalte... zudem benötigst / benutzt Du diese Namen ja gar nicht oder ???

SQL-Code:
DROP TEMPORARY TABLE IF EXISTS temp_table1;
CREATE TEMPORARY TABLE temp_table1 (info text, anzahl_allg text, anzahl_inst text);
INSERT INTO temp_table1 (info, anzahl_allg) SELECT year(abgabedatum), count(*) from gutachten where freigegeben = 1 group by year(abgabedatum); DROP TEMPORARY TABLE IF EXISTS temp_table2;
CREATE TEMPORARY TABLE temp_table2 (info text, anzahl_inst text);
INSERT INTO temp_table2 (info, anzahl_inst) SELECT year(abgabedatum)[color=red] AS 'Info'[/color], count(*) [color=red]AS 'Anzahl' [/color]from gutachten where inr = 11 and freigegeben = 1 group by year(abgabedatum);
UPDATE temp_table1, temp_table2 set temp_table1.anzahl_inst = temp_table2.anzahl_inst where temp_table1.info = temp_table2.info;
Gruß

DaWi

[edit=r_kerber]SQL-Tags gesetzt! Mfg, r_kerber[/edit]

trialfreak 12. Dez 2003 15:55

Re: Warum geht diese SQL Anweisung nicht?
 
Hallo,
danke für die Hilfe. :)

Delphi-Quellcode:
 DieQuery.Sql.Clear;
* DieQuery.Sql.Add('Erstes Statement');
* DieQuery.ExecSQL;
* DieQuery.Sql.Clear;
* DieQuery.Sql.Add('Nextes Statement');
* DieQuery.ExecSQL;
* ...
* DieQuery.Sql.Clear;
* DieQuery.Sql.Add('Letztes Statement');
* DieQuery.ExecSQL;
Das war es - die BDE scheint Probleme zu haben mehrere Befehle aufeinmal abzusetzen. So in etwa hatte ich das auch schon probiert, nur habe ich jedesmal noch den Query wieder geschlossen :wall:

Danke!

Zitat:

Ich bin mir jetzt nicht ganz sicher, aber laß bei den rot markierten Teilen mal die Hochkommata weg... das sind ja Namen und keine Feldinhalte... zudem benötigst / benutzt Du diese Namen ja gar nicht oder ???
Die Hochkommata haben keine Bedeutung und stören nicht. Ich brauche die Feldnamen damit ich später die Werte einem Chart zuweisen kann.


Danke für eure Antworten - :dp:

Ciao,
Christian

[edit=r_kerber]Delphi-Tags gesetzt! Mfg, r_kerber[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:04 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