Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Вниз

Последовательное открытие в АДОTABLE нескольких таблиц.   Найти похожие ветки 

 
Kacnep ©   (2005-10-07 12:21) [0]

День добрый! Как очистить поля созданые динамически?
Спасибо

dm.adot_Meh.Close;
s:="Access_Table_1";
with dm.adot_Meh do begin
 if FieldDefs.Count>0 then for row:=FieldDefs.Count-1 downto 0 do Fields[row].Free;
 FieldDefs.Clear;  --- пытаюсь очистить поля от предыдущей таблицы
 TableName:=s;  --- указываю с какой табл буду работать
 FieldDefs.Update; --- получаю список полей в датасет {!!!! вот тут при открытии втрой таблицы вылетает ошибка}
 for row:=0 to FieldDefs.Count-1 do begin
    FieldDefs.Items[row].CreateField(dm.adot_Meh);  -- создаю поля из датасета динамически
 end;
 Open; -- открываю набор данных
end;
 s:="ТАБЛИЦА2"
ПОВТРОИТЬ КОД СНАЧАЛА НО С ДРУГОЙ ТАБЛИЦЕЙ.


 
msguns ©   (2005-10-07 12:33) [1]

Кроме FiledDefs есть еще Fields

Вообще-то при открытии датасета, в т.ч. и TADOTable, все это хозяйство заполняется автоматически. Чистить надо не датасет, а коллекцию колонок отображающего грида, используя метод Colums.RebuildColums


 
Kacnep ©   (2005-10-07 12:49) [2]

1. Если вы насчет этой строки
if FieldDefs.Count>0 then for row:=FieldDefs.Count-1 downto 0 do Fields[row].Free;
то пробовал вместо нее вот так
if Fields.Count>0 then for row:=Fields.Count-1 downto 0 do Fields[row].Free;

2.  Отображающий элемент... Его в коде нет... Он вернее идет потом и далеко! Сейчас разобраться бы с НД. :((
В общем Граждане! ГУРУ! Доки! Шаманы! Все кто знает как удалить поля из набора полей АДОТэйбла чтоб он был как только что добавленый на форму поможите чем можете. Я устал уже в потемках тыкаться. :(
в ДельфиВорд встретил даже такой совет
             for row:=Fields.Count-1 downto 0 do begin
               TC:=FindComponent(dm.adot_Meh.Fields[row].Name);
               if Assigned(TC) then begin
                 dm.adot_Meh.Close;
                 TC.Free;
                 dm.adot_Meh.Open;
               end;//if
             end;//for


 
Mike Kouzmine ©   (2005-10-07 13:25) [3]

А если не фри, а clear?


 
sniknik ©   (2005-10-07 13:37) [4]

непонятно зачем это нужно.
удалить то легко. вот это
Kacnep ©   (07.10.05 12:49) [2]
> if Fields.Count>0 then for row:=Fields.Count-1 downto 0 do Fields[row].Free;
должно сработать.

но зачем? если поля и так пересоздаются при открытии (при не заданности при разработке как постоянные), а если заданы то зачем их удалять? раз так сделано значит так надо.

и еще насчет TADOTable  
http://delphimaster.net/view/2-1128525012/


 
Kacnep ©   (2005-10-07 14:13) [5]

2 Майк
Клеар не освободит память :(

2 sniknik
Это делается для того чтобы потом ДОБАВИТЬ вычисляемое поле.
Если не импортировать  ДЕФ поля то калькулироемое поле заменит их. :(


 
sniknik ©   (2005-10-07 14:24) [6]

> 2 sniknik
> Это делается для того чтобы потом ДОБАВИТЬ вычисляемое поле.
> Если не импортировать  ДЕФ поля то калькулироемое поле заменит их. :(


> > if Fields.Count>0 then for row:=Fields.Count-1 downto 0 do Fields[row].Free;
> должно сработать.


 
msguns ©   (2005-10-07 14:28) [7]

>Kacnep ©   (07.10.05 14:13) [5]
>Это делается для того чтобы потом ДОБАВИТЬ вычисляемое поле.

О боже ! А зачем же так уродливо-то ?

>Если не импортировать  ДЕФ поля то калькулироемое поле заменит их. :(

Что подразумевается под словами "импортировать  ДЕФ поля" ?

ЗЫ. Блин, не пост, а ужастик какой-то Э8:[0]


 
Kacnep ©   (2005-10-07 14:31) [8]

Спасибо всем! После Ваших подтверждений стал искать ошибку в другом...
Фильтр был активирован... будь он неладен.
Спасибо еще раз.


 
Mike Kouzmine ©   (2005-10-07 15:26) [9]

Kacnep ©   (07.10.05 14:13) [5]
2 Майк
Клеар не освободит память :(

Kacnep ©   (07.10.05 12:21)  
День добрый! Как очистить поля созданые динамически?

Для очистки поля - clear, для освобождения памяти, конечно не подходит.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.2 c
4-1127196661
EgorovAlex
2005-09-20 10:11
2005.11.20
Осваиваю ADSI и не получается из группы её членов получить.


4-1126864296
Still Swamp
2005-09-16 13:51
2005.11.20
Необходимо из сервиса запустить интерактивный EXE.


1-1130404644
Walker
2005-10-27 13:17
2005.11.20
Интерфейс: построитель выражений


2-1130945018
DroNIX
2005-11-02 18:23
2005.11.20
Заменить все заглавные буквы в предложении на АБ


2-1131205639
zero-g
2005-11-05 18:47
2005.11.20
Вопрос по Image





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский