AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Datenübergabe an DB?!?
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Datenübergabe an DB?!?

Ein Thema von Hansi · begonnen am 21. Dez 2004 · letzter Beitrag vom 3. Jan 2005
Antwort Antwort
Seite 3 von 3     123   
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#21

Re: SQL Datenübergabe an DB?!?

  Alt 22. Dez 2004, 12:41
Indem du z.B. für deinen "Gustav" in einer 2. Tabelle ein Feld Durchschnitt, Summe usw. anlegst und den Wert dann dort speicherst. Dieses eine Feld in der zweiten Tabelle wäre dann zuständig für die x Felder von Gustav in der ersten. Du willst es aber wohl so machen, wie es dir von jedem ordentlichen Informatiker um die Ohren geschmissen werden wird: eine Tabellenspalte für 2 grundsätzlich verschiedene Dinge zu mißbrauchen. Eventuell nur, um ein einziges Feld einzusparen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Hansi

Registriert seit: 8. Okt 2004
271 Beiträge
 
#22

Re: SQL Datenübergabe an DB?!?

  Alt 22. Dez 2004, 12:47
Wissen eigentlich diejenigen die hier Antworten schreiben was ich eigentlich für ein Problem habe?

Wenn jemand diese 20 Beiträge liest und noch weiss was mein Problem ist kann ein Waschmaschine(defekt) gewinnen.

Mann!Mann!Mann!Mann!Mann!Mann!Mann!Mann!Mann!Mann! Mann!Mann!

Bitte nur noch Lösung posten, danke!
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#23

Re: SQL Datenübergabe an DB?!?

  Alt 22. Dez 2004, 12:56
Zitat von Hansi:
Bitte nur noch Lösung posten, danke!
1. Lösungsansätze sind genug da.
2. Hier gibt es keine Silbertabletts.
3. Lösungen für auf dem Holzweg Reisende gibt es nirgends.
4. weißt du überhaupt, was du willst und hast es genau genug erklärt ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

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

Re: SQL Datenübergabe an DB?!?

  Alt 22. Dez 2004, 13:16
Ich geb Hansa vollkommen Recht. Nicht nur, daß du hier wohl kaum eine Fertiglösung serviert bekommst, sondern in erster Linie auf die Datenstruktur bezogen. Ich würd auf jeden eine 2. Tabelle anlegen.

Noch ein Tip: sobald du mit Datumfeldern arbeitest, wirds immer kompliziert, wenn du damit mal was rechnen mußt. Du z.B. willst dir den letzten Monat irgendwie rausfiltern (gruppieren) und Summen über andere Felder erstellen. Das wird dann immer ziemlich komplex, deshalb hab ich mir angewöhnt, für jedes Datum in einer Tabelle noch 3 zusätzliche Spalten zu erstellen, mit Jahr, Monat und Tag. Diese Spalten werden auf Datenbankseit in einem Trigger automatisch gefüllt. Wenn du das so machst, sieht dein Bsp recht einfach aus, hier mal in ungefähr der SQL Code:
SQL-Code:
select Name, Jahr, Monat, sum(Wert) as Monatssumme
from Tabellenname
group by Name, Jahr, Monat
order by Jahr, Monat
Damit hast du eigentlich in einem Ruck, was du brauchst.

Ich denk, jetzt hast du genug Denkanstöße gekriegt. Jetzt spiel mal bischen damit rum, und dann meldest du dich wieder, wenn du konkret ein Problem hast.
  Mit Zitat antworten Zitat
Hansi

Registriert seit: 8. Okt 2004
271 Beiträge
 
#25

Re: SQL Datenübergabe an DB?!?

  Alt 22. Dez 2004, 14:05
Kopfschütteln
  Mit Zitat antworten Zitat
Albi

Registriert seit: 4. Mai 2003
Ort: Berlin
458 Beiträge
 
Delphi 7 Professional
 
#26

Re: SQL Datenübergabe an DB?!?

  Alt 22. Dez 2004, 14:18
