![]() |
Warum geht diese SQL Anweisung nicht?
Hallo,
ich habe mit dem MySQLControlCenter folgende SQL-Anweisung zusammengestellt die dort auch ohne Probleme funktioniert:
SQL-Code:
Meine Datenbankverbindung zu einem MySQL Server via BDE/MyODBC funktioniert so aber nicht.
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; 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 |
Re: Warum geht diese SQL Anweisung nicht?
Einfach nacheinander. (denk ich)
Delphi-Quellcode:
Gruß
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; Edit: Am Ende ![]() Gruß |
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:
Gruß
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; DaWi [edit=r_kerber]SQL-Tags gesetzt! Mfg, r_kerber[/edit] |
Re: Warum geht diese SQL Anweisung nicht?
Hallo,
danke für die Hilfe. :)
Delphi-Quellcode:
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:
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; Danke! Zitat:
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 02:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz