Einzelnen Beitrag anzeigen

etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#1

Wie richtig auf bestimmten Satz in Db prüfen

  Alt 10. Sep 2005, 09:29
Datenbank: Ole Db Server • Zugriff über: ADO
Hallo zusammen

Bis jetzt habe ich immer so in einer Tabelle überprüft ob ein bestimmter Satz vorhanden ist.
Delphi-Quellcode:
var
  aBad, aBad2:TBetterADODataSet;
  ...
  try
    aBad2:=TBetterADODataSet.Create(Self);
    with aBad2 do
    begin
       Connection:=acn;
       CommandText:='select * from KompOptionen where ArtNr='+QuotedStr(aArtikelFurOption)+
                    ' and RelArtNr='+QuotedStr(pArtNr);
       Active:=True;

       if recordcount>=1 then
       begin
         //machwas
       end

       Close;
    end;//with Bad2 do
  finally
    aBad2.Free;
  end;//Try Bad2
  ...
da mir die viele codetipselei und ausserdem der notwendige Textblock echt auf den Zeiger ging habe ich mir eine andere Lösung überlegt die mit weniger geschreibe auskommt und kam auf das.

Delphi-Quellcode:
var
  sSQL : String;
  olev : Olevariant;
  aSet : _Recordset;
  ...
  sSql:=Format('Select * from VarianteZuPos where VariantenGruppe=(%s)',
              [QuotedStr(Caption)]);
  aSet:=Form1.acn.ConnectionObject.Execute(sSql,olev,0);
  if aSet.RecordCount < 1 then
  begin
  //Mach was ...
  end;
  aSet.Close;
  ...
Nun meine Fragen (Habe in Oh auch in Dp und gegoogelt aber nirgends antworten gefunden)

was haltet ihr generell davon
ist das stabil
wenn man den Typ _Recordset verfolgt erkennt man das irgend ein Interface dahintersteckt und kein Pascal Objekt wie schliesst man diese Resource wieder reicht da die close methode des recordsets oder wird da doch ein objekt erzeugt dass wieder freigegeben werden muss.
Kennt Ihr eine andere noch effektivere Methode auf das Vorhandenseins eines bestimmten Satzes zu prüfen?

Bin dankkbar für jede Meinung
  Mit Zitat antworten Zitat