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


Пост N: 1
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 21.04.09 15:43. Заголовок: Помогите советом начинающему...


Тут вот надумал переползти на xHarbour. Возникла следующая проблема: имена всех функций и подпрограмм дополняются префиксом HB_FUN_. А можно ли этого избежать так, чтобы остались родные, начальные имена. У меня весь софт построен на скриптах, в которых уже стоят вызовы функций и процедур по привычным, родным именам. И перелопатить везде в 5000 текстовых файлах-скриптах вызовы функций и поменять на новые - задача крайне утомительная с непонятной перспективой на успех.

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


постоянный участник


Пост N: 656
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 12.05.09 19:36. Заголовок: Urri пишет: Что под..


Urri пишет:

 цитата:
Что подскажете по этому поводу?



Павел уже исправил эту ошибку

2009-05-05 21:40 UTC+0300 Pavel Tsarenko <tpe2/at/mail.ru>
* source/rtl/gtwin/gtwin.c
! fixed HB_GTI_KBDSHIFTS
(by Przemyslaw Czerpak, borrowed from Harbour)

Если собираетесь и дальше использовать xHarbour - осваивайте CVS

Забыл добавить, gtwin не из contrib, а source/rtl

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


Пост N: 36
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 14.05.09 17:26. Заголовок: Добрый вечер, уважае..


Добрый вечер, уважаемые.

Подскажите пожалуйста: а совместимы ли способы блокировки записей в ADS, вызываемые из Клиппера и проверяемые в Нарборе? После использования в клиппере функции rlock() функцией ax_islocked() указывает, что запись заблокирована, но в Харборе функция ADSISRECORDLOCKED() дает .F. Есть ли где описание соответствия функций для ADS, вызываемых из клиппера и Харбора? А то по названиям можно догадываться, а вот при проверке - не работает.

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




Пост N: 1124
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 15.05.09 08:22. Заголовок: Проверил на ace 7.0,..


Проверил на ace 7.0, local server, AdsIsRecordLocked() работает
На ace 8 проверить не могу

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


Пост N: 37
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 15.05.09 10:07. Заголовок: Да, но Local и Remot..


Да, но Local и Remote версии при работе с ADS только из Harbour работает нормально, а вот если для remote server блокировку поставила одна программа, написанная на Клиппере, то другая программа, написанная на Харборе эту блокировку не видит. Т.е. получается, что с одной таблицей не может правильно (в смысле анализа блокировок) работать две программы: одна на Клиппере, другая полный ее аналог, но на Харборе (с разницей только в вызываемых функциях анализа блокировок). Я спрашивал именно про совместную работу Клиппера и Харбора

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




Пост N: 1125
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 15.05.09 10:24. Заголовок: Я бы советовал задат..


Я бы советовал задать этот вопрос в Ads support
Совместимы ли блокировки старого клиента клиппер с ace 8.0.
У ads раньше была newsgroup, я даже задавал там вопрос, и мне отвечали, адреса правда под рукой нет. Возможно, он уже изменился


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




Пост N: 1126
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 15.05.09 10:34. Заголовок: Вот где собака порыл..


Вот где собака порылась

AdsIsRecordLocked tests if the given record is locked by the current user


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




