creater |
Отправлено: 25.09.2003, 06:38 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 120
|
Народ подскажите насчет фильтра?!
Есть БД, которую при выборе определенного пункта меню нужно отображать в соответствии с фильтром.
Фильтр срабатывает только один раз и в StaticText1 отображается выбранный пункт меню (вместо того чтобы его отображать вместе со словом Дополнение), а после повторного выбора того же пункта отображается "Дополнение | Выбранный пункт меню,
(именно с одной кавычкой) и фильтр уже не работает.
Есть функция которая вызывается при выборе пункта меню.
Функции передается параметр присвоенный определенной записи БД.
char *metka;
AnsiString m_sql;
void __fastcall update_my_tablya(char *met)
{
metka = strcat(met, "\"");
m_sql = strcat("S_MNU=\"", metka);
Form1->DBISAMTable1->Filtered=false;
Form1->DBISAMTable1->Filter = m_sql;
Form1->DBISAMTable1->Filtered=true;
}
void __fastcall TForm1::N11Click(TObject *Sender)
{
update_my_tablya("101");
Form1->StaticText1->Caption=" Дополнение |"+Form1->N11->Caption;
}
S_MNU — поле БД
Подскажите в чем пожет быть проблема?
Конечно есть большое предположение относительно типа переменных, но что-то ничего не получается.
Заранее большое спасибо. |
|
Георгий |
Отправлено: 25.09.2003, 08:53 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
возможно имеет место не корректная работа с памятью.
мне не нравится:
QUOTE | metka = strcat(met, "\"");
m_sql = strcat("S_MNU=\"", metka);
|
попробуй заменить на:
CODE | AnsiString metka;
metka=AnsiString(met)+"\"";
m_sql=AnsiString("S_MNU=\"")+metka; | |
|
creater |
Отправлено: 25.09.2003, 11:37 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 120
|
QUOTE (Георгий @ 25/09/2003, 09:55) | возможно имеет место не корректная работа с памятью.
мне не нравится:
QUOTE | metka = strcat(met, "\"");
m_sql = strcat("S_MNU=\"", metka);
|
попробуй заменить на:
CODE | AnsiString metka;
metka=AnsiString(met)+"\"";
m_sql=AnsiString("S_MNU=\"")+metka; |
|
Просто супер!!! Все работает.
Огромное человекческое спасибо
ЗЫ: Да, в дельфях проблем вообще не было... |
|
Георгий |
Отправлено: 25.09.2003, 21:43 |
|
Почетный железнодорожник
Группа: Модератор
Сообщений: 874
|
Эх... Конечно все заработало... Иначе и быть не могло... Но в следующий раз учти, что си — это в первую очередь работа с памятью, а так как ты с паскаля пересел, то лучше используй чистый C++ т.е. классы, классы и ещё раз классы, а указатели пока не трогай. |
|