AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Warum geht diese SQL Anweisung nicht?
Thema durchsuchen
Ansicht
Themen-Optionen

Warum geht diese SQL Anweisung nicht?

Ein Thema von trialfreak · begonnen am 11. Dez 2003 · letzter Beitrag vom 12. Dez 2003
Antwort Antwort
trialfreak

Registriert seit: 19. Okt 2003
24 Beiträge
 
Delphi 6 Professional
 
#1

Warum geht diese SQL Anweisung nicht?

  Alt 11. Dez 2003, 22:27
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 'Anzahlfrom 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
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#2

Re: Warum geht diese SQL Anweisung nicht?

  Alt 12. Dez 2003, 02:26
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ß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
DaWi

Registriert seit: 22. Nov 2003
9 Beiträge
 
#3

Re: Warum geht diese SQL Anweisung nicht?

  Alt 12. Dez 2003, 07:36
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]
  Mit Zitat antworten Zitat
trialfreak

Registriert seit: 19. Okt 2003
24 Beiträge
 
Delphi 6 Professional
 
#4

Re: Warum geht diese SQL Anweisung nicht?

  Alt 12. Dez 2003, 16:55
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

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 -

Ciao,
Christian

[edit=r_kerber]Delphi-Tags gesetzt! Mfg, r_kerber[/edit]
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:12 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