AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Konflikt DataSet <-> Query
Thema durchsuchen
Ansicht
Themen-Optionen

Konflikt DataSet <-> Query

Ein Thema von Der Jan · begonnen am 31. Jan 2006 · letzter Beitrag vom 1. Feb 2006
Antwort Antwort
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#1

Konflikt DataSet <-> Query

  Alt 31. Jan 2006, 17:16
Datenbank: Firebird • Version: 1.5 • Zugriff über: FIBPlus
Hallo,

ich hab da grad ein ganz blödes Problem. undzwar habe ich in einer DB-Anwendung diverse DataSet und Query (TfibDataSet/TfibQuery).
Wenn ich jetzt ein Query ausführe, das eine Tabelle betrifft (nicht schreibend, SELECT reicht schon), wird das DataSet, welches auf die entsprechende Tabelle zugreift, geschlossen. Blöd ist das ganze, da das ganze erstens eben bei einer Vorführung der SW zum ersten mal passiert ist , zweitens ich keine Ahnung habe warum und drittens, naja, der Effekt ist vorher nicht aufgetreten. Das läßt mich vermuten, das es sich evtl. (hoffentlich) nur um ein Property-Setting handelt. Ich bin mir aber nicht bewußt etwas geändert zu haben (ich hab nichts gemacht )
Weiß vielleicht jemand, trotz meiner wagen Beschreibung, einen Rat?
Gruß, Jan
  Mit Zitat antworten Zitat
Hansa

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

Re: Konflikt DataSet <-> Query

  Alt 31. Jan 2006, 17:27
Die Frage ist, warum überhaupt eine BDE-Query zusammen mit FIBplus verwendet wird. Ist völlig unnötig und sollte man vermeiden.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#3

Re: Konflikt DataSet <-> Query

  Alt 31. Jan 2006, 17:43
Äh. Nee. Keine BDE-Query. Einmal TFibDataset und einmal TFibQuery. Ganz ohne BDE. Die vermeide ich generell
Gruß, Jan
  Mit Zitat antworten Zitat
Hansa

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

Re: Konflikt DataSet <-> Query

  Alt 31. Jan 2006, 17:51
Du brauchst aber keine Query. Das ist Schneee von gestern wegen BDE-Kompatibilät. Wozu soll die sonst gut sein ? TDataset bzw. Abkömmling reicht völlig.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#5

Re: Konflikt DataSet <-> Query

  Alt 31. Jan 2006, 18:19
Ich will aber
Nein mal im ernst, TFibQuery ist nicht das selbe wie TQuery, sondern wirklich nur das was es sein sollte, eine einfache Abfrage.
Und eben für eine einfache Abfrage, z.B. über drei Tabellen hinweg, die nur einen Wert bzw. Datensatz zurückbringt jedesmal ein DataSet? Oder für DataPumping? Nö. das ist irgendwo wie mit den Kanonen und den Spatzen.
Zitat:
Use a TpFibQuery component for data operation that need to be fast and lightweight
Ich will das aber nicht OT werden lassen.
Fakt ist, das ich beides verwende und leider mit meinem Problem nicht wirklich weiter bin.
Gruß, Jan
  Mit Zitat antworten Zitat
Hansa

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

Re: Konflikt DataSet <-> Query

  Alt 31. Jan 2006, 18:34
Zitat von Der Jan:
..für eine einfache Abfrage, z.B. über drei Tabellen hinweg, die nur einen Wert bzw. Datensatz zurückbringt jedesmal ein DataSet?...
Für 3 Tabellen braucht man lediglich ein einzelnes Dataset. Dieses muß nur wissen, um was es geht (sprich : SelectSQL). Alternativ wäre eine stored Procedure (SP) in Betracht zu ziehen und dann eben nur ParamByName besetzen. Das geht allerdings auch beim TDataSet. TFibQuery ist im Prinzip überflüssig. Und das ist keine Erfindung von mir, sondern eine Aussage von Serg Vestrikov.
Gruß
Hansa
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: Konflikt DataSet <-> Query

  Alt 31. Jan 2006, 18:36
Hi,

ich kenne mich mit FIBPlus jetzt nicht wirklich gut aus, aber ist es da nicht so, dass in der "Standardeinstellung" nach einem Select automatisch die Transaktion geschlossen wird? Schau mal nach, ob du da in der Query was einstellen kannst.

Lemmy
  Mit Zitat antworten Zitat
alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#8

Re: Konflikt DataSet <-> Query

  Alt 31. Jan 2006, 21:51
Hallo Jan,

kann es sein, daß das DataSet.Transaction und die Query.Transaction identisch sind und Query.Option auf [qoAutoCommit] steht?
Dann wird nach dem Ausführen bzw. Schließen der Query die gemeinsame Transaction beendet und
damit wird auch das DataSet geschlossen.
Lösung wäre z.B.
a) Query.Option NICHT auf [qoAutoCommit]
b) Query.Transaction separate Transaction
c) Query.Transaction an die UpdateTransaction hängen
je nach dem was gebraucht wird.
alex
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#9

Re: Konflikt DataSet <-> Query

  Alt 1. Feb 2006, 07:03
Jo danke. Ich hatte es inzwischen auch gefunden. Irgendwie haben die Queries und die Datasets irgendwie plötzlich die selben Transaktionen benutzt, hab ich wohl aus Versehen im OI umgestellt, keine Ahnung ( ). Hab es wieder geändert und schon funzt der Kram wieder. War wohl gestern abend nach vielen Stunden Arbeit zu platt, das noch zu checken
Gruß, Jan
  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 01:24 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