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


Пост 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: 45
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 19.05.09 11:36. Заголовок: Pasha пишет: Алиас ..


Pasha пишет:

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



Этот алиас будет создан автоматически? Какие еще значения параметров, кроме 2, можно задавать?

А предыдущее мое сообщение (ответ на ваш вопрос) про принтер читали и какой ответ?

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




Пост N: 1141
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 19.05.09 11:51. Заголовок: надо сначала выбрать..


надо сначала выбрать РО вызовом

Select(nSel)

В этой РО и будет открыт запрос с алиасом cAlias


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


Пост N: 46
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 19.05.09 13:52. Заголовок: Я делаю так: nsel=1..


Я делаю так:

nsel=100
cPath='g:\abonent\dbf\'
cSQL='select client,name from g:\abonent\dbf\client.dbf where street=20'
cAlias='abc'

Select(nSel)
&& if AdsGetConnectionHandle()=0
AdsConnect(cPath)
&& endif
if AdsCreateSQLStatement(cAlias, 1)
AdsPrepareSQL(cSQL)
AdsExecuteSQL()
endif

? alias(),reccount()


Вызов Ф-ции AdsGetConnectionHandle() закомментирован, т.к. выдает неразрешенную ссылку.
Диск G обслуживается локальным ADS (поэтому второй параметр в AdsCreateSQLStatement поставил 1 (2 тоже ставил - ничего не менялось)).

В результате получал alias() = abc, reccount() = 0. Проверил, в базе client строки со street=20 имеются в количестве 1300 штук. Что я делаю не так?


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




Пост N: 1142
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 19.05.09 14:16. Заголовок: А поля видны ? ? FC..


А поля видны ?

? FCount(), Client, Name

Условие where сработало ? Тип поля street числовой ?

2-й параметр AdsCreateSQLStatement:

#define ADS_NTX 1
#define ADS_CDX 2
#define ADS_ADT 3


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


Пост N: 47
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 19.05.09 15:28. Заголовок: fcount() = 196, но р..


fcount() = 196, но реально в базе client их всего 125.
Поле street - числовое.
Поля не видны, fieldname(1) - пусто

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


Пост N: 48
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 25.05.09 12:54. Заголовок: Добрый день. Ну кто..


Добрый день.

Ну кто подскажет как правильно SQL запрос вызвать? Это пока последнее, что мне нужно на ближайшее время. Со всеми остальными вопросами какт-то справился, даже с принтером временное решение нашел, т.к. FT_INT86 до сих пор не работает нормально

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


Пост N: 180
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 25.05.09 14:59. Заголовок: Вот такой пример у м..


Вот такой пример у меня работает ( test.dbf взято из harbour/tests )

#include "c:\harbour\contrib\rddads\ads.ch"
FUNCTION main

rddSetdefault("ADS")
SET FILETYPE TO CDX
SET SERVER LOCAL

