Добавить Столбцы В Adoquery/adotable Программно

Тема в разделе "Delphi - Базы данных", создана пользователем Kurachev-danya, 11 июн 2014.

  1. Kurachev-danya

    Kurachev-danya New Member

    Регистрация:
    3 окт 2013
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте! У меня проблемка, не могу найти процедуру добавления нового вычесляемого столбца в адокуери. Такое вообще возможно?
     
  2. sinkopa

    sinkopa Well-Known Member

    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    А что мешает хелп почитать? :lovecodeby:
    Код (Delphi):
    type
    TForm1 = class(TForm)
    Query: TADOQuery;
    //...
    procedure QueryCalcFields(DataSet: TDataSet);
    private
    FCalc : TStringField;
    //...
    end;

    //...

    var
    i: Integer;
    begin
    with Query do begin
    Close;
    Prepared := False;
    Sql.Clear;
    Sql.Add('SELECT * FROM blabla_table');

    // ...

    Query.FieldDefs.Updated := false;
    Query.FieldDefs.Update;
    Query.Fields.Clear;
    for i := 0 to Query.FieldDefs.Count - 1 do begin
    if (Query.FindField(FieldDefs[i].Name) = nil) then
    Query.FieldDefs.Items[i].CreateField(Query);
    end;

    FCalc := TStringField.Create(Query);
    with FCalc do begin
    FieldName := 'new_calc_field';
    FieldKind := fkCalculated;
    Size := 100;
    DisplayWidth := 100;
    DisplayLabel := 'Новое вычисляемое поле';
    end;
    FCalc.DataSet := Query;
    Prepared := True;
    end;
    end;

    procedure TForm1.QueryCalcFields(DataSet: TDataSet);
    var
    A,B : TField;
    begin
    A := Query.FieldByName('bla_bla_1');
    B := Query.FieldByName('bla_bla_2');

    if (A <> nil) and (A <> nil) then
    FCalc.Value := IntToStr(A.AsInteger + B.AsInteger);
    end;
     
  3. cic

    cic New Member

    Регистрация:
    19 июн 2014
    Сообщения:
    3
    Симпатии:
    0
    Я вообще в шоке, что в делфи ещё кто то работает с базами данных :lovecodeby:
     
Загрузка...

Поделиться этой страницей