Текущий архив: 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.47 MB
Время: 0.024 c