On-line: Pasha, Haz, гостей 0. Всего: 2 [подробнее..]
АвторСообщение



Пост N: 1
Зарегистрирован: 21.02.09
ссылка на сообщение  Отправлено: 21.02.09 19:08. Заголовок: Clipper 5.3 не хочет работать с DBFCDX.


Народ, помогите утопающему!
Раньше писал на Clipper Summer 87.
Нужно на Clipper 5.3 создать индексный файл CDX, но не могу даже собрать exe-шник.
В начале программы вставил:
REQUEST DBFCDX
rddSetDefault( "DBFCDX" )
Линкую как в примере:
BLINKER FILE $(objs) OUTPUT $@ lib dbfcdx.lib

При сборке выдает ошибку :
BLINKER : 1115 : DBFCDX.LIB(CL53INIT) : '_DBFCDX' : unresolved external

Заменил BLINKER.
Стал пробовать собирать BLINKERом 6.0
то же самое.

Что интересно, если вместо DBFCDX подключать к примеру DBFNDX, т.е.
в программе
REQUEST DBFNDX
rddSetDefault( "DBFNDX" )
а затем
BLINKER FILE $(objs) OUTPUT $@ lib dbfndx.lib
то всё нормально линкуется и работает


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 32 , стр: 1 2 All [только новые]





Пост N: 20
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 23.02.09 13:03. Заголовок: У меня такая-же проб..


У меня такая-же проблемма .....
Я в линковщике пишу обе библиотеки : BLINKER.EXE .... LIB _DBFCDX.LIB , DBFCDX.LIB
Вроде уже три года пашет ....

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 793
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.02.09 19:52. Заголовок: Вот мой рабочий файл..


Вот мой рабочий файл сборки для CDX (10 лет работает):

# Скрипт-файл начана сценария компоновки BLINKER 3.2 - 6.0 - для ЗАЩИЩЕНОГО РЕЖИМА ПАМЯТИ (Extended Memory)
BLINKER EXECUTABLE CLIPPER F:250;SWAPK:8192;SWAPPATH:С:\TEMP
BLINKER EXECUTABLE NODELETE
BLINKER PROCEDURE DEPTH 60
BLINKER EXECUTABLE EXTENDED # Switch blinker to protected mode
BLINKER INCREMENTAL OFF # Switch incremental off if needed
BLINKER EXECUTABLE COMPRESS 1
BLINKER MESSAGE WINK LEFT
NOBELL

FILE mainto
# ====== вызов листинга OBJ-файлов ==========
@Zviewplt.lst

//FILE ctintp, ctusp
//FILE CLD.LIB
SEARCH BLXRATEX.LIB
LIB _DBFCDX, DBFCDX
SEARCH BLXCLP53
LIB Ctp53
@C53BLMAX
## End of LNK



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 3
Зарегистрирован: 21.02.09
ссылка на сообщение  Отправлено: 25.02.09 06:48. Заголовок: Спасибо ответившим!


Сделал по варианту Softlog86 и всё прошло нормально.
Линковка пошла и CDX заработали как надо.
Зверски обрадовался, но рано...

Поясню, для чего мне понадобились CDX.
У меня в одной системе на одних и тех же файлах одновременно работают
Clipper 87 и VFP 6. На уровне dbf-файлов никаких проблем нет, но вот
понадобилось использовать общие индексы. Хочу попробовать использовать
DBFCDX или DBFSIX как получится.

