Тип TfrADOQuery

отредактировано 16:43 Раздел: FastReport 2.xx VCL
Здравствуйте.
Подскажите, пожалуйста, запрос (TfrADOQuery) не успевает выполниться, как увеличить время CommandTimeout.

Комментарии

  • отредактировано 16:43
    увеличение adoconnection.commandtimeout мне не помогло, поэтому я правил adodb.pas :

    constructor TCustomADODataSet.Create(AOwner: TComponent);
    begin
    inherited Create(AOwner);
    FCommand := TADOCommand.Create(Self);
    FCommand.ComponentRef := Self;
    <span style='color:red'> FCommand.CommandTimeout:=600;</span> FIndexDefs := TIndexDefs.Create(Self);
    FModifiedFields := TList.Create;
    FIndexFields := TList.Create;
    FCursorType := ctKeyset;
    FLockType := ltOptimistic;
    FCursorLocation := clUseClient;
    FCacheSize := 1;
    CommandType := cmdText;
    NestedDataSetClass := TADODataSet;
    FMasterDataLink := TMasterDataLink.Create(Self);
    MasterDataLink.OnMasterChange := MasterChanged;
    MasterDataLink.OnMasterDisable := MasterDisabled;
    EnableBCD := True;
    end;

  • отредактировано 16:43
    nomad написал:
    увеличение adoconnection.commandtimeout мне не помогло, поэтому я правил adodb.pas :

    constructor TCustomADODataSet.Create(AOwner: TComponent);
    begin
    inherited Create(AOwner);
    FCommand := TADOCommand.Create(Self);
    FCommand.ComponentRef := Self;
    <span style='color:red'> FCommand.CommandTimeout:=600;</span> FIndexDefs := TIndexDefs.Create(Self);
    FModifiedFields := TList.Create;
    FIndexFields := TList.Create;
    FCursorType := ctKeyset;
    FLockType := ltOptimistic;
    FCursorLocation := clUseClient;
    FCacheSize := 1;
    CommandType := cmdText;
    NestedDataSetClass := TADODataSet;
    FMasterDataLink := TMasterDataLink.Create(Self);
    MasterDataLink.OnMasterChange := MasterChanged;
    MasterDataLink.OnMasterDisable := MasterDisabled;
    EnableBCD := True;
    end;
    Спасибо, но это слишком круто!!!
    Проще способа нет? ;)
  • отредактировано 16:43
    Похоже, в FR2.x такое не предусмотрено. Конечно, править исходники компонентов плохо. Но из двух зол я выбрал исправление исходников FR. Вот как:

    procedure TfrADODataSet.SetPropValue(Index: String; Value: Variant);
    var
    d : TADOConnection;
    begin
    inherited SetPropValue(Index, Value);
    Index := AnsiUpperCase(Index);
    if Index = 'NAME' then
    begin
    FDataSource.Name := 'S' + FDataSet.Name;
    FDBDataSet.Name := '_' + FDataSet.Name;
    end
    else if Index = 'ACTIVE' then
    FDataSet.Active := Value
    else if Index = 'DATABASE' then
    begin
    FDataSet.Close;
    d := frFindComponent(FDataSet.Owner, Value) as TADOConnection;
    FDataSet.Connection := d;
    <span style='color:red'>FDataSet.CommandTimeout:=FDataSet.Connection.CommandTimeout;</span>
    end
    else if Index = 'FILTER' then
    begin
    FDataSet.Filter := Value;
    FDataSet.Filtered := Trim(Value) <> '';
    end
    else if Index = 'ENABLEBCD' then
    FDataSet.EnableBCD := Value
    end;
  • отредактировано March 2010
    Проблема решена

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.