Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.07.31;
Скачать: CL | DM;

Вниз

Как сделать reset MemTable   Найти похожие ветки 

 
mefodiy   (2011-04-26 12:15) [0]

Использую таблицу от AnyDAC TADMemTable для создания временных таблиц. Нужные мне поля создаю следующим образом
       with FieldDefs do
       begin
         Clear;
         Add("Field1", ftDate,   0,False);
         Add("Field2", ftString,10,False);
         ..........
       end;
Все нормально работает. Но после использования, когда я закрываю таблицу командой Close, определяю новый набор полей и хочу использовать таблицу заново, вылетает ошибка с названием одного из предыдущих полей о том, что это поле отсутствует в списке. Разве FieldDefs.Clear не очищает этот список. В общем, что нужно сделать, чтобы использовать таблицу с разным набором полей и избежать этой ошибки. Спасибо.


 
OW ©   (2011-04-26 12:39) [1]

не AnyDAC правда, а ODAC
но все работает

var
 s:string;
begin
 s := "F" + IntToStr(Random(100)+1);
 vt1.FieldDefs.Clear;
 vt1.AddField(s, ftString, 20, true);
 vt1.Open;
 vt1.Append;
 vt1.FieldByName(s).Value := "Val" + s;
 vt1.Post;
 vt1.Close;
 vt1.Open;
 ShowMessage( vt1.FieldByName(s).AsString );
 vt1.Close;


 
oldman ©   (2011-04-26 12:40) [2]

Fields.Clear не?


 
mefodiy   (2011-04-26 13:49) [3]

>Fields.Clear приводит к зависанию

>vt1.Close;
> vt1.Open;
В том то и дело, что я хочу открывать таблицу уже с другим набором поле, а не как у тебя.


 
Медвежонок ХМЛ ©   (2011-04-26 13:56) [4]

Надо не только поменять филдефсы но и имя таблицы. Ибо старая видимо еще жива и не убита. А новых полей в ней никто не создавал.


 
mefodiy   (2011-04-26 14:24) [5]

Как же менять имя в рантайме?


 
Медвежонок Пятачок ©   (2011-04-26 14:28) [6]

http://www.sql.ru/Forum/actualthread.aspx?bid=20&tid=714775&hl=


 
mefodiy   (2011-04-26 15:06) [7]

http://www.sql.ru/Forum/actualthread.aspx?bid=20&tid=714775&hl=

здесь говорится, что проблема разрешилась установкой новой версии. Но у меня версия AnyDAC 4.0.5, по-моему последняя. Что же делать?


 
Медвежонок Пятачок ©   (2011-04-26 15:09) [8]

ставить последнюю, вместо помоемупоследей


 
OW ©   (2011-04-26 15:14) [9]


> var
>  s:string;
> begin
>  s := "F" + IntToStr(Random(100)+1);
>  vt1.FieldDefs.Clear;
>  vt1.AddField(s, ftString, 20, true);
>  vt1.Open;
>  vt1.Append;
>  vt1.FieldByName(s).Value := "Val" + s;
>  vt1.Post;
>  vt1.Close;
>  vt1.Open;
>  ShowMessage( vt1.FieldByName(s).AsString );
>  vt1.Close;

это у меня на кнопке было,
естественно, по кнопке потыкал не один раз, прежде чем сказать сюда


 
mefodiy   (2011-04-26 15:33) [10]

Ответ в [3]


 
Медвежонок Пятачок ©   (2011-04-26 15:46) [11]

ну что за народ.
ну убей ты свой экземпляр мемтэйбл если clear приводит к зависанию.
создавая его динамически.


 
OW ©   (2011-04-26 15:56) [12]


> ну убей ты свой экземпляр мемтэйбл если clear приводит к
> зависанию.

не, а если на него, например, сорс смотрит какой или еще что, получится что надо и его (их) перенастроить


> Ответ в [3]
> я хочу открывать таблицу уже с другим набором поле, а не
> как у тебя.

второй раз кликнуть на кнопке - и будет другое поле.
более того, заранее неизвестное


 
mefodiy   (2011-04-26 17:57) [13]

Проблема оказалась в индексе, который я создавал при первой работе с таблицей. И ошибку он давал на название индексного поля.
У OW © все работает, так как нет индекса. Просто надо было перед созданием нового набора полей прописать
IndexName := "".
Может кому и пригодится.
Всем спасибо.


 
oldman ©   (2011-04-26 18:50) [14]


> Может кому и пригодится.
> Всем спасибо.


Никому не пригодится.
:)))
Оставить старые индексы на новую таблицу... Месье знает толк в извращениях!



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

Текущий архив: 2011.07.31;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
2-1303387044
stenfit
2011-04-21 15:57
2011.07.31
Incompatible types


15-1302679023
NailMan
2011-04-13 11:17
2011.07.31
Летающий трон


15-1302553798
Юрий
2011-04-12 00:29
2011.07.31
С днем рождения ! 12 апреля 2011 вторник


11-1227416394
Валера
2008-11-23 07:59
2011.07.31
Проблема с скриншотом экрана


2-1303813642
flincs
2011-04-26 14:27
2011.07.31
Как обрезать белые края изображения