full_lamer |
Отправлено: 02.06.2005, 10:35 |
|
Машинист паровоза
Группа: Участник
Сообщений: 225
|
доброго времени суток!
есть такая проблема: когда нижеприведенная строка начинает исполняться дельфи сообщает об ошибке: "Invalid filter expression character: '.'".
CODE |
Data_mod.Spisok_nakladTable.Filter:='Data_nakladn >= ' + MaskEdit1.Text + ' and Data_nakladn <= ' + MaskEdit2.Text + ' and Kod_otd= ' + IntToStr(Number_otdela);
|
подскажите где ошибка или я что то не понимаю?
спасибо.
|
|
Semen |
Отправлено: 02.06.2005, 10:47 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 7
|
Возьми дату в апострофы — "'+Data+'"
Data_mod.Spisok_nakladTable.Filter:='Data_nakladn>=" ' + MaskEdit1.Text + '" and Data_nakladn <=" ' + MaskEdit2.Text + '" and Kod_otd= ' + IntToStr(Number_otdela); |
|
Guest |
Отправлено: 02.06.2005, 10:48 |
|
Не зарегистрирован
|
А можно увидеть строку после выполнения конкатенаций (так же как её видит фильтр)?
|
|
Semen |
Отправлено: 02.06.2005, 10:49 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 7
|
и проверь формат датаы т.к у тебя MaskEdit1.Text |
|
** full_lamer |
Отправлено: 02.06.2005, 10:58 |
|
Не зарегистрирован
|
вот так должен по идеи видит ее фильтр:
CODE | 'Data_nakladn >= 19.05.2005 and Data_nakladn <= 02.06.2005 and Kod_otd= 1' |
когда я ему в инспекторе предлагаю он его съедает, а в коде плюется, и кричит ошибка...
Я тож сначала думал форматы даты, но на это он тоже плюется:
CODE | Data_mod.Spisok_nakladTable.Filter := 'Data_nakladn >= ' + DateToStr(Date()); | |
|
Admin |
Отправлено: 02.06.2005, 11:01 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Попробуйте у строковых значений поставить " (двойные кавычки)
что-то типа:
CODE | Data_mod.Spisok_nakladTable.Filter:='Data_nakladn >= "' + MaskEdit1.Text + '" and Data_nakladn <= "' + MaskEdit2.Text + '" and Kod_otd= "' + IntToStr(Number_otdela)+ '"';
|
Отредактировано Admin — 02/06/2005, 11:02
|
|
** full_lamer |
Отправлено: 02.06.2005, 11:06 |
|
Не зарегистрирован
|
2Admin
так тоже делал, но при этом он ругается уже на кавычки...
а ни кто не помнит ASCII код апострофа? |
|
Guest |
Отправлено: 02.06.2005, 11:12 |
|
Не зарегистрирован
|
вот так должен по идеи видит ее фильтр: ......
А если без идеи
ShowMessage ("Data_nakladn>= " + MaskEdit1.Text + " and Data_nakladn <= " + MaskEdit2.Text + " and Kod_otd= " + IntToStr(Number_otdela));
А типы полей (как заметил Admin) правильные? Date и Num?
|
|
** avtoritet |
Отправлено: 02.06.2005, 11:16 |
|
Не зарегистрирован
|
Исправь:
Data_mod.Spisok_nakladTable.Filter := 'Data_nakladn>= ' + DateToStr(Date());
На:
Data_mod.Spisok_nakladTable.Filter := "Data_nakladn>= "+"'"+Date()+"'";
Исходя из своего опыта — это должно работать! Удачи!
|
|
Guest |
Отправлено: 02.06.2005, 11:20 |
|
Не зарегистрирован
|
QUOTE |
а ни кто не помнит ASCII код апострофа?
|
39 0x27 |
|
Guest |
Отправлено: 02.06.2005, 11:20 |
|
Не зарегистрирован
|
или 96 0x60 |
|
** avtoritet |
Отправлено: 02.06.2005, 12:32 |
|
Не зарегистрирован
|
to full_lamer:
Ты хоть расскажи нам, как там у тебЯ дела обстоят по этому вопросу!
Нам уж тоже стало интересно! |
|
AVC |
Отправлено: 02.06.2005, 12:57 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
А еще лучше — прицепите к сообщению свой файл парадоксовский (или несколько несекретных строк) |
|
** full_lamer |
Отправлено: 02.06.2005, 14:04 |
|
Не зарегистрирован
|
погодите пару минут... я отъезжал пообедать... |
|
Guest |
Отправлено: 02.06.2005, 14:13 |
|
Не зарегистрирован
|
2avtoritet
это Дельфи не билдер...
2All
короче, дело было в следующем, найдите 4 отличия от предыдущего кода:
CODE | Data_mod.Spisok_nakladTable.Filter:='Data_nakladn >=' + chr (39) + MaskEdit1.Text + chr (39) + ' and Data_nakladn <= ' + chr (39) + MaskEdit2.Text + chr (39) + ' and Kod_otd = ' + IntToStr(Number_otdela); |
вообщем я так и подозревал...
все спасибо. |
|