AdsConnect( ".\" )
IF !AdsCreateSqlStatement( ,2 )
? "AdsCreateSqlStatement - error"
RETURN
ENDIF
IF !AdsExecuteSqlDirect( "SELECT * FROM test WHERE AGE < 50" )
? "AdsExecuteSqlDirect - error"
RETURN
ENDIF
? Reccount()

?

RETURN


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


Пост N: 49
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 25.05.09 15:56. Заголовок: Ура. Спасибо, уважае..


Ура. Спасибо, уважаемый. И у меня теперь заработало. Еще раз спасибо. Сейчас буду развивать достижение.

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


Пост N: 50
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 25.05.09 16:50. Заголовок: Поторопился радовать..


Поторопился радоваться. Для локального ADS - работает, для Remote - не работает, выдает сообщение "AdsCreateSqlStatement - error", а все остальное с Remote сервером работает. Какие будут рекомендации?

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


Пост N: 181
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 25.05.09 19:00. Заголовок: Проверьте, что возвр..


Проверьте, что возвращает AdsConnect():

IF ! AdsConnect( <path> )
? "No connection"
RETURN
ENDIF

Кстати, в AdsConnect() что у вас указано ?

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


Пост N: 51
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 26.05.09 09:48. Заголовок: alkresin пишет: Про..


alkresin пишет:

 цитата:
Проверьте, что возвращает AdsConnect():

alkresin пишет:

 цитата:
Проверьте, что возвращает AdsConnect():



Добрый день

Вот такой у меня проверочный тест.


? AdsConnect("m:\" )
if !AdsCreateSqlStatement( ,2 )
? "AdsCreateSqlStatement - error"
return
endif
select(100)
if !AdsExecuteSqlDirect( "SELECT * FROM m:\abonent\dbf\client WHERE street=20" )
? "AdsExecuteSqlDirect - error"
return
endif


AdsConnect("m:\") = .t.
Но при этом выдает "AdsExecuteSqlDirect - error". После этого программа успешно работает дальше, т.е. на m:\ нормально фукнционирует ADS REMOTE.

Если "m:\" заменить на "g:\" (и в SQL запросе тоже), а на g:\ работает ADS Local - то все работает нормально выполняется

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


Пост N: 182
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 26.05.09 12:44. Заголовок: Drive letters in pat..


Drive letters in paths of table names can only be used with Advantage Local Server. When using Advantage Database Server for NT or NetWare, fully qualified paths must use UNC (e.g., "\\server\volume\path\table"), because the SQL statement is parsed at the server where client-side drive letters are not meaningful.
If relative paths are used in SQL statements, the path is considered to be relative to the connection path. For example, a table referenced as "..\alternate\info" would refer to a directory named "alternate" that would be expected to be parallel to the original connection path directory.

Иными словами :), диск ( m:) указывается только для локального сервера. SQL запрос исполняется на сервере, а сервер не знает, на какую букву его распределили на вашей клиентской станции. Путь надо указывать относительно того, что прописан в AdsConnect(). Т.е., в вашем случае надо, по видимому, написать:

AdsExecuteSqlDirect( "SELECT * FROM \abonent\dbf\client WHERE street=20" )


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


Пост N: 52
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 26.05.09 13:09. Заголовок: Получилось. Спасибо ..


Получилось. Спасибо большое. Еще бы ссылку прислали где это можно почитать...

Сейчас начну всех своих 95 пользователей на Харборе заставлять работать. Пусть еще какие-то ошибки и несответствия вылезут. А то я вчера с одной столкнулся - уже был в полном расстройстве и готов был от Харбора отказаться, т.к. непонятно что творилось. Таки нашел несовпадение в работе клиппера и Харбора. А еще сколько таких будет...

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


Пост N: 183
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 26.05.09 13:56. Заголовок: Получилось. Спасибо ..



 цитата:
Получилось. Спасибо большое. Еще бы ссылку прислали где это можно почитать...


Почитать - в help'е к ADS.

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




Пост N: 1147
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.05.09 19:38. Заголовок: Urri пишет: Имеются..


Urri пишет:

 цитата:
Имеются ввиду функции PrintReady() и PrintSend().



Я добавил PrintSend для windows

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



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 27.05.09 12:39. Заголовок: Здравствуйте, Urri! ..


Здравствуйте, Urri!
Если не секрет, какое решение нашел для определения готовности принтера? А то я некоторое время назад пытался здесь получить какое-нибудь решение, но ничего не вышло.

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


Пост N: 53
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 27.05.09 13:06. Заголовок: Добрый день. wad1 п..


Добрый день.

wad1 пишет:

 цитата:
Если не секрет, какое решение нашел для определения готовности принтера? А то я некоторое время назад пытался здесь получить какое-нибудь решение, но ничего не вышло.



Ничего нового, вернулся к старому аля'Клиппер решению:
if isprinter(1)
set console off
set print on
set printer to lpt1.
set device to print
?? cText
set print off
set device to screen
set console on
endif

В далекие времена я от этого варианта отказался в пользу работы через прерывание ft_int86 (я здесь уже писал об этом и о причинах), но сейчас пришлось вспомнить былое, т.к. заставить в харборе эту ф-цию работать пока не удалось


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



Не зарегистрирован
Зарегистрирован: 01.01.70
ссылка на сообщение  Отправлено: 27.05.09 14:40. Заголовок: Почему-то мне не уда..


Почему-то мне не удалось от isprinter() получить реальной информации о готовности принтера: даже если он выключен, возвращается .t.

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


Пост N: 54
Зарегистрирован: 21.04.09
ссылка на сообщение  Отправлено: 27.05.09 15:59. Заголовок: wad1 пишет: Почему-..


wad1 пишет:

 цитата:
Почему-то мне не удалось от isprinter() получить реальной информации о готовности принтера: даже если он выключен, возвращается .t.



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


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




Пост N: 1225
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 27.05.09 16:10. Заголовок: Urri пишет: Наприме..


Urri пишет:

 цитата:
Например, в Клиппере AltR возвращало


Можешь подправить и юзать эту функцию
http://clipper.borda.ru/?1-4-0-00000339-000-0-0-1223272101


Спасибо: 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 час. Хитов сегодня: 150
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет