![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать поиск в базе данных в Юникоде [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.