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



Пост N: 67
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 30.11.14 11:22. Заголовок: Перевожу Clipper на консольный Харбор


Добрый день, уважаемое сообщество!

Перехожу на Харбор, собрал программу, начинаю бороть ошибки несовместимости кода, по мере появления вопросов надеюсь на скорую помощь.
Заранее всем участникам огромное спасибо!



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 176 , стр: 1 2 3 4 5 6 7 8 9 All [только новые]





Пост N: 68
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 30.11.14 11:31. Заголовок: ошибка построения индекса


Работаю с ADS
Выдает ошибку построения индекса на основе данных связаных таблиц.
Код имеет следующий вид:

use pricen new
index on kod to price
use sklad new
set relation to s_kodt into PRICEN
index on PRICEN->cena to s_cena

Ошибка:
 цитата:
Error ADSNTX/3010 Error 3010: Unknown alias name used
with field name in index key expression.: s_cena



И еще одна ошибка при использовании сложных выражений в индексе:

INDEX ON c_kod+IF(c_kod<0,0,IF(C_KOD==qmag,10000,if(fil>0,20000,if(osn,-10000,40000)))) TO clientss

В Clipper все работает


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


Пост N: 376
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 30.11.14 15:01. Заголовок: MIKHAIL пишет: Выда..


MIKHAIL пишет:

 цитата:
Выдает ошибку построения индекса на основе данных связаных таблиц.



Из справки по ADS
Problem: An error occurred in the Advantage Expression Engine parser. A field name within the key expression was aliased by an unknown alias name.
Solution: Advantage only supports aliases for the current work area. If an alias to another work area is referenced, this error will result. Verify the alias name is spelled properly.

PS:Если не секрет , какой смысл здесь от ADS, может на CDX перейти? возможно даже и пошустрее будет. Тем более вроде как ADS заставляете работать в режиме совместимости с NTX который не умеет автоматически открывать эти индексы и соответственно не оптимизирует запросы ( за исключение наличия словаря данных).
ADS хорош как компактный сервер БД c его оптимизацией SQL запросов и конечно оптимизацией фильтров используя ПРОСТЫЕ индексы, во всяком случае я для себя это определил как главное . Если использовать локальный сервер ADS ( ADSLocal32.dll) - то только как тест или с числом пользователей не более 10,
Уже давно обхожусь без SET RELATION и сложных INDEX, все достаточно шустро делает сам сервер , по команде SELECT * FROM ... JOIN .. WHERE создается рабочая область собранная из нескольких таблиц как надо.

PPS: Может сразу на GUI ?

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



Пост N: 69
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 30.11.14 21:48. Заголовок: Haz Advantage only..


Haz

 цитата:
Advantage only supports aliases for the current work area


ADS для Clipper и Harbor по разному работают?

 цитата:
Если не секрет , какой смысл здесь от ADS


Смысл в том что проект написан с использованием ADS и работает много лет, в сети до 30 активных пользователей, несколько кассовых терминалов в гипермаркете с количеством транзакций десятки тысяч в день. Задача стоит перевести проект с минимальными переделками, а потом уже оптимизировать.

 цитата:
Уже давно обхожусь без SET RELATION и сложных INDEX, все достаточно шустро делает сам сервер , по команде SELECT * FROM ... JOIN .. WHERE


Речь идет о БД SQL ? Или ADS поддерживает запросы SQL ? Если в ADS есть такая возможность, где можно почитать про это поподробнее? Или лучше пример использования запросов и разбор ответов. С MySQL дело имел, такой подход интересно было бы использовать

 цитата:
PPS: Может сразу на GUI ?


В смысле? Забить на проект который писался 20 лет и с нуля новый разработать? Даже если не с нуля, нужно перевести то что есть, а потом уже GUI наверное...

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


Пост N: 379
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 30.11.14 22:02. Заголовок: MIKHAIL пишет: ADS ..


MIKHAIL пишет:

 цитата:
ADS для Clipper и Harbor по разному работают?


Скорее всего по разному, вроде мелькала такая инфа, но утверждать не стану
Для Clipper версия с 8 не поддерживается а уже текущая 11 .

MIKHAIL пишет:

 цитата:
Речь идет о БД SQL ? Или ADS поддерживает запросы SQL ? Если в ADS есть такая возможность, где можно почитать про это поподробнее?


ADS поддерживает SQL почитать можно в справке. http://devzone.advantagedatabase.com/dz/webhelp/Advantage11.1/index.html
Примеры вроде Dima тут не раз выкладывал можно поискать по форуму.
MIKHAIL пишет:


 цитата:
Забить на проект который писался 20 лет


GUI морда не сильно увеличит время перевода с Clipper , но согласен в console привычнее и быстрее будет



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




Пост N: 3229
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 01.12.14 08:06. Заголовок: Клиент ads для клипп..


Клиент ads для клиппера поддерживает индексацию на клиенте, а все 32-х разрядные клиенты ads, в том числе харбор-клиент, не поддерживают. Поэтому такое создание индекса не сработает. Но это вопрос ads, а не харбора, и вопрос неразрешимый.

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



Пост N: 11
Зарегистрирован: 05.11.14
ссылка на сообщение  Отправлено: 01.12.14 12:30. Заголовок: MIKHAIL пишет: И ещ..


MIKHAIL пишет:

 цитата:
И еще одна ошибка при использовании сложных выражений в индексе:

INDEX ON c_kod+IF(c_kod<0,0,IF(C_KOD==qmag,10000,if(fil>0,20000,if(osn,-10000,40000)))) TO clientss

В Clipper все работает


А если попробовать:
INDEX ON c_kod+IIF(c_kod<0,0,IIF(C_KOD==qmag,10000,iif(fil>0,20000,iif(osn,-10000,40000)))) TO clientss


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



Пост N: 71
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 01.12.14 14:52. Заголовок: VitalClip пишет: А ..


VitalClip пишет:

 цитата:
А если попробовать:
INDEX ON c_kod+IIF(c_kod<0,0,IIF(C_KOD==qmag,10000,iif(fil>0,20000,iif(osn,-10000,40000)))) TO clientss



Не работает. Ну это не так принципиально, перепишу.

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



Пост N: 72
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 01.12.14 21:34. Заголовок: Еще вопросики: 1.Как..


Еще вопросики:
1.Как запустить консольный Harbor в виде системной службы, в скрытом виде?
2.Можно ли одновременно использовать ADS в одной программе по IP и IPX протоколу, по выбору? Мне нужно конектиться к БД которая на NW лежит и одновременно подключаться к удаленной БД через интернет.
3.Можно ли в консольной версии Harbor подключить такие библиотеки как FR ?

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




Пост N: 3789
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 01.12.14 22:01. Заголовок: MIKHAIL пишет: 3.Мо..


MIKHAIL пишет:

 цитата:
3.Можно ли в консольной версии Harbor подключить такие библиотеки как FR ?



Да. У меня задачи с ним с 2008 года работают, только у меня больше всего на хХарборе, но это не принципиально.
Демонстрашки можешь скачать с ... Облом, нет уже сайта http://www.paritetsoft.ru/frh.htm
Ну тогда предлагаю мои примеры и просмотр файлов FR на МиниГуи смотри здесь https://cloud.mail.ru/public/39dd9efd1bbe/FastReport40
Если что заинтересует, пиши.

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


Пост N: 380
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 01.12.14 22:23. Заголовок: 1.Как запустить конс..



 цитата:
1.Как запустить консольный Harbor в виде системной службы, в скрытом виде?



В исходниках есть пример службы core\contrib\hbnetio\utils\hbnetio

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



Пост N: 73
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 02.12.14 11:18. Заголовок: Error BASE/1005 Mes..


Error BASE/1005 Message not found: TBCOLUMN:_COLORBLOC

Где посмотреть справку по Tbrowse ?

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




Пост N: 3232
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 02.12.14 12:48. Заголовок: Справку можно посмот..


Справку можно посмотреть в ng по клипперу, а по поводу этой ошибки: замените выражение вида

<obj>:colorbloc

на

<obj>:colorblock


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



Пост N: 74
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 02.12.14 13:54. Заголовок: Pasha пишет: замени..


Pasha пишет:

 цитата:
замените выражение вида
<obj>:colorbloc
на
<obj>:colorblock



Спасибо, глаз замылился, а в Clipper и так работало...

Еще вопросы:
Я так понимаю что цветовая палитра может быть более расширенная? Где посмотреть полную карту палитры?
цвет вида g*+/b не мигает, как исправить?
Какие можно шрифты использовать в консоли?

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



Пост N: 117
Зарегистрирован: 21.04.13
ссылка на сообщение  Отправлено: 03.12.14 15:32. Заголовок: Какие можно шрифты использовать в консоли?


Моноширинные. Courier New, Lucida Console,Consolas..

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



Пост N: 75
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 05.12.14 13:46. Заголовок: petr707 пишет: Моно..


petr707 пишет:

 цитата:
Моноширинные. Courier New, Lucida Console,Consolas..



А работать со шрифтами так же как и в clipper? или там своя система управления шрифтами?

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




Пост N: 4294
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 05.12.14 14:04. Заголовок: для WVT терминала hb..


для WVT терминала
hb_gtInfo(HB_GTI_CODEPAGE, 255)
hb_gtInfo(HB_GTI_FONTNAME, 'Lucida Console')
hb_gtInfo(HB_GTI_FONTQUALITY,4)

тут размеры
HB_GtInfo(HB_GTI_FONTSIZE , nFontH)
HB_GtInfo(HB_GTI_FONTWIDTH, nFontW)


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



Пост N: 77
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 23.02.15 13:59. Заголовок: Dima пишет: для WV..


Dima пишет:

 цитата:

для WVT терминала
hb_gtInfo(HB_GTI_CODEPAGE, 255)
hb_gtInfo(HB_GTI_FONTNAME, 'Lucida Console')
hb_gtInfo(HB_GTI_FONTQUALITY,4)

тут размеры
HB_GtInfo(HB_GTI_FONTSIZE , nFontH)
HB_GtInfo(HB_GTI_FONTWIDTH, nFontW)



Не понимаю как использовать шрифты различных размеров одновременно? Мне нужно стандартный шрифт и крупнее в 5 -6 раз
Как могу поменять толщину шрифта?
Как изменить шрифт у в полноэкранном режиме?
Как автоматически запускть в полноэкранном режиме?

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




Пост N: 4520
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.02.15 14:19. Заголовок: у себя делаю так при..


у себя делаю так примерно.
 
#REQUEST HB_GT_WVT


hb_gtInfo(HB_GTI_FONTNAME, 'Lucida Console')
hb_gtInfo(HB_GTI_FONTQUALITY,4)

nWidth := HB_GtInfo(HB_GTI_DESKTOPWIDTH)
nHeight := HB_GtInfo(HB_GTI_DESKTOPHEIGHT)

nFontH := Int(nHeight/25)
nFontW := Int(nWidth /80)

HB_GtInfo(HB_GTI_FONTSIZE , nFontH)
HB_GtInfo(HB_GTI_FONTWIDTH, nFontW)

setmode(25,80)


Но это будет не полноэкранный режим а окно.
Что касается атрибутов шрифта , копни "hbgtinfo.ch"


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




Пост N: 4521
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.02.15 14:55. Заголовок: Пример самодостаточн..


Пример самодостаточный , поиграйся с ним .
 

#include "hbgtinfo.ch"

proc main
local nWidth,nHeight,nFontH,nFontW

REQUEST HB_GT_WVT_DEFAULT

REQUEST HB_LANG_RU866
HB_LANGSELECT("RU866")

REQUEST HB_CODEPAGE_RU866
hb_cdpSelect( "RU866" )

hb_gtInfo(HB_GTI_MAXIMIZED,.t.)

hb_gtInfo(HB_GTI_FONTNAME, 'Lucida Console')
hb_gtInfo(HB_GTI_FONTQUALITY,4)

nWidth := HB_GtInfo(HB_GTI_DESKTOPWIDTH)
nHeight := HB_GtInfo(HB_GTI_DESKTOPHEIGHT)

nFontH := Int(nHeight/25)
nFontW := Int(nWidth /80)

HB_GtInfo(HB_GTI_FONTSIZE , nFontH)
HB_GtInfo(HB_GTI_FONTWIDTH, nFontW)

setmode(25,80)

? "TEST"
? "ПРОВЕРКА"
wait

return


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


Пост N: 488
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 24.02.15 09:19. Заголовок: Речь идет о БД SQL..




 цитата:

Речь идет о БД SQL ? Или ADS поддерживает запросы SQL ? Если в ADS есть такая возможность, где можно почитать про это поподробнее?


Я использую локальный ADS для формирования данных для некоторых отчетов, примерно так

 цитата:

AdsConnect('C:\')
nSele:=Select() ; Select (nSele+1)
AdsCreateSQLStatement('QUERY', 2)

sQlStr:='SELECT DISTINCT w.n_otdel,k.kucha,k.Nomk,k.fam,k.im,k.ot,k.pol,k.birth_date,';
+ 'k.DOC_TYPE,k.DOC_SER,k.DOC_NUM,k.NO_POLIS,k.SMK_CODE,';
+ 'k.POLIS_SER,k.POLIS_NUM,k.EDIN_POLIS,k.NASP_CODE2,W.S_TYPE ';
+ ' FROM '+Par2+'ARC\Karta kT, ';
+ Par2+'ARC\SWIST W,';
+ Par2+'KLIENT K ';
+ ' where ((kT.Unicum = K.Unicum) and (kT.N_TALON = W.N_TALON)';
+' AND (K.N_TARIF =0 ) AND (kT.Oplata =2) AND ';
+ IIF(i=1,' (W.S_TYPE ='+chr(39)+'R'+chr(39)+') ',' (W.S_TYPE <> '+chr(39)+'R'+chr(39)+') ');
+ ') ORDER BY 4,5'

AdsPrepareSQL(sQlStr)
AdsExecuteSQL(sQlStr)

nRecCount:=RecCount()

if nRecCount > 0



Создание индексов только в RDD CDX.
Конфликтов не замечено, хХарбоур 1
Если у тебя много подключений? то желательно НЕ локальный сервер ADS

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

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