AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Abfrageergebnis zwischenspeichern
Thema durchsuchen
Ansicht
Themen-Optionen

Abfrageergebnis zwischenspeichern

Ein Thema von d6lpz · begonnen am 8. Apr 2008 · letzter Beitrag vom 9. Apr 2008
Antwort Antwort
d6lpz

Registriert seit: 26. Mär 2008
73 Beiträge
 
Delphi 6 Professional
 
#1

Abfrageergebnis zwischenspeichern

  Alt 8. Apr 2008, 10:11
Datenbank: Acc2000 • Version: 2k • Zugriff über: ADO
Hallo,

ich suche eine Möglichkeit das Ergebnis einer Abfrage "zwischenzuspeichern" um es dann weiterverarbeiten zu können.
Das heißt, ich möchte es dann als Datengrundlage für eine Reportkomoponente verwenden.

Bin für alle Stichworte, Anregungen oder Hinweise dankbar!
Dirk
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Abfrageergebnis zwischenspeichern

  Alt 8. Apr 2008, 10:13
Um was für ein Ergebnis handelt es sich.
Was meinst Du mit Zwischespeichern, im Memory festhalten
oder auf die Platte schreiben?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
d6lpz

Registriert seit: 26. Mär 2008
73 Beiträge
 
Delphi 6 Professional
 
#3

Re: Abfrageergebnis zwischenspeichern

  Alt 8. Apr 2008, 10:22
Hallo,
Zitat von Klaus01:
Um was für ein Ergebnis handelt es sich.
Was meinst Du mit Zwischespeichern, im Memory festhalten
oder auf die Platte schreiben?

Grüße
Klaus
Die Abfrage ist eine CrossQry. Das Ergebnis der Qry ist Grundlage für ein Report.
Da durch die Kreuzabfrage zur Entwurfszeit die Anzahl und Namen der Felder noch nicht bekannt sind, kann ich in dem Report auch vorher die zu füllenden Felder nicht benennen. Ich hoffte nun, dass ich durch das Zwischenspeichern an die Feldnamen herankommen, den Report entsprechend gestalten und dann den Report aufrufen könnte.
Die Reportkomponente benötigt als Datenbasis ein Dataset.
Wie kann ich dieses Dataset mit den "zwischengespeicherten" Werten "füllen"?
Dirk
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Abfrageergebnis zwischenspeichern

  Alt 8. Apr 2008, 12:06
Hallo,

eine Query ist auch ein DataSet,
also könntest du deine Query als Ausgangspunkt für den Report nehmen.

Dein Problem "Felder nicht bekannt",
wie willst du dann einen Report designen ?


Heiko
Heiko
  Mit Zitat antworten Zitat
d6lpz

Registriert seit: 26. Mär 2008
73 Beiträge
 
Delphi 6 Professional
 
#5

Re: Abfrageergebnis zwischenspeichern

  Alt 9. Apr 2008, 07:00
Zitat von hoika:
Hallo,

eine Query ist auch ein DataSet,
also könntest du deine Query als Ausgangspunkt für den Report nehmen.

Dein Problem "Felder nicht bekannt",
wie willst du dann einen Report designen ?


Heiko
In Access werden die Reports für crossqry's dynamisch erzeugt. Da funktioniert das automatisch.

Da ich aber weiß mit welchen Feldern zu rechnen ist, wollte ich die Feldliste, welche von der CQry zurückgegeben wird, einlesen, die Felder zu den im Report definierten umbenennen und dann ein neues DataSet füllen und dem Report zur Verfügung stellen.
Der Report ist ein Export nach Excel. Für den Export wird ein Excel-Template eingelesen und in diesem befindet sich die Definition der zu erwartenden Felder/Feldnamen.
Die Exceldatei jedesmal neu generieren, also ohne Template, würde die durch diese Templatefunktion gewonnene Flexibilität eben gerade zunichte machen. Die Daten werden in den ExcelSheets weiterverbreitet und die Reports werden mit Conditional Formats entsprechend gestaltet.
Mit normalen Qry's funktioniert das schon perfekt - allerdings sind dort zur Laufzeit die Feldnamen und deren Anzahl schon bekannt.

Die CrossQry liefert als Ergebnis eine Datenmenge für jeden Tag eines Monats. Da die Monate eine unterschiedliche Anzahl von Tagen haben (Schaltjahr/Februar) ist die Anzahl der Spalten unterschiedlich.

Ich habe die Feldnamen ausgelesen und wollte sie jetzt umbenennen, allerdings weiß ich noch nicht wie ich den Schreibschutz des aktivierten DataSets umgehen kann bzw. die Datenmenge für das andere Dataset zusammenstellen kann.
Ich hatte in der Hilfe etwas gefunden, wie man ein DataSet in ein anderes kopieren kann. Ich dachte nun bei diesem Kopiervorgang kann man die Felder entsprechend umbenennen.

Bin also noch am knobeln...
Dirk
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Abfrageergebnis zwischenspeichern

  Alt 9. Apr 2008, 07:03
Hallo,

vielleicht hilft ja das TClientDataSet.


Heiko
Heiko
  Mit Zitat antworten Zitat
d6lpz

Registriert seit: 26. Mär 2008
73 Beiträge
 
Delphi 6 Professional
 
#7

Re: Abfrageergebnis zwischenspeichern

  Alt 9. Apr 2008, 07:15
Zitat von hoika:
Hallo,

vielleicht hilft ja das TClientDataSet.


Heiko
Habe gerade in der Hilfe nach Erläuterung gesucht. Mit TClientDataSet habe ich noch nichts angefangen
Ich verstehe noch nicht wie ich damit auf eine ADOQry zugreifen kann.
Muß also noch weiter lesen...

Dirk
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Abfrageergebnis zwischenspeichern

  Alt 9. Apr 2008, 08:28
Hallo,

damit kannst du eine Tabelle im Speicher erzeugen,
die füllst du dann aus deiner Query mit Werten
und benutzt das ClientDataSet als Grundlage des Reports.


Heiko

PS: Ich kenne das Ding auch nur, benutzt habe ich es noch nicht.
Heiko
  Mit Zitat antworten Zitat
d6lpz

Registriert seit: 26. Mär 2008
73 Beiträge
 
Delphi 6 Professional
 
#9

Re: Abfrageergebnis zwischenspeichern

  Alt 9. Apr 2008, 09:56
Vielleicht kann ich es später verwenden.
Ich habe mit einer anderen Lösung Erfolg gehabt. In dem Template habe ich die Feldnamen mit Hochkomma angegeben.
Habe keine Ahnung wieso das jetzt funktioniert - aber es funktioniert. Möglicherweise ein Typumwandlungsproblem in der Exl-Report Komponente.

Danke für Deine Hinweise!
Dirk
  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 13:18 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