![]() |
Datenbank: Firbird • Version: 1.5 • Zugriff über: Fibplus
Fibplus Dataset / SQL ändern
Hallo zusammen
versuche momentan die SQL's eines Datasets zu ändern. 1. Es wird der SQL-String definiert
Delphi-Quellcode:
2. Der SQL-String soll wird "verwendet"
procedure TDM_hospital.dataset_sql_setup(Sender: TObject);
begin sql_string_default := 'SELECT * FROM HOSPITAL '+ 'WHERE (STAT_DEL ='+'0'+') ORDER BY NAME'; end;
Delphi-Quellcode:
Leider lässt sich das Dataset nicht aktualisieren und behällt immer die "alten" Daten drin.
procedure TDM.dataset_setup(Sender: TObject);
begin DB_Gideons.Open; with Default do begin close; SelectSQL.Clear; SelectSQL.Add (sql_string_default); GenerateSQLs; Open; end; end; bin für Tipps dankbar. Manfred |
Re: Fibplus Dataset / SQL ändern
Was ist denn Default?
|
Re: Fibplus Dataset / SQL ändern
Zitat:
|
Re: Fibplus Dataset / SQL ändern
Warum machst du das Ganze nicht über den SQL-Experten von FIBPlus, sprich über den Objektmanager?
|
Re: Fibplus Dataset / SQL ändern
Zitat:
Zitat:
|
Re: Fibplus Dataset / SQL ändern
Zitat:
Dieser soll mit dem obigen ausgewechslet werden. inkl. select / insert / delete / refresh / update Deshalb auch die Option > GenerateSQLs;
SQL-Code:
Manfred
SELECT
* FROM HOTEL WHERE (STAT_DEL CONTAINING '0') ORDER BY NAME Hoffe die Brille passt .. :drunken: |
Re: Fibplus Dataset / SQL ändern
Zitat:
Delphi-Quellcode:
Sorry ..wollt Dir ja net uffn Schlips treten *g* Kleines Mis(t)verstaendnis :cheers:
procedure TDM_hospital.dataset_sql_setup(Sender: TObject);
begin sql_string_default := 'SELECT * FROM HOSPITAL '+ 'WHERE (STAT_DEL ='+'0'+') ORDER BY NAME'; end; [Edit] Schlip(p)s Korrektur..lt. Deddy *g* [/Edit] |
Re: Fibplus Dataset / SQL ändern
Zitat:
die überlegung geht dahin das ein Dataset verwendet wird und bei auswahl einer anderen Sparte "einfach" die SQLs ausgetauscht werden. Manfred |
Re: Fibplus Dataset / SQL ändern
@Kaki: ich fühle mich nicht auf den Schlips getreten (kennst mich doch :cheers:)
@Manfred: Dein Code ist ein wenig unübersichtlich, sry. Ist sql_string_default eine globale Variable? Und wird vor dem TDM.dataset_setup auch ein TDM_hospital.dataset_sql_setup durchgeführt? Schließlich handelt es sich um 2 unterschiedliche Methoden. |
Re: Fibplus Dataset / SQL ändern
Zitat:
beim aufrufen der Form werden im FormShow bei Befehle aufgeruffen
Delphi-Quellcode:
hier noch der complette Code.
procedure Tfrm_hotel.FormShow(Sender: TObject);
begin DM_hotel.dataset_sql_setup(Sender); DM.dataset_setup(Sender); >> Dein Code ist ein wenig unübersichtlich, sry. Wenn Du mir sagen könntest wie ich dies übersichtlicher erstellen kann bitte teile mir dies mit. Lerne gerne immer was dazu. :coder2:
Delphi-Quellcode:
procedure TDM_hospital.dataset_sql_setup(Sender: TObject);
begin sql_string_default := 'SELECT * FROM HOSPITAL '+ 'WHERE (STAT_DEL ='+'0'+') ORDER BY NAME'; sql_string_default_c := 'SELECT * FROM HOSPITAL_C WHERE ID_AREA = ?ID ORDER BY C_NAME'; sql_string_default_d := 'SELECT * FROM HOSPITAL_D WHERE ID_AREA = ?ID ORDER BY D_DATE DESC'; sql_string_default_dd := 'SELECT * FROM HOSPITAL_DD WHERE ID_D = ?ID ORDER BY BIBLE_TYPE'; sql_string_default_s := 'SELECT * FROM HOSPITAL_S'; end;
Delphi-Quellcode:
procedure TDM.dataset_setup(Sender: TObject);
begin DB_Gideons.Open; with Default do begin close; SelectSQL.Clear; SelectSQL.Add (sql_string_default); GenerateSQLs; Open; end; with Default_D do begin close; SelectSQL.Clear; SelectSQL.Add (sql_string_default_d); GenerateSQLs; Open; end; with Default_DD do begin close; SelectSQL.Clear; SelectSQL.Add (sql_string_default_dd); GenerateSQLs; Open; end; with Default_C do begin close; SelectSQL.Clear; SelectSQL.Add (sql_string_default_c); GenerateSQLs; Open; end; with Default_S do begin close; SelectSQL.Clear; SelectSQL.Add (sql_string_default_s); GenerateSQLs; Open; end; end; |
Re: Fibplus Dataset / SQL ändern
Also, die "Default*"-Dinger sind die Datasets, richtig? Wie ich schon sagte, ich kenne FibPlus leider nicht, aber woran erkennst Du, dass die Änderungen nicht übernommen werden? Gibt es eine Fehlermeldung oder wird die Anzeige (z.B. in einem DBGrid) nicht refreshed?
|
Re: Fibplus Dataset / SQL ändern
Also ich würde, speziell da es sich auch um unterschiedliche Tabellen handelt, auf denen die Abfragen laufen, für jede Abfrage ein separates DataSet nehmen und dann je nach Bedarf z.B. die Verknüpfung beim DataSource oder den Nachfolgekomponenten ändern.
Und wenn ich deine Code richtig deute, addest du in TDM.dataset_setup nacheinander die ganzen SQLs, nachdem du jeweils das vorhergehende wieder gelöscht hast. Dann steht auf jeden Fall zum Schluß immer das gleiche drinnen. |
Re: Fibplus Dataset / SQL ändern
@ DeddyH: Die Fehlermeldung erscheint inder Anwendung.
@ Der Jan: Zitat:
Zitat:
Bin gerade am überlegen ob ich wieder zu der vorigen lösung mit separaten Datasets wechsle... :gruebel: Manfred |
Re: Fibplus Dataset / SQL ändern
Ah ja, sry, hatte die _C, _d, etc, übersehen... Ich würde dir aber auf jeden Fall empfehlen, wieder separate Datasets zu nehmen....
|
Re: Fibplus Dataset / SQL ändern
Hallo Jan
Danke für Dein Feedback. :dp: Shalom Manfre |
Re: Fibplus Dataset / SQL ändern
Hallo manfred_h
der Beitrag ist schon etwas älter, aber ich beschäftige mich gerade selber mit diesem Problem, aber vielleicht kann ich Dir einen Tipp geben.
Delphi-Quellcode:
Vor dem Aufruf von GenerateSQLs muss Dataset erst geöffnet werden.
SelectSQL.Add (sql_string_default);
GenerateSQLs; Open;
Delphi-Quellcode:
Ich weis nicht ob es noch hilft, aber vielleicht kannst Du es ja mal probieren.
SelectSQL.Add (sql_string_default);
Open; GenerateSQLs; Bis bald Chemiker |
Re: Fibplus Dataset / SQL ändern
Hallo Chemiker
Danke für die Info. Habe das Design aber inzwischen wieder zurückgestellt. Werde mir Deine Vorschläge aber für das nächste mal merken. Danke für Deine Hilfe Shalom Manfred |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:08 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