Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - wiederkehrende Prozeduren
Josef-B - Fr 11.07.03 16:20
Titel: wiederkehrende Prozeduren
Wie programmiert man eigentlich am besten Programmteile, die öfter gleich vorkommen
z.B. ne Select-Abfrage
Als eigene Prozeduren?
Ist es richtig, dass man bei diesen die Variablen und Objecte (z.B. IBQuery) extra deklarieren muss?
Oder über eine extra Unit?
Ich habe mal bei Doberenz/Kowalski gelesen, ist mir aber noch nicht richtig klar.
Danke
CenBells - Fr 11.07.03 17:40
Hallo,
ja, also ich habe meine anfragen in ein objekt gekapselt. Ein select statement, daß mir dann eine datenmenge zurückliefern soll sieht dann so aus.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| function TCBDBLink.getQuery(ASQLStatement: String; ATransaction: TIBTransaction = nil; AErrorMessage: String = ''; ASilent: Boolean = FALSE): TIBQuery; var LTransaction: TIBTransaction; begin try result := TIBQuery.Create(nil); result.Database := self; if not assigned(ATransaction) then begin LTransaction := getTransaction; result.Transaction := LTransaction; end else Result.Transaction := ATransaction; result.SQL.add(ASQLStatement); result.Prepare; result.Open; except on E: Exception do begin if not ASilent then MessageDlg( AErrorMessage + #13#10#13#10 + 'Folgende Meldung:'#13#10#13#10 + E.Message + #13#10#13#10 + ASQLStatement, mtError, [mbOk], 0); if LTransaction.InTransaction then LTransaction.Commit; if Assigned(LTransaction) then FreeAndNil(LTransaction); if assigned(result) then FreeAndNil(result); end; end; end; |
Ein aufruf sieht dann immer so aus
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure WasWeissIch; var ... LQuery: TIBQuery; begin ... LQuery := GCBDBLink.getQuery('SELECT * FROM TABELLE_E'); ... end; |
Gruß
KEn[/delphi]
grayfox - Fr 11.07.03 17:43
hallo josef!
ganz versteh ich dein anliegen nicht, aber wir werden uns schon zusammenraufen ;)
für selectabfragen, die du öfters benötigst, kannst ohne weiteres eigene proceduren einrichten.
meinst du sowas in der art?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| {$UNTESTED} procedure TForm1.QueryShowAll(Query: TQuery); begin with Query do begin Close; SQL.Clear; SQL.Add(Select * from tabelle); Open; end end; |
gleich eine eigene unit dafür zu erstellen finde ich übertrieben
| Zitat: |
Ist es richtig, dass man bei diesen die Variablen und Objecte (z.B. IBQuery) extra deklarieren muss?
|
was meinst denn damit :?
mfg, stefan
Josef-B - Fr 11.07.03 18:49
Hallo Stefan,
ja genausowas meinte ich,
Wie wird denn jetzt deine Prozedur aufgerufen?
grayfox - Fr 11.07.03 19:36
hallo josef!
freut mich, dass ich es gleich auf anhieb erraten hab, was du meinst ;)
das ist aber nicht dein ernst, oder? *gg*
:lol:
| Zitat: |
Wie wird denn jetzt deine Prozedur aufgerufen?
|
du könntest die procedure zb mit
Delphi-Quelltext
1:
| QueryShowAll(Name_Deiner_Query); |
aufrufen. ich dachte, das geht eh aus dem procedurenamen hervor...
mfg, stefan
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!