Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.01;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.034 c
1-1155654186
incm
2006-08-15 19:03
2006.10.01
Как передать фокус в миди-форму после TComboBox в главной форме


15-1157699105
hhhhh
2006-09-08 11:05
2006.10.01
Как будет грамотнее?


1-1155737555
vase21
2006-08-16 18:12
2006.10.01
Цифры в StringGrid


15-1157915644
hak
2006-09-10 23:14
2006.10.01
Password and Login in Dial-Up


2-1157719472
enico
2006-09-08 16:44
2006.10.01
SaveDialog