![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в реальном времени добавить поля в таблицу? [D6, D7, Paradox]
ZHK © (2004-08-02 16:39:00)Здравствуйте, господа. Чет я совсем плохой стал, видимо. Есть два DBGrid В каждом - открытая таблица. В первом я ввожу сисок полей второго. Естественно, что при добавлении записи в первый, она сразу же должна отображаться как поле во втором. Навертел чет несуразное, вот такое:
procedure TForm2.Table1BeforeInsert(DataSet: TDataSet);
var
I,J:Integer;
P:Pointer;
begin
if NGoing then Exit;
Table1.DisableControls;
NGoing:=True;
try
P:=Table1.GetBookmark;
Table1.First;
Table2.Edit;
I:=1;
while not Table1.Eof do
begin
if Table1.FieldByName('Size').AsInteger>0 then
begin
if Table2.FieldCount<=I then
Table2.FieldDefs.Add(Table1.FieldByName('Name').AsString,ftString,Table1.FieldByName('Size').AsInteger)
else
begin
Table2.Fields[I].FieldName:=Table1.FieldByName('Name').AsString;
Table2.Fields[I].Size:=Table1.FieldByName('Size').AsInteger;
end;
I:=I+1;
end;
Table1.Next;
end;
Table2.UpdateRecord;
while Table2.FieldCount>I do
Table2.FieldDefs.Delete(Table2.FieldCount-1);
Table1.GotoBookmark(P);
finally
Table1.EnableControls;
NGoing:=False;
end;
end;
Естественно, что ничего не добавляется. Добейте утопающего. :-)
Соловьев (2004-08-02 17:17:00) [1]
> Есть два DBGrid В каждом - открытая таблица. В первом я
> ввожу сисок полей второго. Естественно, что при добавлении
> записи в первый, она сразу же должна отображаться как поле
> во втором. Навертел чет несуразное, вот такое:
навртел не то слово... Зачем тебе БДГрид для отображения полей? И как это при добавлении записи, она(!!!) должна быть полем во втором гриде? Или это ты переворачиваешь данные?
http://www.delphikingdom.com/treasury/nxdbgrid.htm
ZHK (2004-08-02 16:41:00) [2]Ну, правда с
Table2.UpdateRecord;Я загнул наверное. Я ж записей-то не добавляю... В общем выкинул я ее, тем более, что ошибку выдает. :-)