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

Вниз

Как сделать поиск в базе данных в Юникоде   Найти похожие ветки 

 
Flyman   (2008-06-03 19:54) [0]

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

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


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

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


 
Anatoly Podgoretsky ©   (2008-06-03 20:19) [2]

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

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


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


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

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


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


> Что то из этого 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 не поддерживается.


 
Anatoly Podgoretsky ©   (2008-06-04 08:47) [5]

Неправда

> 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 Access2000 and the Jet 4 provider.


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

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

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


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

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

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


 
Anatoly Podgoretsky ©   (2008-06-04 11:13) [7]

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


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


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


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


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

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


 
Anatoly Podgoretsky ©   (2008-06-04 16:52) [10]

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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2009.01.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
15-1226506062
Наше имя
2008-11-12 19:07
2009.01.11
Курсы английского в Москве...


2-1227898264
9899100
2008-11-28 21:51
2009.01.11
TlistView


15-1226856379
DillerXX
2008-11-16 20:26
2009.01.11
А почему корпус компьютера


2-1227536047
demon
2008-11-24 17:14
2009.01.11
Обрезание расширений


15-1226277137
Abcdef123
2008-11-10 03:32
2009.01.11
Верно ли это?