Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi with Syntax korrekt ??? (https://www.delphipraxis.net/51194-syntax-korrekt.html)

spacewolf 8. Aug 2005 07:57


with Syntax korrekt ???
 
Ist eigendlich die folgende Syntax so korrekt:

Delphi-Quellcode:
 if dbtyp = 0 then with ibqImage  do
 if dbtyp = 1 then with such_Query do
 begin
   Close;
   SQL.Text := 'SELECT * FROM tabelle'
   Open;
 end;
Ich mein ich hab zwei "gleiche" Datenbanken im unterschiedlichen Format, einmal Access und einmal als Interbase...
Die Access bekomme ich über die BDE und Interbase (Firebird) über die IBX Kompos... Aber mal brauch ichs so und mal so...
Wollte mir viele Programmzeilen ersparen und irgendwie find ich's auch eleganter ;-)

Was meint ihr ist das hier korrekt ??? (compilieren tuts auch ;-)

euer Andreas der CodeKnecht ;-)

Robert_G 8. Aug 2005 08:00

Re: with Syntax korrekt ???
 
Du wirst immer die Member des letzten with Blockes verwenden.
Also such_Query.

Willst du sie zusammenfassen suche einen kleinsten gemeinsamen Nanner oder nehme Interfaces. ;)

spacewolf 8. Aug 2005 08:20

Re: with Syntax korrekt ???
 
wenn ich zusammenfasse per TDataSet so kann ich kein SQL mehr verwenden...

aber wie geht das denn mit den Interfaces :?:

Tät mich grad brennend interessieren ?!?!

:zwinker: Andreas

marabu 8. Aug 2005 08:21

Re: with Syntax korrekt ???
 
Hallo Andreas,

zusätzlich zum Hinweis von Robert noch folgendes. Der gemeinsame Vorfahr beider Queries ist TDataSet und der stellt alle Methoden und Eigenschaften zur Verfügung um mit fertigen Queries zu arbeiten. Das Aufsetzen einer Query mit SQL ist spezifisch.

Dein Code tut nicht das, was du eigentlich willst, weil es keine conditional with blocks gibt.

Delphi-Quellcode:
var
  ds: TDataSet;

begin
  if dbtyp = 0 
    then ds := ibqImage
    else ds := such_query;

  ...

  ds.Close;
  if ds is TADOQuery
    then TADOQuery(ds).SQL.Text := sqlText
    else TIBQuery(ds).SQL.Text := sqlText;
  ds.Open;

  ...
end;
Grüße vom marabu

spacewolf 8. Aug 2005 08:32

Klick und es ward "Licht"...
 
Klick und es ward "Licht"... Da legte doch gerade jemand einen Schalter in meinem Kopf rum... :nerd:

:dp:

Da sieht der Source so richtig proefessionell aus... :cyclops: erfreue mich jetzt erst einmal dran und probiere es fleißig aus ;-)

Vielleicht werde ich noch mal n richtiger Delphi Programmierer :coder:


Danke euch beiden :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:42 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