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

Вниз

Как сделать 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
15-1302772506
Дмитрий С
2011-04-14 13:15
2011.07.31
Какова вероятность, что два случайных числа равны.


15-1302090541
oxffff
2011-04-06 15:49
2011.07.31
AfterConstruction, beforedestruction у record


2-1303387044
stenfit
2011-04-21 15:57
2011.07.31
Incompatible types


2-1303502928
istok
2011-04-23 00:08
2011.07.31
EndOfTheDay...


15-1302303058
Германн
2011-04-09 02:50
2011.07.31
Build vs Compile





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский