![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: UniDAC
UniDAC, editierbare Query mit Join geht das?
Hallo Zusammen,
ich steige soeben um von Delphi5 mit IBO auf Delphi XE2 mit UniDac. (UniDac in der Testphase) Unter IBO ist es möglich ein Select welcher Joins enthält dennoch edieribar zu halten. z.B.:
Code:
Bei IBO setze ich dieses SQL in ein TIB_Query und schon sind die Felder von RECHNUNGEN editierbar.
SELECT A.ADRESSID, A.FIRMA, A.STRASSE, A.ORT, R.RECHNUNGID, R.RECHNUNGNR, R.DATUM
FROM RECHNUNGEN R JOIN ADRESSEN A ON (A.ADRESSID = R.ADRESSID) WHERE R.RECHNUNGID = :RECHNUNGID FOR UPDATES << IBO spezifische Kommandos Die Felder von ADRESSEN sind ReadOnly. TIB_Query baut hierfür automatisch die richtigen SQL Statements für Insert, Update und Delete. Kann UniDAC das auch? Wenn nicht wie ist das mit UniDAC zu bewerkstelligen? Muss ich alle SQL Statements für Update, Insert und Delete selbst schreiben? Gruß Kostas |
AW: UniDAC, editierbare Query mit Join geht das?
Hinterlege die entsprechenden Abfragen in den Eigenschaften .InsertSQL, .UpdateSQL, .DeleteSQL
|
AW: UniDAC, editierbare Query mit Join geht das?
Zitat:
meine Anfrage ist ja noch Warm und schon eine Antwort! Muss ich das SQL selbst schreiben, oder wird es automatisch generiert? Gruß Kostas |
AW: UniDAC, editierbare Query mit Join geht das?
Bei IBDAC kann man sich die Abfrage generieren lassen, sollte dan bei UniDAC genauso sein
|
AW: UniDAC, editierbare Query mit Join geht das?
Besten Dank Markus.
|
AW: UniDAC, editierbare Query mit Join geht das?
Ein Doppelklick auf die UniQuery Komponente und dann zum Reiter "Generale SQL", der baut alles für Dich
|
AW: UniDAC, editierbare Query mit Join geht das?
@Kostas: Off-Topic: Der Kostas, der vor VIELEN Jahren beim ersten Firebird-Barbecue in Freiburg mit dabei war? Wenn ja: Schön von dir zu hören!
|
AW: UniDAC, editierbare Query mit Join geht das?
Zitat:
genau der immer noch der gleiche. Ich freue mich auch von dir zu hören. Ich schreibe dir später eine PN. Gruß Kostas |
AW: UniDAC, editierbare Query mit Join geht das?
Bitte noch eines zu UniDAC,
ist es auch möglich zur Laufzeit das WHERE zu erweitern? Bei IBO schreibe ich in der TIB_Query z.B.:
Code:
TIB_DataSource hat ein Event OnPrepareSQL. Da schreibe ich z.B.:
SELECT ADRESSID, FIRMA, STRASSE, PLZ, ORT
FROM ADRESSEN WHERE PLZ = :PLZ
Code:
Ich kann also zur Laufzeit das Where beliebig erweitern.
with qrAdressen.SQLWhereItems do
begin if (edFirmaSuchen.txt <> '') then add('FIRMA CONTAINING '' + edFirmaSuchen.txt + '''); end;{with} Für den Aufruf führe ich das aus:
Code:
Dabei wird das Where in dem SQL mit dem erweiterten Bedingungen gemischt.
qrAdressen.InvalidateSQL;
qrAdressen.refresh; Es entsteht also:
Code:
WHERE PLZ = :PLZ
AND FIRMA CONTAINING 'blablabla' Gruß Kostas |
AW: UniDAC, editierbare Query mit Join geht das?
Grundsätzlich geht das Anhängen natürlich
Delphi-Quellcode:
Allerdings fehlt das Ereignis in der DataSource.
with qrAdressen.SQL do
begin if (edFirmaSuchen.txt <> '') then add('FIRMA CONTAINING '' + edFirmaSuchen.txt + '''); end;{with} Ich würde es aber eher so Lösen:
SQL-Code:
SELECT ADRESSID, FIRMA, STRASSE, PLZ, ORT
FROM ADRESSEN WHERE PLZ = :PLZ and ( :firma = '' or :firma is null or FIRMA CONTAINING = :firma); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:19 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