![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TClientDataSet.Locate [D6]
misha_gr © (2007-09-24 13:43:00)Здравствуйте. Столкнулся с тем, что TClientDataSet.Locate не работает с русским чарсетом (поиск по строковому полю). Не находит записей, которые однозначно там есть. CaseInsencitive - без разницы. Если искать цифры или латиницу - то всё нормально. Аналогично работает фильтрация. В инете только упоминание проблемы, но не решение. Тем удивительнее, что лично видел массу решений, в которых Locate функционировал нормально. Отягчающие обстоятельства : Delphi 6 + 2upd, DB - (Мидас?) хранится в бинарном файле (ClientDataSet.SavetoFile(), ClientDataSet.LoadFromFile()).
misha_gr (2007-09-24 16:59:00) [1]Упс. Мой косяк. Человечище с какого-то бодуна использовал TWideStringField, вместо нормального TStringField. А я не посмотрел... Чувствую себя идиотом.
Всем спасибо, и извините за потраченное время.
Модеру отдельные поздравления за дар научного предвидения. Как ни прискорбно, но оно оказалось право.
Anatoly Podgoretsky (2007-09-24 16:03:00) [2]Если не использовать особые методы издевательств над компонетами, то Locate работает с ANSI, вне зависимости от языковых драйверов, а вот преобразованиями уже они занимаются.
Вроде не ошибаюсь?
Johnmen (2007-09-24 15:58:00) [3]Да нету никаких гридов. Есть самый обычный TClientDataSet. Без провайдера. В него добавляются записи, удаляются, корректируются... И между делом выполняется локейт. Выполняется успешно.
sniknik (2007-09-24 15:57:00) [4]> не менял. ничего не менял...
ну отож... а в [0] видимо менялось (упоминается, т.к. если бы не менялось то сказано бы было не о чарсете, а о русских буквах...)
sniknik (2007-09-24 15:53:00) [5]> Locate работает с локально загруженными данными и глубоко плевать какими средствами в него загружено.
а если загрузить в досовой кодовой странице, поставить русский чарсет "oem dos" в гриде (видеть руское), а в локейте искать в виндовой?
Johnmen (2007-09-24 15:48:00) [6]
> только вопрос, а как ты менял (где) "русский чарсет"?
не менял. ничего не менял...
> а если не менял, то с ним ли оно работает? ;)
э-э-э-э... "оно" это кто? :)
sniknik (2007-09-24 15:43:00) [7]> У меня с русскими буквами работает.
ну, удивил ;). у меня возможно тоже работает... если попробовать.
только вопрос, а как ты менял (где) "русский чарсет"? а если не менял, то с ним ли оно работает? ;)
Anatoly Podgoretsky (2007-09-24 15:39:00) [8]Locate работает с локально загруженными данными и глубоко плевать какими средствами в него загружено.
Johnmen (2007-09-24 15:29:00) [9]У меня с русскими буквами работает.
sniknik (2007-09-24 15:27:00) [10]> Данные загружаются в TClientDataSet по другому.
может быть даже с другой кодовой страницей....
вот это и смотри. в чем разница.
sniknik (2007-09-24 15:25:00) [11]ну, с помощью денег это уже называется не "заставить".
кстати а тут ничего нет по теме?
http://www.distribucon.com/midasbug/
misha_gr (2007-09-24 15:25:00) [12]> а уверен что в тех решениях использовался мидас? (TClientDataSet)...
Там используется dbExpress + Oracle. Однако TClientDataSet - тот же самый.
> есть исходники тех решений где работает? тогда там и посмотри как
> сделано.
Частично. В том смысле, что некоторая часть функциональности присутствует в виде DLL. А вообще тот же Locate используется. Данные загружаются в TClientDataSet по другому.
Anatoly Podgoretsky (2007-09-24 15:17:00) [13]> sniknik (24.09.2007 15:11:04) [4]
Заставить можно, но у меня нет таких денег.
sniknik (2007-09-24 15:11:00) [14]> Тем удивительнее, что лично видел массу решений, в которых Locate функционировал нормально.
> ... (Мидас?)
а уверен что в тех решениях использовался мидас? (TClientDataSet)... ведь он далеко не единственный который позволяет таблицы в памяти, Locate и SavetoFile.
или есть исходники тех решений где работает? тогда там и посмотри как сделано.
> А чуть поконкретней можно?
не выйдет у тебя с ним ничего, если это действительно "Проклятая проблема проклятых американцев."... это они гады так написали, не задумываясь о локализациях. и переделывать не заставить.
misha_gr (2007-09-24 14:11:00) [15]А чуть поконкретней можно?
Вася Правильный (2007-09-24 14:04:00) [16]некоторые буквы не фурычат
Anatoly Podgoretsky (2007-09-24 13:57:00) [17]> misha_gr (24.09.2007 13:43:00) [0]
Находит но не все.
Проклятая проблема проклятых американцев.
Много о себе думают.