Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать поиск в базе данных в Юникоде [D7, MS Access]


Flyman ©   (2008-06-03 19:54:00) 

Проблема в то, что когда я вписываю в ted_Seek.Text (компонент TntEdit, поле Text имеет тип WideString) текст в Юникоде, поиск не выдает результат. Если же я пишу только русские буквы то поиск работает нормально. В чем дело? Может посоветуете что-нибудь? Вот код:
if not at_Topics.Locate('Topic',ted_Seek.Text,[{loCaseInsensitive}])
   then ShowMessage('не найдено');

Ах да. База данных Ms Access. В поле 'Topic' записан слова в Юникоде.


Flyman   (2008-06-04 18:14:00) [1]

Все разобрался. Эти процедуры Locate и Seek нормально поддерживают Юникод. Оказывается у меня в базе данных другая кодировка была. Символы выглядят одинаково, но имеют разные коды...


Anatoly Podgoretsky   (2008-06-04 16:52:00) [2]

> Flyman  (04.06.2008 16:02:08)  [8]

У тебя есть сомнение в пользе совета.
Но для ТНТ нет справки.


Flyman   (2008-06-04 16:39:00) [3]

С Seek разобрался, но он тоже как и Locate не понимает символы в Юникоде.


Flyman   (2008-06-04 16:02:00) [4]


> Ну справку читать и правильно использовать прочитаное задача
> автора. А по замечаниям ни одного ответа от автора. Наверно
> это ему не очень нужно и инструментом наверно не умеет пользоваться.
>


Если бы я все знал то не стал бы задавать зедсь вопросов наверное... Зато "авторы" мне посоветовали побольше читать справку ))))))


Anatoly Podgoretsky   (2008-06-04 11:13:00) [5]

Ну справку читать и правильно использовать прочитаное задача автора. А по замечаниям ни одного ответа от автора. Наверно это ему не очень нужно и инструментом наверно не умеет пользоваться.


sniknik   (2008-06-04 10:53:00) [6]

> Неправда
там еще уточнение есть, о том что поддерживает он это только в одном режиме, и приведено в каком.

а топиккастер сначала проверяет на возможность, а потом пытается этот режим установить, да и то не полностью вроде (неохота в справку лезть).


Anatoly Podgoretsky   (2008-06-04 08:47:00) [7]

Неправда

> Note: The VCL Seek method is a direct implementation of
> the Seek method for the ADO Recordset object. At the time
> of this writing, this method is only supported for use with
> Microsoft Access2000and the Jet 4 provider.


А это зачем в качестве цитаты привел?

> Что то из этого Locate или ted_Seek.Text не Юникод

Напоминаешь? Я помню, написал это в [2]


Flyman   (2008-06-04 01:14:00) [8]


> Что то из этого Locate или ted_Seek.Text не Юникод


> Разве в tnt нет компонентов доступа к бд?

Вы говорите про что-то типо TntADOTable? Таких нету, только компоненты TntDataControl.
Есть ли другие способы поиска в базе данных? Я пробовал Seek, но тоже не получилось.

if ADOTable1.Supports([coSeek]) then begin
 with ADOTable1 do begin
   Close;
   IndexName := 'Topic';
   CursorLocation := clUseServer;
   Open;
   Seek (TntEdit1.Text, soFirstEQ);
 end
 if ADOTable1.EOF then
   ShowMessage ('Record value NOT found');
end
else ShowMessage('Seek не поддерживается');

После этого всегда выходило сообщение, что Seek не поддерживается.


Плохиш   (2008-06-03 23:39:00) [9]


> Flyman   (03.06.08 19:55) [1]
> at_Topics - это таблица TADOTable.

Разве в tnt нет компонентов доступа к бд?


Anatoly Podgoretsky   (2008-06-03 20:19:00) [10]

> Flyman  (03.06.2008 19:54:00)  [0]

Что то из этого Locate или ted_Seek.Text не Юникод


Flyman   (2008-06-03 19:55:00) [11]

at_Topics - это таблица TADOTable.


Наверх

Титульная страница Поиск, карта сайта Написать письмо