В общем казалось бы всё получилось.
Clipper 5.3 и VFP 6 заработали на одних и тех же DBF и CDX, причём в обе стороны. Они поняли друг друга! CDX-индексы, созданные Clipper-ом, VFP 6.0 прекрасно понимает и наоборот. Дописывал в конец файла - всё OK!
Протестировал это дело на одном файле - всё нормально, но как только попытался работать с более-менее реальной задачей - облом.
Простая программа, которая в цикле создаёт CDX для нескольких десятков файлов непредсказуемо вылетает в разных местах с различными сообщениями об ошибках или попросту зависает. Затыкается в разных местах, на 10-м файле, на 3, 15, 47 и т.д. Никакой системы.
В общем, номер с CDX не прошёл :((( , а жаль.

Но есть ещё надежда на SIX, может быть получится через файлы IDX на Clipper 5.2
Только никак не могу найти SIX 3.2, ссылка на сайте вашего форума есть, но не работает.
Поэтому у меня большая просьба.
Если есть возможность, скиньте пожалуйста SIX 3.2 на мой емейл:
achik<собака>inbox.ru
Заранее благодарен.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 23
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 25.02.09 10:13. Заголовок: Думаю что не в этом ..


Думаю что не в этом проблема ....

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 796
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.02.09 18:12. Заголовок: AlexCh пишет: Прост..


AlexCh пишет:

 цитата:
Простая программа, которая в цикле создаёт CDX для нескольких десятков файлов непредсказуемо вылетает в разных местах с различными сообщениями об ошибках или попросту зависает. Затыкается в разных местах, на 10-м файле, на 3, 15, 47 и т.д. Никакой системы.



Перед созданием индекса НЕОБХОДИМО базу открывать в режиме EXCLUSIVE, и перед созданием CDX-файла НЕОБХОДИМО УДАЛИТЬ ранее созданный индексный файл.
Я пользовался CDX с 1993 года и никаких проблем с ними не было, намного лучше NTX....
Что-то неправильно делаешь !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 132
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 25.02.09 20:17. Заголовок: Где то читал, что бл..


Где то читал, что блокировки разные у Clipper и VFP 6 , не получится в обе стороны.
А базу открывать EXCLUSIVE при создании индекса не надо, Clipper ее сам блокирует, если
ему позволят.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 4
Зарегистрирован: 21.02.09
ссылка на сообщение  Отправлено: 26.02.09 08:20. Заголовок: Ну ничё не понимаю.


>Думаю что не в этом проблема ....

Вот и я не могу понять, в чём проблема.
Пробовал на двух разных машинах с разными операционками (WIN XP SP3 и WIN98)
Заново перестраивал EXE и запускал на чистых DBF-файлах (без CDX-индексов). Папку создал специально для отладки, к которой никто доступа не имеет и туда эти файлы сбросил.
Результат один и тот же.

>Перед созданием индекса НЕОБХОДИМО базу открывать в режиме EXCLUSIVE, и перед созданием CDX-файла НЕОБХОДИМО УДАЛИТЬ ранее созданный индексный файл.

Я много раз запускал эту прораммульку с созданием в цикле CDX-индексов на чистых DBF-файлах без CDX. Удалять было нечего. Вылетает где угодно, хотя пару раз и сработало до конца.
При вылете выдаются сообщения:

-ORDCREATE(0) Unrecoverable error 5302: Conventional memory exhaused

-Процессор NTVDM обнаружил недопустимую инструкцию

- или просто зависает без всяких сообщений

>Я пользовался CDX с 1993 года и никаких проблем с ними не было, намного лучше NTX....

А ты использовал SIX или DBFCDX?

>Где то читал, что блокировки разные у Clipper и VFP 6 , не получится в обе стороны.

В данном случае до VFP дело не ещё не дошло. Я не могу даже индексы CDX создать.

>А базу открывать EXCLUSIVE при создании индекса не надо, Clipper ее сам блокирует,
если ему позволят.

У меня базы как таковой нет, на CLIPPER 87 какая может быть база? Есть огромная куча файлов DBF (на файл-сервере Win2003 Server), с которыми без проблем одновременно работают Clipper 87 и VFP6. Блокировки может быть и разные, но на уровне RLOCK они друг друга понимают. Если одна прога запись заблокировала, то другая это понимает и к ней не лезет. VFP считывает запись из DBF, созданного Сlipper-ом, перекодирует символы DOS-Win и никаких проблем.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 114
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 26.02.09 09:30. Заголовок: AlexCh пишет: Unrec..


AlexCh пишет:

 цитата:
Unrecoverable error 5302: Conventional memory exhaused


Программа собрана для защищенного режима?
Вот такая команда "BLINKER EXECUTABLE EXTENDED" есть?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 5
Зарегистрирован: 21.02.09
ссылка на сообщение  Отправлено: 26.02.09 10:39. Заголовок: Прошу помощи клуба.


Видимо, после CLIPPER 87 я чего-то недопонимаю в принципе.

Как я собираю:

Моя прога называется REST_CDX.prg

Мой файл сборки REST_CDX.rmk (взял из примера в папке SOURCE) такой:

// Define comma separated obj list as a macro
objs=REST_CDX
// Inference rule for compiling (.prg) to .obj files
.prg.obj:
CLIPPER $< /m /n /w > ttt.txt
// Dependancy statements for .obj file
REST_CDX.OBJ: .\REST_CDX.PRG
// Dependancy rule for linking .obj file to .EXE file
REST_CDX.EXE: REST_CDX.OBJ
BLINKER FILE $(objs) OUTPUT $@ lib dbfcdx.lib , _dbfcdx.lib

Потом запускаю REST_CDX.bat , который собирает REST_CDX.exe
del REST_CDX.obj
del REST_CDX.exe
SET PATH=C:\CLIP53\BIN;%PATH%
SET LIB=C:\CLIP53\LIB
SET INCLUDE=C:\CLIP53\INCLUDE
SET PLL=C:\CLIP53\INCLUDE
rmake REST_CDX

---
Попытки использовать рабочий файл сборки от Andrey или
вставить строку BLINKER EXECUTABLE EXTENDED в REST_CDX.rmk приводят к синтаксической ошибке.
Поясните, пожалуйста, что я делаю не так и куда надо вставлять эти строки.


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 33
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 26.02.09 10:46. Заголовок: Я десятки лет работа..


Я десятки лет работаю на Клиппере только с индексами CDX в смешанной среде (FOX26,Clipper,сеть) но с самого первого дня это был SIX.
Защищенным режимом не заморачиваюсь, потому что активно юзаю библиотеку, несовместимую с РМ.
линковка в большинстве случаев примитивна:
BLINKER fi прога,sixcdx @six3 lib ct250
в более сложных случаях еще скрипт @cl520mid

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 6
Зарегистрирован: 21.02.09
ссылка на сообщение  Отправлено: 26.02.09 12:11. Заголовок: Вопрос про защищённый режим.


>Программа собрана для защищенного режима?
>Вот такая команда "BLINKER EXECUTABLE EXTENDED" есть?

Нет, собрана так, как я описал выше. Насколько я понимаю это сборка по умолчанию в реальном режиме, в не в защищённом.
Как переключиться в защищённый режим?
Работая на Clipper 87 никогда с такими вещами не встречался.




Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 799
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.02.09 14:10. Заголовок: AlexCh пишет: Нет, ..


AlexCh пишет:

 цитата:
Нет, собрана так, как я описал выше. Насколько я понимаю это сборка по умолчанию в реальном режиме, в не в защищённом.
Как переключиться в защищённый режим?



Если используешь Blinker 6.0 то ставь мой LNK для сборки, тогда программа будет собираться в защищенном режиме.

AlexCh пишет:

 цитата:
Попытки использовать рабочий файл сборки от Andrey или
вставить строку BLINKER EXECUTABLE EXTENDED в REST_CDX.rmk приводят к синтаксической ошибке.
Поясните, пожалуйста, что я делаю не так и куда надо вставлять эти строки.



Эти строки только для BLINKER 3.2 и выше. Я же написал РАНЕЕ - смотреть надо !
# Скрипт-файл начана сценария компоновки BLINKER 3.2 - 6.0 - для ЗАЩИЩЕНОГО РЕЖИМА ПАМЯТИ (Extended Memory)

В стандартной поставке Клипера стоит версия 1.0 и она не собирает "защищенные приложения".

А если в реальном, то попробуй после индексации файла (DBFCDX) закрывать эту базу.
Скорее всего у тебя не хватает ОТКРЫТЫХ ОБАСТЕЙ (SELECT) !

А вообще - кончай "фигней" заниматься и переходи на хХарбор. Намного приятней работать и САМОЕ ГЛАВНОЕ - это СТАБИЛЬНАЯ РАБОТА программы.

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 34
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 26.02.09 17:29. Заголовок: Коллеги, да не замор..


Коллеги, да не заморачивайте человеку голову защищенным режимом.. В Виндовой среде оно нафиг надо, тем более что чел до сих пор на S'87 сидел.
Ко всему высказанному ранее добавлю, что DBFCDX в Клиппере отличается нативной ущербностью...
иначе из-за чего бы он полностью менялся в каждой очередной версии?
короче, SIX рулит!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 133
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 27.02.09 20:52. Заголовок: А почему Clipper 5.3..


А почему Clipper 5.3 , а не (х)Харбор?.Нормально работает с CDX .Часть программ переевел с Clipper 5.01.
Не удалось создать на хХарбор временные индексы, ими пользовался в клиппере
Если спец библиотек нет, то и проблем не должно быть при переводе.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 7
Зарегистрирован: 21.02.09
ссылка на сообщение  Отправлено: 27.02.09 21:17. Заголовок: Не совсем так.


Чел не сидел S'87, а давно уже перешёл на VFP и написал на нём целую кучу работающих программ, но старые проги, написанные на Clipper переписать на VFP у чела нет никаких
физических возможностей. Их очень много, они очень сложные и многие их них написаны людьми, которых уже давно нет поблизости. Исходники у меня есть, но разбираться в чужих алгоритмах... ну вы понимаете...
Кроме того, нельзя их переписывать постепенно, поскольку это единый комплекс. Нужно переписать все сразу, отладить, а потом резко сменить всё. На практике это нереально. Трудозатраты на переписывание комплекса наших Clipper-программ я оцениваю как минимум в 5 человеко-лет, а я тут фактически один, кто реально может что-то разрабатывать в свободное от текущих доработок и разборок с пользователями время (есть ещё 2 программиста, системщик и технолог, но у них своих текущих дел выше крыши).. Пока буду переписывать последние проги с Clipper на VFP, первые устареют настолько, что их нужно писать по новой.
Прошу не судить меня строго за мои чайниковые вопросы, честно сказать у меня довольно тяжёлая ситуация и я пытаюсь найти выход в попытке состыковать Clipper с VFP на уроне индексов CDX, почему и попросил вашей помощи.
Увы, даже с вашими подсказками у меня меня пока не получается.

Один из вас откликнулся на мою просьбу и прислал мне SIX, за что я очень благодарен, но есть вопросы. Не сочтите за труд ответить на них, когда они созреют.
С уважением к сообществу.


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 35
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 28.02.09 00:06. Заголовок: Обращайся, если что...


Обращайся, если что.. Помогу.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 802
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.02.09 14:37. Заголовок: AlexCh пишет: Исход..


AlexCh пишет:

 цитата:
Исходники у меня есть, но разбираться в чужих алгоритмах... ну вы понимаете...
Кроме того, нельзя их переписывать постепенно, поскольку это единый комплекс. Нужно переписать все сразу, отладить, а потом резко сменить всё. На практике это нереально.



Если все Клиперные программы написаны на 87 или выше, то я как спец по переделке чужих программ на хХарбор заявляю:
1) переделать их совсем нетрудно, если нет вставок на С или ASM
2) может быть нужно будет подправить синтаксис команд (скобочки, пробел лишний поставить), и в алгоритмах разбираться ненужно.
3) переделка не занимает много времени, неделя максимум (это я чужие проги переделывал)
4) Любая прога на клипере (без других вставок) легко и ПОНЯТНО (как в клипере) переделывается в терминалку хХарбора.

В хХарборе есть классный сборщик проектов HBMAKE (как RMAKE в клипере) с продвинутыми возможностями. Если надо краткую доку, то могу выслать. Я тоже, сначала с трудом переделывал свои проекты на хХарбор. А теперь не жалею...


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 1079
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 02.03.09 11:25. Заголовок: У меня когда-то был ..


У меня когда-то был успешный опыт совместной работы clipper 5.2e и FoxPro 2.6
По-умолчанию dbfcdx использует ту же схему блокировок, что и foxpro
Во 1-х, вопрос: файлы dbf используются с расширениями VFP. т.е. с расширенным заголовком, или в старом формате FoxPro ? Если с расширением vfp, то клиппер их не просто откроет

И некоторые советы. Надо использовать последние версии clipper: 5.2e или 5.3b. Собирать надо в защищенном режиме, т.е. дать команду:
BLINKER EXECUTABLE EXTENDED
Если не работает dbfcdx у clipper 5.3, может быть стоит попробовать clipper 5.2

Насчет Харбора - я думаю не стоит его использовать, лучше обойтись клиппером. Совместимость с S87 все-таки у него намного выше. Если не планируется в дальнейшем развивать проекты на клиппере, можно обойтись малой кровью - пересборкой на 5.2/5.3
Мне помнится, несколько лет назад Przemyslaw Czerpak писал, что полной совместимости по индексам у Харбора с VFP (именно с VFP, а не со старым FoxPro 2.6) у харбора нет. Сейчас я не могу найти это сообщение.

Спасибо: 0 
ПрофильЦитата Ответить



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 10.03.09 11:44. Заголовок: Добрый день, уважаем..


Добрый день, уважаемые коллеги.

А проблема вообще имеет ли решение?
Берем .dbf, строим индех .cdx в Клиппере и Фоксе с одинаковым ключевым выражением. Оба индексных файла даже по длине не совпадают, т.е. имеются отличия в способах их построения. Такая же проблема при использовании SIX и ADS. Действительно, первое впечатление такое, что все работает на тестовом примере. Но когда работаешь с серьезными по размеру базами да еще и в сети и активно модифицируешь - очень скоро начинаются проблемы с корректностью индексов. Помнится давно делал такую ошибку: индексировал все базы на локальной машине, переписывал .dbf & .cdx на сеть и пытался после этого работать через ADS - проблемы типа index corrupted появлялись очень быстро. Чуть сдуру от ADS не отказался. Когда проиндексировал правильно через ADS - оказалось и быстрее, и проблемы с индексами пропали навсегда.
Опять же есть проблемы и с заданием индексного выражения. Если есть числовое поле "number,n,5", то в клиппере в сложном индексном выражении можно написать ...+str(number)+... , а в Фоксе ...+str(number,5)+..., иначе совсем индексы совпадать перестанут.

Для решения вопроса, который задал автор, может лучше использовать ADS: для Клиппера и Фокса прикрутить одинаковую библиотеку формирования индексов, которые прилагаются к ADS отдельно для клиппера и для фокса.


Спасибо: 0 
Цитата Ответить



Пост N: 2
Зарегистрирован: 24.03.09
ссылка на сообщение  Отправлено: 24.03.09 17:55. Заголовок: Всё просто - помимо ..


Всё просто - помимо dbfcdx.lib в каталоге библиотек имеется ещё _dbfcdx.lib. Её также надо прилинковать - тогда нормально работает.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 32 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 637
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет