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

Вниз

TClientDataSet.Locate   Найти похожие ветки 

 
misha_gr   (2007-09-24 13:43) [0]

Здравствуйте. Столкнулся с тем, что TClientDataSet.Locate не работает с русским чарсетом (поиск по строковому полю). Не находит записей, которые однозначно там есть. CaseInsencitive - без разницы. Если искать цифры или латиницу - то всё нормально. Аналогично работает фильтрация. В инете только упоминание проблемы, но не решение. Тем удивительнее, что лично видел массу решений, в которых Locate функционировал нормально. Отягчающие обстоятельства : Delphi 6 + 2upd, DB - (Мидас?) хранится в бинарном файле (ClientDataSet.SavetoFile(), ClientDataSet.LoadFromFile()).


 
Anatoly Podgoretsky ©   (2007-09-24 13:57) [1]

> misha_gr  (24.09.2007 13:43:00)  [0]

Находит но не все.
Проклятая проблема проклятых американцев.
Много о себе думают.


 
Вася Правильный   (2007-09-24 14:04) [2]

некоторые буквы не фурычат


 
misha_gr   (2007-09-24 14:11) [3]

А чуть поконкретней можно?


 
sniknik ©   (2007-09-24 15:11) [4]

> Тем удивительнее, что лично видел массу решений, в которых Locate функционировал нормально.
> ... (Мидас?)
а уверен что в тех решениях использовался мидас? (TClientDataSet)... ведь он далеко не единственный который позволяет таблицы в памяти, Locate и SavetoFile.
или есть исходники тех решений где работает? тогда там и посмотри как сделано.

> А чуть поконкретней можно?
не выйдет у тебя с ним ничего, если это действительно "Проклятая проблема проклятых американцев."... это они гады так написали, не задумываясь о локализациях. и переделывать не заставить.


 
Anatoly Podgoretsky ©   (2007-09-24 15:17) [5]

> sniknik  (24.09.2007 15:11:04)  [4]

Заставить можно, но у меня нет таких денег.


 
misha_gr   (2007-09-24 15:25) [6]

> а уверен что в тех решениях использовался мидас? (TClientDataSet)...

Там используется dbExpress + Oracle. Однако TClientDataSet - тот же самый.

> есть исходники тех решений где работает? тогда там и посмотри как
> сделано.

Частично. В том смысле, что некоторая часть функциональности присутствует в виде DLL. А вообще тот же Locate используется. Данные загружаются в TClientDataSet по другому.


 
sniknik ©   (2007-09-24 15:25) [7]

ну, с помощью денег это уже называется не "заставить".

кстати а тут ничего нет по теме?  
http://www.distribucon.com/midasbug/


 
sniknik ©   (2007-09-24 15:27) [8]

> Данные загружаются в TClientDataSet по другому.
может быть даже с другой кодовой страницей....

вот это и смотри. в чем разница.


 
Johnmen ©   (2007-09-24 15:29) [9]

У меня с русскими буквами работает.


 
Anatoly Podgoretsky ©   (2007-09-24 15:39) [10]

Locate работает с локально загруженными данными и глубоко плевать какими средствами в него загружено.


 
sniknik ©   (2007-09-24 15:43) [11]

> У меня с русскими буквами работает.
ну, удивил ;). у меня возможно тоже работает... если попробовать.

только вопрос, а как ты менял (где) "русский чарсет"? а если не менял, то с ним ли оно работает? ;)


 
Johnmen ©   (2007-09-24 15:48) [12]


> только вопрос, а как ты менял (где) "русский чарсет"?

не менял. ничего не менял...

> а если не менял, то с ним ли оно работает? ;)

э-э-э-э... "оно" это кто? :)


 
sniknik ©   (2007-09-24 15:53) [13]

> Locate работает с локально загруженными данными и глубоко плевать какими средствами в него загружено.
а если загрузить в досовой кодовой странице, поставить русский чарсет "oem dos" в гриде (видеть руское), а в локейте искать в виндовой?


 
sniknik ©   (2007-09-24 15:57) [14]

> не менял. ничего не менял...
ну отож... а в [0] видимо менялось (упоминается, т.к. если бы не менялось то сказано бы было не о чарсете, а о русских буквах...)


 
Johnmen ©   (2007-09-24 15:58) [15]

Да нету никаких гридов. Есть самый обычный TClientDataSet. Без провайдера. В него добавляются записи, удаляются, корректируются... И между делом выполняется локейт. Выполняется успешно.


 
Anatoly Podgoretsky ©   (2007-09-24 16:03) [16]

Если не использовать особые методы издевательств над компонетами, то Locate работает с ANSI, вне зависимости от языковых драйверов, а вот преобразованиями уже они занимаются.

Вроде не ошибаюсь?


 
misha_gr   (2007-09-24 16:59) [17]

Упс. Мой косяк. Человечище с какого-то бодуна использовал TWideStringField, вместо нормального TStringField. А я не посмотрел... Чувствую себя идиотом.

Всем спасибо, и извините за потраченное время.

Модеру отдельные поздравления за дар научного предвидения. Как ни прискорбно, но оно оказалось право.



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

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

Наверх




Память: 0.51 MB
Время: 0.021 c
15-1190540385
Дженкинс
2007-09-23 13:39
2007.10.21
Какие есть способы предоставления Инета в локалку?


15-1190294594
Константинов
2007-09-20 17:23
2007.10.21
Э-э-э посоветуйте програмку для учета трафика


2-1190890507
l_v
2007-09-27 14:55
2007.10.21
Сообщения другим приложениям


2-1190817616
Vitek2
2007-09-26 18:40
2007.10.21
Помогите с TabControl!


15-1190694401
DelphiN!
2007-09-25 08:26
2007.10.21
Резрешить под пользователем SYSTEM запуск от имени ...