AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

is Operator macht kommische Dinge

Ein Thema von QuickAndDirty · begonnen am 16. Mai 2007 · letzter Beitrag vom 16. Mai 2007
 
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.890 Beiträge
 
Delphi 12 Athens
 
#1

is Operator macht kommische Dinge

  Alt 16. Mai 2007, 08:23
Hallo,
der Is Opperator macht bei mir in einer Procedur seltsame Dinge .
Er meldet Value is TStrings = true obwohl ich ein TMemoField übergebe.

Die aufrufende Prozedur der aufrufenden Prozedur der Prozedur mit dem Problem.
Delphi-Quellcode:
procedure TSD_Ressourcengruppen.RecalcList;
var
  OldC: TCursor;
begin
  OldC := Screen.Cursor;
  Screen.Cursor := crHourglass;
  try
    with T_RGIT do
    begin
      First;
      while not EOF do
      begin
        Delete;
        Refresh;
        First;
      end;
    end;

    with CalcQuery do
    begin
      Close;
      SQL.Assign(T_Data.FieldByName('SQL_')); /// <<<<<<<<<<< Das ist der Aufruf
      if SQL.Count = 0 then
      begin
        raise Exception.Create({$IFDEF TRANSLATION}TransLateString{$ENDIF}('Die Liste konnte nicht berechnet werden, da keine Auswahl vorhanden ist'));
      end;
      Open;
      First;
      while not EOF do
      begin
        with T_RGIT do
        begin
          Append;
          FieldByName('RGrp_ID').AsInteger := T_DataID.Value;
          FieldByName('RTyp_ID').AsInteger := 1;
          FieldByName('RID').AsInteger := CalcQuery.FieldByName('ID').AsInteger;
          Post;
        end;
        Next;
      end;
    end;
  finally
    Screen.Cursor := OldC;
  end;
end;
Die aufrufende Prozedur der Prozedur mit dem Problem
Delphi-Quellcode:
Procedure TVTableStringlist.Assign(Source:TPersistent);
Begin
  if assigned(Owner.MyDataset) and not DBProvide.SetSQL(owner.MyDataSet,TStrings(Source),owner.DataSetType,owner.DatabaseType) then
    Raise ECouldNotSetProperty.Create('TVTabelStringlist.Assign konnte nicht ausgeführt werden.');
end;
Hier der betroffene Code.
Delphi-Quellcode:
Function SetSQL(aDataSet:TDataset;Value:TStrings;DataSetType:TDataSetType; db: TDBType=dtDEFAULT):Boolean;
var ERRRec:TSerializedDBEngineError;
   astrings:TStringlist;
Begin
  astrings := tstringlist.create;
  try
    if Value is TStrings then // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<HIER PASSIERT DIE GESCHICHTE
      aStrings.AddStrings(Value)
    else
      aStrings.Assign(Value);

    ERRREC.Occured := false;
    result := false;
    if db = dtDefault then
      db := DefaultDB;
    case db of
      dtDefault: showmessage('DefaultDB darf nicht dtDEFAULT sein.');
      dtBDE: Case Datasettype of
               dstQuery: Result := SetSQLBDE_QRY(ERRREC,aDataset,aStrings);
             end;
      dtDBI: ;//DBISAM not ready
      dtDBX: ;//DBX
    end;
  finally
    astrings.Free;
    astrings := nil;
  end;
  DBrsError(ERRREC);
end;
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 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