Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 151

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Есть таблица с полями Indeks - char 10 и Contents - text 16. Хочу организовать поиск по этим полям с помощью Filter. Indeks берем из TEdit(edIndeks), Contents из TMemo(mmContents)
//формируется строка фильтра
function SearchRec: string;
var
s,s1:string;
begin
s:=''; s1:='';
if FSearch.edIndeks.Text<>'' then
begin
s1:='(Indeks='''+FSearch.edIndeks.Text+'*'')';
if s='' then s:=s1 else s:=s+' And '+s1;
end;
if FSearch.mmContents.Text<>'' then
begin
s1:='(Contents='''+FSearch.mmContents.Text+'*'')';
if s='' then s:=s1 else s:=s+' And '+s1;
end;
Result:=s;
end;
//фильтруем
Filter:=SearchRec;

Если заполнить только edIndeks, все работает(фильтрует по заданному Индексу). Но если заполнить mmContents, то выводит ошибку "Type mismatch in expression". Я думаю дело в формате text поля Contents в таблице.
Как правильно сформировать строку фильтра?

NadyaM Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: NadyaM (статус: Посетитель)
Вопрос отправлен: 24 мая 2012, 10:40
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 9; последнее сообщение — 25 мая 2012, 05:33; участников в обсуждении: 3.
min@y™

min@y™ (статус: Доктор наук), 24 мая 2012, 11:04 [#1]:

А если попытаться фильтровать только по Contents, то что будет?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
NadyaM

NadyaM (статус: Посетитель), 24 мая 2012, 11:22 [#2]:

Если фильтровать только по Contents выходит ошибка "Type mismatch in expression".
Если фильтровать только по Indeks,то все работает (если находит то выводит, если нет то пишет что нет таких записей).
Если фильтровать по обоим полям, то ошибка "Type mismatch in expression"
min@y™

min@y™ (статус: Доктор наук), 24 мая 2012, 13:10 [#3]:

Цитата (NadyaM):

Если фильтровать только по Contents выходит ошибка "Type mismatch in expression".

А чем тип поля Char отличается от типа поля Text? Спрашиваю, т.к. с базами данных никогда не работал.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
NadyaM

NadyaM (статус: Посетитель), 24 мая 2012, 14:18 [#4]:

Char - массив символов, Text - массив строк
min@y™

min@y™ (статус: Доктор наук), 24 мая 2012, 14:37 [#5]:

Цитата (NadyaM):

Char - массив символов, Text - массив строк

Ну тогда понятно. Ты ж во вторую часть запроса тоже передаёшь массив символов (строку). Поэтому и Type mismatch (несовпадение типов).
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
NadyaM

NadyaM (статус: Посетитель), 24 мая 2012, 14:52 [#6]:

Да, я понимаю. Но как правильно написать?
min@y™

min@y™ (статус: Доктор наук), 24 мая 2012, 15:10 [#7]:

Цитата (NadyaM):

Да, я понимаю. Но как правильно написать?

Откуда ж я знаю?

Цитата (min@y™):

с базами данных никогда не работал.

Щас подойдёт, может, кто-нибудь, кто шарит в БД, и объяснит.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Егор

Егор (статус: 10-ый класс), 24 мая 2012, 18:42 [#8]:

что за база данных-то?
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
NadyaM

NadyaM (статус: Посетитель), 25 мая 2012, 05:33 [#9]:

SQL 7

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:39
Выполнено за 0.02 сек.