powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / DBF из 2.6 в 9,0
25 сообщений из 28, страница 1 из 2
DBF из 2.6 в 9,0
    #37925681
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По требованию заказчика, необходимо использовать DBF FoxPro 2.6 в проекте, написанном на FoxPro 9.0.
Вопрос:
1 Как добавить DBF (DBF находятся удаленно на сервере)
2 Можно ли добавить DBF в контейнер FoxPro 9.0
3 Как быть с кодовой страницей DBF 2.6
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37925749
alextashk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks,

Наверное заказчик хочет данные из таблицы FPD 2.6, а не саму таблицу

Ручками создаёте аналог таблицы в контейнере
и затем через APPEND FROM добавляете данные

если будет необходимость, то используете параметр

Код: c#
1.
 [AS nCodePage]
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37925797
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alextashk,

Может просто через config указать путь к таблицам, и использовать их.
Но есть проблема Fox 9.0 ругается что к нему подключают Fox 2.6, APPEND FROM – решит эту проблему?
Что за параметр [AS nCodePage], поподробнее!?
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37925805
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще, DBFы 2.6 используются другой программой. Мне нужно в 9.0 для статистики!
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37925886
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_AleksМне нужно в 9.0 для статистики!Значит, постоянный доступ к ним Вам не нужен. Делаете свои таблицы, отдельные, и с необходимой частотой в заранее определённые периоды (чтобы, к примеру, не напороться на exclusive lock старой программой) доливаете в них новые записи из базовых таблиц. А уж потом со своей копией делайте что хотите...
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37925910
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_AleksЕще, DBFы 2.6 используются другой программой. Мне нужно в 9.0 для статистики!Тогда вообще можно даже не делать аналоги таблиц FPD, а воспользоваться ADODB и просто тянуть информацию запросами через соответствующие драйверы ( 1 2 )
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926043
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_AleksНо есть проблема Fox 9.0 ругается что к нему подключают Fox 2.6
Как ругается? Матом? :)
Напиши код который ты понимаешь под словом "подключают" и какое сообщение об ошибке.

подключать ничего не куда не надо, надо просто открыть таблицу:
Код: sql
1.
2.
3.
4.
lcFox2xDBF = 'c:\dbf\my.dbf'
sele 0
use (lcFox2xDBF) shared
brow
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926053
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Код: sql
1.
use (lcFox2xDBF) shared noupdate

а то мало ли что...
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926059
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где можно скачать нормальные драйвера для DBF 2.6 и для DBC 9.0, скиньте ссылку!!!

И что за ошибка
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926069
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_AleksГде можно скачать нормальные драйвера для DBF 2.6 и для DBC 9.0, скиньте ссылку!!!
Глупостями не занимайся, не надо никаких ODBC дров, фокс без них отлично работает с DBF.
см. выше
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926084
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Да, я чего-то запаниковал. И правда открывается, и все ок.
А если у таблицы нет codepage, что делать?
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926089
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_AleksА если у таблицы нет codepage, что делать?stff cpzero.prg
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926100
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

Даже для таблиц 2.6!?
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926108
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Сори я затупил. Я таблицы не просто открывал а добавлял их в контейнер, вот он и ругался
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926115
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_AleksДаже для таблиц 2.6!?Досовскому фоксу ЕМНИП начхать на указание кодировки, он понимает только 866. Так что если вместо нуля в байте(ах? не помню), отвечающем за кодировку, прописать номер досовской кодировки, то ничего страшного не случится.
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926150
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_AleksDima T,

Сори я затупил. Я таблицы не просто открывал а добавлял их в контейнер, вот он и ругался
Не надо их в контейнер добавлять. Просто открывай. Закрывать не забывай :)

С кодировкой скорее всего проблемы будут, fpd в заголовок кодовую страницу не писал.
два варианта:
1. конвертировать при чтении cpconvert(866, 1251, MyTable.MyField)
2. Поправить заголовок с помощью DO CPZERO или так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
func SetCP866
lpara tcFile
local lnH, llOk
lnH = FOPEN(tcFile, 2)
if lnH > 0
	FSEEK(lnH, 29)
	FWRITE(lnH, CHR(101))
	FCLOSE(lnH)
	llOk = .T.
endif
return llOk


Работе проги на FPD это никак не повредит.
заголовок будет поправленным до тех пор пока в FPD не запустят команду PACK (и будут помеченные на удаления записи)
проверить стоит или нет кодовая страница в заголовке с помощью CPDBF() - вернет 866 значит стоит.
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926157
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirAleks_AleksДаже для таблиц 2.6!?Досовскому фоксу ЕМНИП начхать на указание кодировки, он понимает только 866. Так что если вместо нуля в байте(ах? не помню), отвечающем за кодировку, прописать номер досовской кодировки, то ничего страшного не случится.

29 или 30
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926311
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

С этой функцией разобрался: cpconvert(866, 1251, MyTable.MyField)
С этой тоже: func SetCP866

А вот cpzero чего-то не работает !!!
Что нужно сделать, что бы заработало?
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926392
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_AleksА вот cpzero чего-то не работает Тут 13048733 привели аналог cpzero.
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926444
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_AleksDima T,

С этой функцией разобрался: cpconvert(866, 1251, MyTable.MyField)
С этой тоже: func SetCP866

А вот cpzero чего-то не работает !!!
Что нужно сделать, что бы заработало?
SetCP866 делает тоже самое что и cpzero, просто cpzero универсальнее, оно другие кодовые страницы может ставить. Но на практике проблемы только с 866 бывают.
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926705
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

Еще такой вопрос, не могу допереть, походу переработал)))
А как при открытии формы, изменить кодовую страницу ?
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926761
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_AleksDima T,

Еще такой вопрос, не могу допереть, походу переработал)))
А как при открытии формы, изменить кодовую страницу ?
в DE.BeforeOpenTables() или Init() формы например. Не знаю как у тебя эта таблица открывается, в общем логика такая: открыть, проверить, если надо закрыть, поставить и снова открыть.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
use in 0 c:\dbf\MyTable.dbf shared noupdate
if cpdbf('MyTable') != 866
   use in MyTable
   if SetCP866('c:\dbf\MyTable.dbf')
      use in 0 c:\dbf\MyTable.dbf shared noupdate
   else
      MessageBox('Ошибка установки 866 кодовой страницы для MyTable.dbf')
   endif
endif


Кстати учти что SetCP866() не сможет поправить заголовок если кто-то еще открыл эту DBF даже в расшаренном режиме.
И постарайся долго не держать открытыми DBF-ки от чужой проги, запросто может оказаться что там есть моменты когда она использует монопольное открытие (например проиндексировать решат), а тут твоя прога файл открытым держит и мешает.
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926802
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks,

А что, просто COPY TO .... AS ..... уже не работает?
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926843
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonny540Aleks_Aleks,

А что, просто COPY TO .... AS ..... уже не работает?
В данном случае нет.
...
Рейтинг: 0 / 0
DBF из 2.6 в 9,0
    #37926860
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TJonny540Aleks_Aleks,

А что, просто COPY TO .... AS ..... уже не работает?
В данном случае нет.Извините за тупость, pls, а почему?
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / DBF из 2.6 в 9,0
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]