Главная страница
    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.47 MB
Время: 0.024 c
1-1095951437
kiuv
2004-09-23 18:57
2004.10.10
Ошибка функции inifiles.readstring - как исправить


3-1094794847
stone
2004-09-10 09:40
2004.10.10
Даты в Access


10-1048143436
Pavel Lechenko
2003-03-20 09:57
2004.10.10
Серверный курсор своими руками


1-1096286189
Mar_Gel
2004-09-27 15:56
2004.10.10
Подскажите, как поменять иконку в программе во время выполнения?


4-1094078916
terra0
2004-09-02 02:48
2004.10.10
создание потока





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский