Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Foxpro/Clipper/Dbase > Переход с Клипера на Windows&Lunix через Harbour


Автор: AndreyV 13.11.2009, 21:40
Всем кто жалуется на медленность Клипера под Виндами....  smile 
Читал здесь по какие-то несчастные 300 000 записей, проблемами архитектуры КЛИЕНТ-СЕРВЕР и т.д. 

Есть простой вариант перехода на Harbour ! 
Что это такое ? Смотри www.clipper.borda.ru

Уже 2 года перевел свои программы на него и не знаю теперь проблем с "вылетом" (как у Клипера) и с тормозами на нем.
Если есть вопросы, пишите - отвечу....  smile 

Автор: Данкинг 13.11.2009, 21:55
Цитата(AndreyV @  13.11.2009,  21:40 Найти цитируемый пост)
Всем кто жалуется на медленность Клипера под Виндами....

Вообще-то Клиппер и есть ДОСовская программа, а для Винды давно уже FoxPro придумали. И 300000 записей Фокс отлично понимает.

Или это спам обычный?

Автор: AndreyV 14.11.2009, 01:36
Цитата(Данкинг @  13.11.2009,  21:55 Найти цитируемый пост)
Или это спам обычный? 


Нет это не СПАМ ! 
Это просто перевод Клипера ДОСовского БЕЗ переделки под Windows (включая Win Mobile) и Lunix, Mac OS ..... и под Android тоже будет....
С сохранением простоты работы..... и доступом уже к MS SQL, My SQL и других тяжелых баз....

А на Фоксе тяжеловато работать.... Тем более сопровождать для большого кол-ва клиентов...  smile  

Автор: Данкинг 14.11.2009, 02:26
Цитата(AndreyV @  14.11.2009,  01:36 Найти цитируемый пост)
А на Фоксе тяжеловато работать.... 

Чем же работа с Фоксом тяжелее Клиппера? smile 

Автор: MoLeX 14.11.2009, 17:31
AndreyV, жду четких аргументов на поставленные вопросы. В противном случае  расценю твои действия как рекламу, со всеми вытекающими последствиями.

Автор: AndreyV 15.11.2009, 17:46
Цитата(Данкинг @  14.11.2009,  02:26 Найти цитируемый пост)

Чем же работа с Фоксом тяжелее Клиппера?


Нельзя сказать что тяжелее.... Это как раньше был спор на чем лучше писать: на dBase, Clipper или FoxPro !
Clipper всегда был компакней чем другие системы. Один EXE-файл и рабочие базы... 
Из-за этого: каждая 3-я система  в Союзе бы написанна на Клипере... (это не моя цитата) !
Потом был большой застой по Клиперу.... 
А Fox купила Microsoft и его развивала.... но как всегда в своем стиле: монстрообразная оболочка, большой EXE-файл на выходе и не очень то большое быстродействие по базам данных....

А потом появился Harbour (торговая марка Clipper не может быть использована другими) написанный группой программистов по проекту Open Source, т.е. свободно распространяющийся - не надо платить вообще за лицензию ! 
А сколько то стоит Fox купить сейчас для программиста или муниципального отдела ? 
А без лицензии сейчас уже нельзя... за ВОРОВСТВО уже сажают.... 

Принцип работы на Harbour остался почти как в Clipper 5.3 кроме большого ПЛЮСА. 
Если Клипер переводил prg-файлы в пи-код, а потом собирал в EXE-файл, то Harbour транслирует prg-файлы в С-код (можно и на Java), а exe-файл собирается из С-кода любым С-компилятором на Windows (Windos Mobile), Lunix, Mac OS и даже для iPhone.
Под Windows я использую Open Source compiler Borland C++ 5.5.1 for Win32, хотя можно использовать и Microsoft Visual C++ 8. Дело вкуса  smile 
Какие еще компиляторы поддерживаются ? Смотрите сами на http://www.xharbour.org

Можно ли на Фоксе написать ОДНУ программу и использовать ее на других платформах ? Ответ: НЕЛЬЗЯ !   
А на Harbour'e можно !!!  smile 

Можно ли на Фоксе использовать альтернативные базы данных: типа MySQL или ADS ? Ответ: НЕЛЬЗЯ !
А на Harbour'e можно !!!  smile  Также можно использовать базы Access, ADO и т.д.

Есть ли (сейчас) поддержка 64-разрядности на Фоксе ? Ответ: НЕТ
А на Harbour'e уже есть !!! Смотрите http://www.harbour-project.org/

Ну и еще: на Harbour такая-же простота написания кода, как на Клипере, ОДИН ехе-файл размером от 800Кб до 3,5Мб (моя большая система), есть генератор печати FastReport 4.5 (если не нравится платные библиотеки, пиши сам), очень большая скорость выполнения запросов к БД, также есть средства перевода системы из Файл-Клиента в Клиент-Сервер архитектуры, при минимуме переделке кода ( платная ADS  и Open Source Leto DB  смотри: http://clipper.borda.ru/?1-4-0-00000392-000-0-0-1256568348 )

Но я не хочу противопоставлять FOXу - Harbour.... Просто если есть готовые системы написанные на Клипере, то их очень просто переписать на Harbour и вдохнуть в них ВТОРУЮ жизнь.... А переделывать Fox-кие программы на Harbour - нет смысла ВООБЩЕ !!!

Просто Harbour универсальней FOX, так как пишется единомышленниками Clipper'a !  smile

Добавлено через 12 минут и 51 секунду
Цитата(MoLeX @  14.11.2009,  17:31 Найти цитируемый пост)
жду четких аргументов на поставленные вопросы. В противном случае  расценю твои действия как рекламу, со всеми вытекающими последствиями.

Моя цель здесь не реклама, а показать что Клипер не "умер", а преобразился (реинкарнировал) в новом обличье !!!  smile 
Я просто сам очень много и долго искал путей перехода с Клипера на другие системы: Delphi, VFox, Alaska++
И если мой опыт никому не интересен, то можешь смело принимать решения "со всеми вытекающими последствиями" ....
Задуши на форуме Клипер и оставь только FoxPro .....  smile 
No pasaran.... Клипер жив и будет жить.....  smile   

Автор: Данкинг 15.11.2009, 18:11
Ладно, убедил. Скачаю инсталлятор, при случае посмотрю. Только не знаю всё же, насколько Клиппер в каком бы то ни было виде до сих пор актуален. При наличии современных мощных СУБД вроде того же Oracle.

Добавлено @ 18:13
Цитата(AndreyV @  15.11.2009,  17:46 Найти цитируемый пост)
Можно ли на Фоксе использовать альтернативные базы данных: типа MySQL или ADS ? Ответ: НЕЛЬЗЯ !

Подключиться к базе Oracle или Access можно. Другое дело, что это реализуется через любимое всеми место.

Автор: AndreyV 15.11.2009, 19:06
Цитата(Данкинг @  15.11.2009,  18:11 Найти цитируемый пост)
При наличии современных мощных СУБД вроде того же Oracle.


К Oracle тоде доступ есть из Harbour'a.... 
Только где сейчас в кризис можно найти работу по этой Oracle ??? 
Да и насколько часто она используется ??? Включая MS SQL ??? 
В основной массе программ до сих пор используется DBF. 

Вот отзыв одного пользователя Harbour'a:
Занимаюсь в финансовом секторе, есть задача (xharbour 1.1.0. simplex)
БД из 57 Dbf  и 100 cdx общий размер DBF файлов – 3 Гб. 
Количество записей в одной из табл. 106 млн. и 98 млн. в другой. 
Количество пользователей – 5- 10 станций Windiws XP . Работает нормально.
Протестировал на предмет скорости выборки:
Из БД (500 тыс.записей)  выборка 1150 записей за 4 сек….

Хотя это и условная скорость, но показатель  smile 

Цитата(Данкинг @  15.11.2009,  18:11 Найти цитируемый пост)
Подключиться к базе Oracle или Access можно. Другое дело, что это реализуется через любимое всеми место.


На Харборе это просто:
#include "adordd.ch"
REQUEST ADORDD

FUNCTION Main()
LOCAL aDbf := { { "FIRST", "C", 10, 0 }, { "LAST", "C", 10, 0 },{ "AGE", "N", 8, 0 } }

DbCreate( "test2.mdb;table1", aDbf, "ADORDD" )
USE test2.mdb VIA "ADORDD" TABLE "table1"
APPEND BLANK
test2->First := "Вася"
test2->Last := "Сидоров"
test2->Age := 45
APPEND BLANK
test2->First := "Коля"
test2->Last := "Пупкин"
test2->Age := 32
GO TOP
Browse()
return nil 

 smile 

Автор: Данкинг 15.11.2009, 19:32
Цитата(AndreyV @  15.11.2009,  19:06 Найти цитируемый пост)
Только где сейчас в кризис можно найти работу по этой Oracle ??? 

 smile  smile  Т.е. PL/SQL как бы никому не нужен?
Цитата(AndreyV @  15.11.2009,  19:06 Найти цитируемый пост)
В основной массе программ до сих пор используется DBF. 

 smile Посмотри, сколько вакансий программистов PL/SQL и сколько - программистов FoxPro.
Нет, я, конечно, FoxPro уважаю, но всё же факты...

Цитата(AndreyV @  15.11.2009,  19:06 Найти цитируемый пост)
Количество записей в одной из табл. 106 млн. и 98 млн. в другой. 

106 млн записей в файле DBF? Ты сам в это веришь? smile 

Цитата(AndreyV @  15.11.2009,  19:06 Найти цитируемый пост)
На Харборе это просто:

Собственно, на фоксе не так уж сложно, по крайней мере, считывать:
Код

_cn=CREATEOBJECT('adodb.connection')
_cn.Open('Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=c:\base.mdb;Persist Security Info=False')
rd=CREATEOBJECT('adodb.recordset')
rd.open('tblAnkets',_cn)
...
a1=rd.fields('citytype').value 

Автор: AndreyV 15.11.2009, 20:02
Цитата(Данкинг @  15.11.2009,  19:32 Найти цитируемый пост)
106 млн записей в файле DBF? Ты сам в это веришь?


Зачем веришь-не веришь ?
На Харборе возьми и создай и работай....

Или смотри форум: http://clipper.borda.ru/?1-1-0-00000121-000-0-0-1199983232  и сам задавай свое верю-не верю ....  smile 

Автор: Данкинг 15.11.2009, 21:31
Если там какой-то свой формат DBF - тогда, конечно, возможно. Но что в обычном файле dbase 106 млн - не верю всё равно. smile 

Автор: AndreyV 15.11.2009, 21:56
Цитата(Данкинг @  15.11.2009,  21:31 Найти цитируемый пост)
Если там какой-то свой формат DBF


Нет там никакого своего формата, есть поддержка всех форматов...
А сколько по документации может "держать" DBF Visual FoxPro  ?


Автор: Данкинг 15.11.2009, 22:05
Цитата(AndreyV @  15.11.2009,  21:56 Найти цитируемый пост)
Нет там никакого своего формата, есть поддержка всех форматов...

Поставим вопрос иначе: таблица на 106 млн откроется ещё чем-то кроме Харбора? smile 

Цитата(AndreyV @  15.11.2009,  21:56 Найти цитируемый пост)
А сколько по документации может "держать" DBF Visual FoxPro  ?

Файл .dbf не должен был больше 2 гигов по размеру. Так по документации, так и на практике. Т.е. от числа записей как такового не зависит, но понятно, что в среднем это 1.5 миллиона.




Автор: AndreyV 16.11.2009, 00:28
Цитата(Данкинг @  15.11.2009,  22:05 Найти цитируемый пост)
но понятно, что в среднем это 1.5 миллиона.


У моего знакомого (он в фирме работает, которая обслуживает налоговые по Москве) программа на Clipper 5.2 работает c 2.5 - 3.5 миллиона записей, т.е. выборки и ввод идет постоянно. 
Так видать даже ДОСовский Клипер "круче" Ms Fox'a .....  smile 

А на практике такое кол-во записей существуют и работают с ними. Читайте или напишите программистам которые работают... Я же ссылки дал, так что им задавайте свое "верю-не верю" ....  smile 

Автор: Данкинг 16.11.2009, 00:36
Цитата(AndreyV @  16.11.2009,  00:28 Найти цитируемый пост)
программа на Clipper 5.2 работает c 2.5 - 3.5 миллиона записей, т.е. выборки и ввод идет постоянно. 

И сетевой доступ есть, т.е. несколько пользователей делают выборки из одних и тех же таблиц? smile 

Цитата(AndreyV @  16.11.2009,  00:28 Найти цитируемый пост)
Так видать даже ДОСовский Клипер "круче" Ms Fox'a ..... 

Только у Фокса, даже Досовского 2.1 интерфейс для работы с БД куда удобнее. smile И индексы у клиппера постоянно рушатся.




Автор: AndreyV 16.11.2009, 12:01
Цитата(Данкинг @  16.11.2009,  00:36 Найти цитируемый пост)
И сетевой доступ есть, т.е. несколько пользователей делают выборки из одних и тех же таблиц? smile 


Да, а какая же это задача без сети... Я здесь подразумеваю и пишу про программы с СЕТЕВЫМ доступом в архитектуре Файл-Сервера. Другие не рассматриваю ! smile 

 

Автор: Данкинг 16.11.2009, 12:09
Цитата(AndreyV @  16.11.2009,  12:01 Найти цитируемый пост)
Да, а какая же это задача без сети...

Я работал в одной компании, это было в 2003 году, если не ошибаюсь, так так как раз БД была на клиппере. Разумеется, сетевая, и висела она при этом ужасно. При этом периодически, как я уже говорил, рушились индексы (для их восстановления существовал командный файл, который пересоздавал все эти .CDX), а один раз даже накрылись данные за последние два дня, и приходилось все счета набивать заново. Правда, за эту работу нам доплатили. smile 

Автор: AndreyV 16.11.2009, 12:12
Цитата(Данкинг @  16.11.2009,  00:36 Найти цитируемый пост)
Только у Фокса, даже Досовского 2.1 интерфейс для работы с БД куда удобнее. smile И индексы у клиппера постоянно рушатся.


Не знаю про такие понятия как "интерфейс" для работы с БД. На Клипере работал с 1989 по 2006 год.... Да и сейчас помогаю друзьям...
Наверно имелось ввиду что через оболочку Фокса можно работать в командной строке, так все эти действия в Клипере можно было делать в DOT'e (это программа специальная была в поставке).... И не было вообще-то проблем в то время с этим. 
Даже наоборот - Клиперные программы были лучше по скорости и памяти хватало... А на Фоксе вечно для больших систем памяти не хватало, приходилось выгружать часть систем... Я это видел и знаю !

А индексы не рушаться, спросите любого Клипериста.... Даже сейчас системы на Clipper 5.2 до сих пор работают...
А на 5.3 появился Фоксовский драйвер баз данных CDX. Так на нем никогда проблем не было....

Автор: Данкинг 16.11.2009, 12:26
Цитата(AndreyV @  16.11.2009,  12:12 Найти цитируемый пост)
Не знаю про такие понятия как "интерфейс" для работы с БД. 

Я имел в виду, во-первых, визуальность, а, во-вторых, как раз командное окно. Про DOT не в курсе, не видел никогда.

Цитата(AndreyV @  16.11.2009,  12:12 Найти цитируемый пост)
А индексы не рушаться, спросите любого Клипериста.

Ну так вот рушились же в той БД. Я уж не знаю причину этого, но вроде как о ненадёжности индексов как клиппера, так и фокса часто говорят.


Автор: AndreyV 16.11.2009, 23:52
Cколько записей может храниться в базе  DBF

Максимальное количество одновременно хранимых записей для DBF, указанных в документации Clipper'а и FOX'а - 1 миллиард. 1С использует бибилиотеку CodeBase. Думаю, что и там такое же ограничение.

Смотри: http://www.forum.mista.ru/topic.php?id=420921

или погугли сам....

Автор: Reese 28.11.2009, 12:09
Ограничение в 2Гб на таблицу - это ограничение фокса. Если нужно больше, то через Advantage Database Server. 
Цитата

Файл .dbf не должен был больше 2 гигов по размеру. Так по документации, так и на практике. Т.е. от числа записей как такового не зависит, но понятно, что в среднем это 1.5 миллиона.

Это как посчитано ?
У меня в таблице более 11 миллионов, а таблица чуть больше гигабайта.

Цитата

Цитата

Можно ли на Фоксе использовать альтернативные базы данных: типа MySQL или ADS ? Ответ: НЕЛЬЗЯ !


Подключиться к базе Oracle или Access можно. Другое дело, что это реализуется через любимое всеми место.

Подключиться из фокса можно к любой другой СУБД, для которой есть ODBC-драйвер или OLEDB-провайдер. Причем делается это стандартными средствами.


Цитата

А Fox купила Microsoft и его развивала.... но как всегда в своем стиле: монстрообразная оболочка, большой EXE-файл на выходе и не очень то большое быстродействие по базам данных....

Действительно, Компания Майкрософт купила FoxSoftware. Все остальное - фантазия автора.

Автор: Данкинг 10.12.2009, 02:54
Только заметил продолжение развития темы. smile 
Цитата(Reese @  28.11.2009,  12:09 Найти цитируемый пост)
Это как посчитано ?

Про полтора миллиона? Экспериментальным путём, т.е. исходя из личной практики.  smile 

Цитата(Reese @  28.11.2009,  12:09 Найти цитируемый пост)
У меня в таблице более 11 миллионов, а таблица чуть больше гигабайта.

И как ты эту таблицу открываешь? Фоксом, оператором USE... ?

Автор: Matvey2 15.12.2009, 03:18
Извините, влезу в ваш спор, 
И простой Clipper 5.2 до сих пор жив и даже приспособился под XP
т.е перестал тормозить себя и других при своей работе 
В общем, я тоже за Clipper

P.S. А чтоб индексы не рушились достаточно использовать пустой файл с названием как у индекса, но с типом  .ok
Когда открываешь базу-стираешь все файлы .ok одноименные с ее индексами, а когда закрываешь-то создаешь файлы .ok снова
Если же у тебя был вылет по любой причине, например свет погас, то при новом открытии базы, файлов .ok , соответствующих
индексам не будет. В этом случае сразу делаешь создание индексного файла ( index on to..., а не reindex ) 
При таком простом решении в Clipper годами все работает без проблем
  

Автор: AndreyV 25.12.2009, 01:00
Цитата(Matvey2 @  15.12.2009,  03:18 Найти цитируемый пост)
P.S. А чтоб индексы не рушились достаточно использовать пустой файл с названием как у индекса, но с типом  .ok


Не совсем понятно, для чего эта заморочка.... 
Даже когда комп отрубается, не замечал что индекс рушиться... Правда я в последнее время всегда использовал драйвер CDX.
А что касается кол-ва записей в базе смотрите и читайте, что практики говорят:  http://clipper.borda.ru/?1-1-0-00000121-000-0-0-1258544763
 smile 


Автор: Reese 28.12.2009, 03:08
Цитата

И как ты эту таблицу открываешь? Фоксом, оператором USE... ? 

Да. Простым оператором USE <имя таблицы> In 0 Shared

Автор: AndreyV 10.2.2010, 18:41
Сделал небольшое пособие для начинающих по переходу с Clipper на xHarbour for Windows ...
/*
Clipper for Windows, Clipper для Windows, перевод Клипера под Виндовс, переход с Клипера, 
Clipper to Windows, Clipper to Harbour, Clipper to xHarbor
*/
Пускай народ пользуется... Может кому нужно ....

Брать пока здесь: files.mail.ru/FY5OCR   smile 

Рекомендации и исправления приветствуются....  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)