Пост N: 1127
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 15.05.09 10:46. Заголовок: dbInfo(DBI_GETLOCKAR..


dbInfo(DBI_GETLOCKARRAY) возвращает массив блокировок, номера записей
Можно проверять:

ASCAN(dbInfo(DBI_GETLOCKARRAY), RecNo()) # 0


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


Пост N: 38
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 15.05.09 11:15. Заголовок: Pasha пишет: Вот гд..


Pasha пишет:

 цитата:
Вот где собака порылась

AdsIsRecordLocked tests if the given record is locked by the current user




Так что, получается для конкретной записи даже для работающих только Харбор программ нельзя проверить факт блокировки другим пользователем конкретной строки (отложив на время вопрос о взаимодействии с Клиппер программами)?

Pasha пишет:

 цитата:
dbInfo(DBI_GETLOCKARRAY) возвращает массив блокировок, номера записей
Можно проверять:

ASCAN(dbInfo(DBI_GETLOCKARRAY), RecNo()) # 0




У меня бывают ситуации блокировок по 5000 строк. Пока функция dbinfo() соберет массив корректировок, функция ascan() проверит - нужную строку уже заблокируют

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




Пост N: 1128
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 15.05.09 11:45. Заголовок: Других функций опрос..


Других функций опроса блокировок в ace я не увидел, а rddads может работать только через ace

Почему бы не блокировать нужные записи сразу ? Примерно так

for i := 1 to len(aRecs)
if ! DBRLock(aRecs)
lLock := .f.
exit
endif
next


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


Пост N: 39
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 15.05.09 12:00. Заголовок: Pasha пишет: Почему..


Pasha пишет:

 цитата:
Почему бы не блокировать нужные записи сразу ? Примерно так



Какие записи блокировать выясняется в процессе расчета. Бывает нужно заблокировать штук 300, а бывает - только 1. А блокировать на всякий случай - так это переводняк времени (в ADS блокировки выполняются неторопливо).

Проблема вот в чем. На 20 машинах запускается расчет для 250000 абонентов. Первая машина прихватила (заблокировала) первую строку списка - расчитывает, вторая машина - проверила эту строку: занята (заблокирована кем-то) - перешла на следующую строку, прихватила, расчитывает. Третья машина проверила первуя строку, вторую строку - заняты. Прихватила третью. И т.д. А потом первая строка ищет в списке следующую свободную для расчета и т.д. Получается такой себе конвейер. А теперь получается нужно придумывать другой по банальной причине...

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




Пост N: 1129
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 15.05.09 12:31. Заголовок: А зачем разделять пр..


А зачем разделять проверку и блокировку ?
rlock/dbRLock - это проверка и блокировка в одном флаконе

А то может оказаться, что запись будет захвачена другим пользователем между вызовами ax_islocked и rlock



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


Пост N: 40
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 18.05.09 16:33. Заголовок: Добрый день. Подска..


Добрый день.

Подскажите пожалуйста, как заставить ф-цию FT_SETVPG прилинковаться. В LIBNF она есть, при вызове FT_INT86, которая ее вызывает, пишет про неразрешенную внешнюю ссылку. При попытке вставить в исходный текст эту ф-цию из исходников - пишет, что дублируется... И что делать? Очень хочется воспользоваться ф-цией FT_INT86 чтобы закончить с печатью...

Кстати, кто как в Харборе печатает, т.е. выбодит на принтер. Просматривал список предлагаемых в Харборе функций - про все сказано, что сделаны только для совместимости и возвращают постоянное значение вне зависимости от ситуации. А какая же родная ф-ция печати в Харборе?

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


Пост N: 41
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 18.05.09 17:00. Заголовок: Еще такой вопрос. Вы..


Еще такой вопрос. Вызываются ли под ADS SQL команды, например выбрать нечто по условию и результат записать в DBF файл. Попытка использования ф-ции ADSEXECUTESQLDIRECT('select ...') ни к чему не привела. Дайте пример.

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




Пост N: 1137
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.05.09 19:23. Заголовок: Select(nSel) if AdsG..


Select(nSel)
if AdsGetConnectionHandle() == 0
AdsConnect(cPath) // Set(_SET_DEFAULT)
endif
if AdsCreateSQLStatement(cAlias, 2)
AdsPrepareSQL(cSQL)
AdsExecuteSQL()
endif


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


Пост N: 42
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 18.05.09 20:06. Заголовок: Спасибо. Щас будем р..


Спасибо. Щас будем разбираться. Может у кого есть описание указанных ф-ций? А ф-ция ADSEXECUTESQLDIRECT что, не работает?

И что подскажите насчет печати (предыдущего вопроса)?

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




Пост N: 1138
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 19.05.09 08:16. Заголовок: Urri пишет: Подскаж..


Urri пишет:

 цитата:
Подскажите пожалуйста, как заставить ф-цию FT_SETVPG прилинковаться. В LIBNF она есть, при вызове FT_INT86, которая ее вызывает, пишет про неразрешенную внешнюю ссылку. При попытке вставить в исходный текст эту ф-цию из исходников - пишет, что дублируется... И что делать? Очень хочется воспользоваться ф-цией FT_INT86 чтобы закончить с печатью...



Эти функции - переключение видеостраниц - реализованы только для dos
К тому же в page.prg опечатка:

вместо

_ft_setvpg(nPage)

надо

_v_setvpg(nPage)

для win32 эти средства работать не будут, поскольку это специфика os

Какие именно функции печати имеются в виду ?

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




Пост N: 1139
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 19.05.09 08:35. Заголовок: Urri пишет: А ф-ция..


Urri пишет:

 цитата:
А ф-ция ADSEXECUTESQLDIRECT что, не работает?



По-видимому, перед ее вызовом надо выдать:

AdsCreateSQLStatement(cAlias, 2)

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


Пост N: 43
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 19.05.09 10:41. Заголовок: Pasha пишет: Какие ..


Pasha пишет:

 цитата:
Какие именно функции печати имеются в виду ?



Имеются ввиду функции PrintReady() и PrintSend(). Написано в инструкции, что созданы для целей совместимости и возвращают всегда 0 и .f. соответственно. И других ф-ций для анализа готовности принтера и пересылки строк в принтер больше не вижу. Из истории проблемы: лет 15 назад еще при работе с Clipper 5.01 и матричными принтерами не было никакой возможности проанализировать сбой оборудования (бумага застряла, например) и программа вываливалась с дикими ошибками. В те далекие времена меня это очень утомляло и я переписал для себя блок печати с использованием DOS прерывания, вызываемого ф-цией FT_INT86() и забыл о проблемах печати на 15 лет (даже под w95,w98,w2000,XP). И теперь, перейдя на Харбор пока в варианте консольного приложения, очень хочу не иметь проблем с печатью. А для этого очень хочу снова воспользоваться ф-цией FT_INT86. Она ведь есть в библиотеках Харбора, только не работает так, как раньше под Клиппером. Или подскажите другой вариант проверки готовности принтера (матричные принтеры у нас еще имеются)


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


Пост N: 44
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 19.05.09 11:01. Заголовок: Pasha пишет: По-вид..


Pasha пишет:

 цитата:
По-видимому, перед ее вызовом надо выдать:

AdsCreateSQLStatement(cAlias, 2)



Что есть cAlias? Что такое параметр 2? Смотрю примеры из Харбор, понятного весьма мало т.к. нет ну никакого описания. А прокладывать дорогу в дебрях исходников на С очень утомительно и долго. Может у кого есть какое-то описание? И вообще из участников этого форума кто-то использует SQL запросы при работе ADS с .DBF файлами, а не .ADT? Хочу пока немного: сделать выборку SQL запросом и вывалить результат в .DBF файл...

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




Пост N: 1140
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 19.05.09 11:29. Заголовок: Алиас - это алиас ра..


Алиас - это алиас рабочей области, в которой будет выполняться select
2 - имеется в виду ADS_CDX

После выполнения select в рабочей области можно использовать обычные средства rdd: go top, skip, обращение к полям

Поскольку эти функции в харборе не описаны, то надо смотреть сырцы rddads, и, конечно, помощь к ace

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

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