Ich würde zwar auch ne zweite Table verwenden aber hast Du mal versucht eine Procedure zu schreiben (ich gehe jetzt mal von Interbase, MySQL usw. aus) die die Abfrage ausführt, dass Ergebnis in eine Variable schreibt und im gleichen Atemzug ein InsertStatment abzusetzen?

SQL-Code:
Create Procedure Test1 (
   ID Integer,
   ...)
AS
Declare variable v date;
Begin
   Select * From DB WHERE Datum between Datum
   into V;

   update DB set Summe = :v
end;
Ich habe das zwar nicht ausprobiert aber so oder ähnlich sollte es funktionieren.

PS: Was schümpft du hier eigentlich rum, du hast auf Fragen die gestellten Fragen gar nicht reagiert. Der ganze Beitrag sieht danach aus, dass Du dir hier keinen Kopf machst sondern lieber die anderen denken läßt.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

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

Re: SQL Datenübergabe an DB?!?

  Alt 22. Dez 2004, 16:09
Zitat von Albi:
PS: Was schümpft du hier eigentlich rum, du hast auf Fragen die gestellten Fragen gar nicht reagiert. Der ganze Beitrag sieht danach aus, dass Du dir hier keinen Kopf machst sondern lieber die anderen denken läßt.
Ich sag dazu jetzt gar nichts mehr. Jeder Vorschlag den man macht wird mit Gegenfragem und Verweisen beantwortet. Meine Infos hab ich gegeben, wenn Hansi damit nichts anfangen kann, weiß ich auch keinen Rat mehr, außer sich ein gescheites Datenbankbuch zuzulegen und sich damit mal bischen intensiver zu beschäftigen. Hinweise und Hilfestellung hat er genug gekriegt, die ihm das Problem lösen sollten.
  Mit Zitat antworten Zitat
hardy1234

Registriert seit: 8. Aug 2004
Ort: Hamburg
26 Beiträge
 
Delphi 7 Enterprise
 
#28

Re: SQL Datenübergabe an DB?!?

  Alt 3. Jan 2005, 05:36
Hey Jelly,

ich hab das wohl richtig verstanden, das Du danach fragst , wie du das ergebnis in die richtige zeile und spalte der Tabelle bekommst. Ich arbeite nun mit Postgre und Firebird. Wollen mal sehen ob wir uns einig sind:

tablename
Name Datum Wert Summe
1. aaaaa xx.xx.xxxx xxxx
2. bbbbb xx.xx.xxxx xxxx
3. ccccc xx.xx.xxxx xxxx
4. aaaaa xx.xx.xxxx xxxx
5. bbbbb xx.xx.xxxx xxxx

Angenommen du willst die Summe in das Feld Summe des 3. Datensatzes in die Spalte "SUMME" schreiben, dann sieht das mit Firebird/Delphi so aus:

proc
var
q: string;
begin
Query.SQL.Clear;
q := 'UPDATE tablename SET SUMME = ''' + summe + '''' +
'WHERE (NAME = ''' + name + ''') AND ( DATUM = ''' + bis + ''')';
Query.SQL.ADD(q);
try
Query.SQL.ExecSQL;
except
end;
end;

Du mußt aber auf die Datentypen achten, die müssen alle Text sein sonst wird das nix. Am besten siehst Du dir das Ergebnis der Stringzusammensetzung im Debugger an und vereinbarst vorsorglich eine string-variable (w.o) zum probieren. Wenn summe den typ real hat, dann

... + FloatToStr(summe) + ...

bis: TDateTime

... DATUM = ASDATE(''' + DateToStr(bis) + ...

in einem Zug geht das freihlich nicht. Das ginge nur mit einer Stored-Procedure. Ob das bei dir dann konsistent ist mußt du wissen, jeder Zeile mit aaa darf jedes Datum nur genau einmal zugewiesen sein. Sonst geht das natürlich schief.
Es gibt keinen schöneren Tag als den heutigen. Der gestrige ist vorbei und von den kommenden weiß man nicht was sie bringen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 05:37 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