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

Вниз

ADO+DBF - проблеммы с кодировкой   Найти похожие ветки 

 
Hohol   (2004-09-09 09:46) [0]

Здравствуйте !
Есть таблицы DBF формата FoxPro for DOS. У них проставлена кодовая страница 866. Таблицы подключаю через ADO+MS OLE DB Provider for Visual FoxPro. Объект ADOConnection не использую, указываю строку подключения непосредственно в объекте ADOTable. Так вот если компонент ADOTable кинуть на форму во время разработки программы данные в DBGrid отображаются нормально, а если его создать динамически - пишется кракозяброй.
Компоненты DataSet и DBGrid присутствуют на форме постоянно.
Код динамического создания TADOTable такой:
var
foxTable: TADOTable;
begin
foxTable := TADOTable.Create(Self);
with foxTable do
begin
 ConnectionString := "Provider=VFPOLEDB.1;Data  Source=c:\dbfdir;Password="";Collating Sequence=MACHINE";
 TableName := "dbffile.dbf";
end;
end;
Где копать ?


 
sniknik ©   (2004-09-09 10:15) [1]

> У них проставлена кодовая страница 866
это старый формат больше dBase чем фоксовый

> Объект ADOConnection не использую
проблем хотся?

> Так вот если компонент ADOTable кинуть на форму во время разработки программы данные в DBGrid отображаются нормально,
> а если его создать динамически - пишется кракозяброй.
чудо программинга! зафиксируй и в книгу рекордов гинесе. ;о) должно быть одинаково. (если конечно при разработке никаких параметров не изменял, а там и там по умолчанию )

> Где копать ?
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\dbfdir;Extended Properties=dBase IV;Persist Security Info=False


 
Hohol   (2004-09-09 10:55) [2]


> > Объект ADOConnection не использую
> проблем хотся?

Дело в том что программа собирает данные из нескольких приложений, таблицы находятся в разных каталогах, есть таблица, тоже формата DBF, где перечислены все используемые в программе таблицы и пути к ним, т.е. одним ADOConnection не обойдешься, потому я и решил источник указывать непосредственно для каждой таблицы.


> > а если его создать динамически - пишется кракозяброй.
> чудо программинга! зафиксируй и в книгу рекордов гинесе.
> ;о) должно быть одинаково. (если конечно при разработке
> никаких параметров не изменял, а там и там по умолчанию
> )

Нет, ниче не меняю, все по умолчанию.


> > Где копать ?
> Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\dbfdir;Extended
> Properties=dBase IV;Persist Security Info=False

Поробую, но это другой Provider, хотя не очень принципиально наверное.


 
Hohol   (2004-09-09 10:56) [3]


> > Объект ADOConnection не использую
> проблем хотся?

Дело в том что программа собирает данные из нескольких приложений, таблицы находятся в разных каталогах, есть таблица, тоже формата DBF, где перечислены все используемые в программе таблицы и пути к ним, т.е. одним ADOConnection не обойдешься, потому я и решил источник указывать непосредственно для каждой таблицы.


> > а если его создать динамически - пишется кракозяброй.
> чудо программинга! зафиксируй и в книгу рекордов гинесе.
> ;о) должно быть одинаково. (если конечно при разработке
> никаких параметров не изменял, а там и там по умолчанию
> )

Нет, ниче не меняю, все по умолчанию.


> > Где копать ?
> Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\dbfdir;Extended
> Properties=dBase IV;Persist Security Info=False

Поробую, но это другой Provider, хотя не очень принципиально наверное.


 
sniknik ©   (2004-09-09 11:18) [4]

> таблицы находятся в разных каталогах, есть таблица, тоже формата DBF, где перечислены все используемые в программе таблицы и пути к ним, т.е. одним ADOConnection не обойдешься
легко
SELECT * FROM C:\PATH1\Table1.Dbf
SELECT * FROM C:\PATH2\Table2.Dbf
и все на одном конекте
сложнее указать корнень (диск), но и это можно обойти.
(будеш пробовать убери автоопределение параметров)


 
Hohol   (2004-09-09 11:33) [5]

Похоже Microsoft.Jet.OLEDB.4.0 не годиться. Дело в том что часть таблиц из бухгалтерской программы БЭСТ4, написана она на Клипере, и использует в индексных выражениях клиперовские функции. Jet такие таблицы не октрывает, а VFPOLEDB открывает он видимо на индексы не смотрит.


 
sniknik ©   (2004-09-09 11:38) [6]

> написана она на Клипере
для аналогичного использую Halcyon, есть поддержка клипера, и можно добавить свои функции которые будут использованы в индексах (совместить с оригиналом)

> а VFPOLEDB открывает он видимо на индексы не смотрит.
он снимает признак индекса если не находит его, если тебя это устраивает... то еще проверь а программу (БЭСТ4) это устроит? мало ли как написано.


 
Hohol   (2004-09-09 11:45) [7]


> > а VFPOLEDB открывает он видимо на индексы не смотрит.
> он снимает признак индекса если не находит его, если тебя
> это устраивает... то еще проверь а программу (БЭСТ4) это
> устроит? мало ли как написано

Да не, индексы на месте, конечно возможно понадобиться их перестроить потом, но метка наличия индексного файла не снимается


 
sniknik ©   (2004-09-09 11:54) [8]

> но метка наличия индексного файла не снимается
убери сам файл индекса и проверь еще.

но хотя если потом перестраивать... это неважно, как и неважно если их убирать совсем снимать признак и использовать jet. все одно перестраивать...


 
Hohol   (2004-09-09 12:35) [9]

Установил Halcyon, вроде все работает и отображает нормально и индексы клиперовские открывает.



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

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

Наверх




Память: 0.49 MB
Время: 0.028 c
4-1093902801
nimble
2004-08-31 01:53
2004.10.10
Дистанционное управление


8-1090415943
Ig
2004-07-21 17:19
2004.10.10
Можно ли получить полупрозрачную картинку в Image?


1-1096088618
Kair()
2004-09-25 09:03
2004.10.10


14-1095508040
Программер_
2004-09-18 15:47
2004.10.10
Вот привожу код и пусть кто мне сможет сказать что нем


9-1085024752
Hater
2004-05-20 07:45
2004.10.10
Сохранение игры