Ну вообщем помогайте... в какой кодировке TDBF пишет в БД?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ну вообщем помогайте... в какой кодировке TDBF пишет в БД?

Сообщение Джентельмен » 12.10.2006 21:58:09

вообщем такая проблема, под виндой, TDBF пишет в БД записи с Edit, потом я ставлю фильтр к этому TDBF а он не фильтрует записи... проблема в кодировке, в БД они в одной а в эдите они в другой...
вопрос...
в какой и из какого формата кодировки нужно перевести, что бы все работало?
пробывал анси в оем, оем в анси, вин в кои8р и кои8р в вин...
не помогает...
может кто что скажет умное?
Джентельмен
постоялец
 
Сообщения: 162
Зарегистрирован: 16.10.2005 10:47:26
Откуда: Украина Донбасс Краматорск

Re: Ну вообщем помогайте... в какой кодировке TDBF пишет в Б

Сообщение Сергей Смирнов » 12.10.2006 22:27:05

Джентельмен писал(а):вообщем такая проблема, под виндой, TDBF пишет в БД записи с Edit, потом я ставлю фильтр к этому TDBF а он не фильтрует записи... проблема в кодировке, в БД они в одной а в эдите они в другой...
вопрос...
в какой и из какого формата кодировки нужно перевести, что бы все работало?
пробывал анси в оем, оем в анси, вин в кои8р и кои8р в вин...
не помогает...
может кто что скажет умное?
Из умного знаю ещё "UTF8", который разработчики FPC/Lazarus местами очень любят. Вообще-то, dbf -- это просто текстовый файл. Открой и посмотри, что там за кодировка у твоих строк.
Аватара пользователя
Сергей Смирнов
энтузиаст
 
Сообщения: 595
Зарегистрирован: 28.04.2005 13:23:25
Откуда: Москва

Сообщение Джентельмен » 16.10.2006 10:36:51

ну с UTF8 это интересно... но...
все записи в БД в ANSI ето я в блокноте посмотрел... ну и соответственно в Edit1 пишу что бы в ANSI все было... но он всеравно не находит записи...
может есть какой то другой способ поиска записи?
может с Query как нибуть попробывать?
но это ж блин все переделывать...
Джентельмен
постоялец
 
Сообщения: 162
Зарегистрирован: 16.10.2005 10:47:26
Откуда: Украина Донбасс Краматорск

Сообщение SergKam » 17.10.2006 19:08:42

что значит ANSI? что там нет записей на русском? скорее всего там должен быть ДОС тоесть CP866.
SergKam
постоялец
 
Сообщения: 251
Зарегистрирован: 16.11.2005 21:31:11
Откуда: Украина,Харьков

Сообщение Джентельмен » 18.10.2006 11:22:57

да нет...
там не дос...
вот в блокноте я открываю, и текст вижу, читаю...
в блокноте кодировка стоит АНСИ...
а вот в программе я пишу фильтр тдбф и для него данные берутса с эдита, и ниодна запись не находитса... а если в запипи нет руских букв то ищет, работает...
вот проблема блин...
кстати и если в свойстве тдбф пишу фильтр и компилирую, тоже ищет...
а вот с эдита не хочет...
Джентельмен
постоялец
 
Сообщения: 162
Зарегистрирован: 16.10.2005 10:47:26
Откуда: Украина Донбасс Краматорск

Сообщение SergKam » 18.10.2006 17:42:30

если в блокноте видно значит win (CP1251)
попробуй после вызова фильтра сохранить програмно фильтр из компонента в файл
и посмотри что там с кодировкой.(чтото мне подстазывает что там будет ???? вместо русских)
SergKam
постоялец
 
Сообщения: 251
Зарегистрирован: 16.11.2005 21:31:11
Откуда: Украина,Харьков

Сообщение alexs » 19.10.2006 10:06:22

Насколько я разобрался в тексте TDbf - он не умеет перекодировать из Win1251 в DOS866 -там внутри таблица перекодирования только для венгерского языка
и что самое плохое - толком нет возможность дописть эту перкодировку самому и при этом не курочить саму компоненту
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение SAK » 19.10.2006 19:39:05

Этот вопрос я уже поднимал и как вариант предлагал минимальные изменения в http://freepascal.ru/forum/viewtopic.php?t=652 .
Для полноценной работы, всё же требуется переработка не только TDbf, но и модуля DB т.к. в нём не реализован вызов метода Translate.
SAK
постоялец
 
Сообщения: 158
Зарегистрирован: 18.02.2006 00:45:14
Откуда: Тим

Сообщение alexs » 20.10.2006 01:35:50

а ты патчи на это дело для себя не делал? если сделал -может поделишся? (а то у меня на всё рук не хватает)
кстати - как то поднимался вопрос насчёт общей коллекции патчей собирать где нить на сайте - дело заглохло?
у меня есть несколько которые в основной релиз лазаря не хотят включать (внятно мне не ответели почему) - например чтобы DBEdit нормально работал с Numeric полями, если они расформатированы
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение SAK » 20.10.2006 18:14:54

Нет, не делал. Пока вообще забросил т.к. куда ни полезу везде недоработки и ошибки. Если нужно писать под windosw, то достаточно внести исправления в 2-х методах, я их указывал по приведённой ссылке. Что бы сделать всё нормально надо многое перелопатить. А т.к. я не знаю политики разработчиков, то встаёт вопрос: а нужно-ли вообще этим заниматься?
SAK
постоялец
 
Сообщения: 158
Зарегистрирован: 18.02.2006 00:45:14
Откуда: Тим

Сообщение Джентельмен » 23.10.2006 09:13:40

ну блин...
не получаетса, не работает... даже в свойстве dbf пишу фильтр на руском... и всеравно не находит записи...
ладно...
может кто нить подкинет идейку, как можно поиск по БД организовать?
только что бы не перебирать все записи типа так:

Wile not dbf1.eof do
Begin
if dbf1.fieldbyname('name').asstring = кв01 then
else
End;

что-то типа этого не подойдет...
ну вот советуйте...
как поиск зделать?
Джентельмен
постоялец
 
Сообщения: 162
Зарегистрирован: 16.10.2005 10:47:26
Откуда: Украина Донбасс Краматорск

Сообщение SAK » 23.10.2006 19:46:13

Хотел было посоветовать стандартный способ: проидексировать по нужным полям и использовать FindKey/FindNearest или SetKey/GotoKey/GotoNearest. Но вот только оказалось, что нет такого в Lazarus :(. В общем получается, что про TDbf легче забыть чем исправлять все косяки, к сожалению.
SAK
постоялец
 
Сообщения: 158
Зарегистрирован: 18.02.2006 00:45:14
Откуда: Тим

Сообщение alexs » 24.10.2006 00:24:36

Проще отказаться от DBF :-)
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Роман1971 и гости: 26

Рейтинг@Mail.ru