Форум: "Начинающим";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
ВнизAdotable.locate Найти похожие ветки
← →
anton773 © (2006-09-03 19:32) [0]Здравствуйте Мастера! Подскажите что я не так делаю.Пытаюсь организовать поиск по базе данных :
if not ADOTable1.Locate("текст", Edit1.Text, loCaseInsensitive,loPartialKey]) then
При этом не могу найти ни одной записи. даже по полному совпадению значений,не говоря уже о частичном совпадении значений.
ShowMessage("Запись не найдена");
← →
anton773 © (2006-09-03 19:33) [1]P.S база данных Access
← →
Desdechado © (2006-09-03 19:50) [2]Может, стоит почитать в справке про первый параметр метода, чтоб не лепить туда "текст".
← →
anton773 © (2006-09-03 21:09) [3]
> Может, стоит почитать в справке про первый параметр метода,
> чтоб не лепить туда "текст".
А разве первый параметр не имя поля по которому надо искать? Текст- имя поля P.S понимаю что зря дал русское имя но работать должно.
← →
anton773 © (2006-09-03 21:35) [4]неужели никто не знает
← →
Anatoly Podgoretsky © (2006-09-03 22:43) [5]У нас нет другой конференции ниже по уровню знаний.
← →
Antoxa2005 (2006-09-04 12:07) [6]Давно не пользовался, но вроде так:
ADOTable1.Locate("имя поля из ADOTable1", "строка поиска", [])
или может так понятнее
ADOTable1.Locate("где искать", "что искать", [])
← →
anton773 © (2006-09-04 21:17) [7]
> ADOTable1.Locate("имя поля из ADOTable1", "строка поиска",
> [])
А чем это отличается от того что делаю я?
← →
Anatoly Podgoretsky © (2006-09-04 21:48) [8]А как ты делаешь?
← →
anton773 © (2006-09-04 22:03) [9]
> А как ты делаешь?ADOTable1.Locate("text", Edit1.Text, loCaseInsensitive,loPartialKey]) ;
← →
Anatoly Podgoretsky © (2006-09-04 22:06) [10]И это у тебя еще и компилируется?
← →
anton773 © (2006-09-04 22:13) [11]
> И это у тебя еще и компилируется?
А почему не должно ;-)
← →
Palladin © (2006-09-04 22:15) [12]потому что одной квадратной скобки нехватает
← →
anton773 © (2006-09-04 22:17) [13]
> потому что одной квадратной скобки нехватает
это ее здесь нет.,а в коде все на месте.
← →
Anatoly Podgoretsky © (2006-09-04 22:20) [14]anton773 © (04.09.06 22:17) [13]
Про код где то там, можешь расказывать в другом месте, а хдесь мы обсуждаем приведеный код, который не откомпилируется.
Этв аозиция конечно очень удобная, где то там есть код, который правильный. Может быть, но сие нам не известно. И пока предмета для обсуждения нет.
← →
anton773 © (2006-09-04 22:21) [15]Может ошибка была при создании таблицы в access? ведь с кодом все впорядке.Подскажите есть ли какие особенности создания таблицы,чтобы при работе с ней через ADO не было проблем?
← →
anton773 © (2006-09-04 22:27) [16]
> Этв аозиция конечно очень удобная, где то там есть код,
> который правильный. Может быть, но сие нам не известноADOTable1.Locate("text", Edit1.Text,[loCaseInsensitive,loPartialKey]) ;
Теперь докажите что код не правильный ;-)
← →
Anatoly Podgoretsky © (2006-09-04 22:28) [17]Что бы не было проблеи требуются знания, а вот код остается загадкой. Может с ним все в порядке, а может нет. Может быть таблицы правильно созданы, а может быть нет, нам сие неизвестно. Это твоя глубокая тайна.
← →
anton773 © (2006-09-04 22:29) [18]
> а вот код остается загадкой.
см [16]
← →
Anatoly Podgoretsky © (2006-09-04 22:31) [19]anton773 © (04.09.06 22:27) [16]
Внешне теперь код правильный и видимо откомпилируется.
А вот соответсует это или нет твоему FieldDefs не известно, поскольку это точно такая же тайна, как и остальное.
Доказывать нам не надо, это тебе надо доказывать, для начала, что данный код компилируется. При том тебя никто не будет заставлять, это твоя добрая воля.
А мы посмотреть и отвечать по мере предоставления информации, желательно достоверной.
← →
Anatoly Podgoretsky © (2006-09-04 22:32) [20]anton773 © (04.09.06 22:29) [18]
Посмотрел и что?
Поход на правильный, но возможно не рабочий.
← →
anton773 © (2006-09-04 22:39) [21]
> Поход на правильный, но возможно не рабочий
как так.Правильный НО не рабочий? Привожу полностьюprocedure TForm1.BitBtn1Click(Sender: TObject);
begin
ADOTable1.Locate("text", Edit1.Text, [loPartialKey,loCaseInsensitive]);
end;
← →
Anatoly Podgoretsky © (2006-09-04 22:42) [22]Тут много не известного, например Edit1.Text
Вопрос про FieldDefs игнорируем, без ответа на него, невозможно задать дополнительные вопросы.
Ну и скажем код не совсем верынй, это между прочим функция, а не процедура.
← →
anton773 © (2006-09-04 22:52) [23]
> это между прочим функция, а не процедура.
в [1] я пробовал использовать как функцию результат тот же.
> FieldDefs игнорируем
Не игнорирую,а просто не знаю где это проверить.(я не професиональный программист, это мое хобби)
← →
anton773 © (2006-09-04 22:56) [24]
> Edit1.Text
это то что ищем
← →
Рустем © (2006-09-04 23:01) [25]
> anton773 ©
А ну ка попробуй так:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if ADOTable1.Locate("FieldName", "TextValue", []) then
ShowMessage("Запись найдена!");
end;
где
FieldName - наименование поля;
TextValue - значение (полное совпадение).
Находит запись или нет?
← →
Anatoly Podgoretsky © (2006-09-04 23:01) [26]Это я догадался, а то ли ищем, а есть ли оно?
← →
anton773 © (2006-09-04 23:07) [27]
> Находит запись или нет?
нет
> а есть ли оно?
есть
← →
Anatoly Podgoretsky © (2006-09-04 23:11) [28]Слова, слова
← →
Рустем © (2006-09-04 23:14) [29]
> anton773 ©
Посмотри внимательно: та ли база, таблица, поле... Перепроверь!
А то ты, прямо таки, Америку открываешь...
← →
anton773 © (2006-09-05 19:55) [30]
> Посмотри внимательно: та ли база, таблица, поле... Перепроверь!
База единственная в ней одна таблица,поле то самое.Глюки винды отпадают,так как пробовал запускать ADO демо из папки делфей там locate работает на ура... ответ один:неправильно создана таблица в access. Люди добрые подскажите в чем секрет создания таблиц access чтоб можно было работать через ADO
← →
Правильный Вася (2006-09-05 19:59) [31]регистрозависимость имен полей ?
← →
anton773 © (2006-09-05 20:06) [32]
> регистрозависимость имен полей ?
отпадает:у меня все имена полей в нижнем регистре
← →
anton773 © (2006-09-07 21:43) [33]А locate работает с полем типа memo?
← →
Правильный Вася (2006-09-07 21:59) [34]вряд ли
← →
anton773 © (2006-09-07 22:05) [35]
> вряд ли
а как тогда можно проводить поиск по полю такого типа?
← →
MsGuns © (2006-09-08 11:57) [36]>anton773 © (04.09.06 22:39) [21]
>ADOTable1.Locate("text", Edit1.Text, [loPartialKey,loCaseInsensitive]);
Так попробуй:
with ADOTable1 do
if Locate(FieldByName("text").FieldName,Edit1.Text,
[loPartialKey,loCaseInsensitive]) then
Еще надо учитывать тип данных поля, где идет поиск.
← →
anton773 © (2006-09-08 20:30) [37]
> MsGuns ©
Спасибо! Заработало, но только в поле с типом данных текст.
> Еще надо учитывать тип данных поля, где идет поиск.
а как производить поиск в поле типа Memo?
← →
UMU © (2006-09-08 22:21) [38]
> а как производить поиск в поле типа Memo?
С помощью запроса
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.012 c