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


Пост N: 971
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 12.06.16 17:05. Заголовок: LetoDB 2.17


Обновил номер сборки с 1 до 2 и выложил исходники на Sourceforge, а то там лежала версия более чем годичной давности.

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


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




Пост N: 997
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.06.16 17:29. Заголовок: Есть еще одно место ..


Есть еще одно место для замены: http://www.kresin.ru/letodb.html

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


Пост N: 972
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 12.06.16 18:16. Заголовок: Выложил на http://ww..


Выложил на http://www.kresin.ru/letodb.html обновленные дистрибутивы:
исходники, бинарные сборки для Windows (Borland 5.5) и Linux Debian 7 (должны работать и на Ubuntu).

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




Пост N: 3457
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 13.06.16 08:14. Заголовок: Александр, не посмот..


Александр, не посмотрите такую ситуацию:

если выдать:

leto_CloseAll()
leto_CloseAll()

или

leto_CloseAll()
leto_disconnect()

то на 2-м вызове получается gpf

во 2-м случае gpf происходит по той же причине, что и в 1-м, т.к. leto_disConnect() вызывает leto_CloseAll()

Насколько я понимаю, в leto_CloseAll() надо еще как-то вызывать метод release, кроме метода close,
для тех рабочих областей, которые закрываются


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


Пост N: 973
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 13.06.16 09:09. Заголовок: Что-то у меня не пол..


Что-то у меня не получилось воспроизвести это. Поставил в конец tests/test_dbf.prg два вызова leto_CloseAll() - полет нормальный...

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




Пост N: 1103
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 19.07.16 13:49. Заголовок: Получил такую ситуац..


Получил такую ситуацию с длинным именем переменной сервера (добавка кода в tests\test_var.prg):
 
...
j := subs(cPath+'temp2.dbf', 3)
j := StrTran(j, DEF_CH_SEP, "_")
j := StrTran(j, ".", "_")
j := "Var_"+StrTran(j, ":", "_")
? "Adding long name ", j, "to [main] (Ok) "
lRes := leto_varSet( "main", j, "Value = "+j,LETO_VCREAT )
IF lRes
?? " - ", "Ok"
? "long name ", j, "[main]", leto_varGet( "main",j )

? "Delete var_long (Ok) [", j, "]"
lRes := leto_varDel( "main", j )
IF lRes
?? " - ", "Ok"
ELSE
?? " - ", "Err (" + Ltrim(Str(leto_ferror())) + ")"
ENDIF

ELSE
?? " - ", "Err (" + Ltrim(Str(leto_ferror())) + ")"
ENDIF
...

с выделенными строками удаления работает нормально,
если убрать строки удаления переменной с длинным именем, то валится ShowVars() после
arr1 := leto_varGetlist( arr[ i ] ), причем так, что спасает только перезапуск сервера


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




Пост N: 1104
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.07.16 10:33. Заголовок: Вопрос снят. Мах. дл..


Вопрос снят. Мах. длина имени переменной в leto_VarGetList() - 23 байта. Буду исходить из этого.

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




Пост N: 1106
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 24.07.16 14:58. Заголовок: Pasha, alkresin Мож..


Pasha, alkresin
Можно ли на клиенте получить установки сервера из ini
EnableFileFunc = 0
Pass_for_Login = 1
Pass_for_Data = 1
Pass_for_Manage = 1
для понимая состояния сервера
Например установка Pass_for_Login = 1 сваливает сервер, при коннекте с пустыми user, password
это делает manage.exe из поставки \utils\* Скрытый текст




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




Пост N: 1107
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 26.07.16 13:50. Заголовок: Еще вопросик по v.2...


Еще вопросик по v.2.17.b2.
Что не так делаю при создании защищенной переменной на сервере
( LETO_VDENYWR - запрет присваивания значения другим пользователем )
 
letoudf.prg
=======
#include "rddleto.ch"
...
FUNCTION UDF_Init
LOCAL cGroupName := "letodb.ini"
LOCAL nUserStru // := 1
SET AUTORDER TO 1
LETO_VARSET(nUserStru, cGroupName, "lLower" , oApp:lLower, LETO_VCREAT + LETO_VDENYWR)
RETURN Nil

Test_Var.prg
========
...
? "Get [letodb.ini] lLower =",leto_varGet( "letodb.ini", "lLower" ) // ... = .F.
? "Error =",leto_ferror() // 0
? "Set [letodb.ini] lLower = .T."
leto_varSet( "letodb.ini", "lLower", .T. )
? "Error =",leto_ferror() // 0
? "Get [letodb.ini] lLower =",leto_varGet( "letodb.ini", "lLower" ) // ... = .T.
? "Error =",leto_ferror() // 0
...


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




Пост N: 3470
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 30.07.16 16:24. Заголовок: SergKis пишет: Можн..


SergKis пишет:

 цитата:
Можно ли на клиенте получить установки сервера из ini
EnableFileFunc = 0
Pass_for_Login = 1
Pass_for_Data = 1
Pass_for_Manage = 1
для понимая состояния сервера
Например установка Pass_for_Login = 1 сваливает сервер, при коннекте с пустыми user, password



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

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




Пост N: 1108
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 31.07.16 07:34. Заголовок: Pasha пишет: Получит..


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


Разговор о после коннекта. Пытаюсь создать на сервере и получить на клиенте такие данные (к примеру):Скрытый текст

не понял, почему leto_GetAppOptions() дает такие странные данные после leto_SetAppOptions(...) ?


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


Пост N: 1217
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 31.07.16 09:49. Заголовок: SergKis пишет: не п..


SergKis пишет:

 цитата:
не понял, почему leto_GetAppOptions() дает такие странные данные после leto_SetAppOptions(...) ?


А что здесь странного ?


 цитата:
HB_FUNC( LETO_GETAPPOPTIONS )  // mt 
{
USHORT uiNum = hb_parni(1);

switch( uiNum )
{
case 1:
hb_retc( pDataPath );
break;
case 2:
hb_retni( uiDriverDef );
break;
case 4:
hb_retl( bAnyExt );
break;
case 10:
hb_retl( bShareTables );
break;
case 11:
hb_retl( bNoSaveWA );
break;
case 18:
hb_retl( bOptimize );
break;
case 19:
hb_retni( uiAutOrder );
break;
case 20:
hb_retni( uiMemoType );
break;
case 21:
hb_retl( bForceOpt );
break;
}
}



что может возвратить leto_GetAppOptions(3)?

или не дописали или так задумано.



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




Пост N: 1109
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 31.07.16 10:04. Заголовок: Петр пишет DATA..


Петр пишет [quote]`
 
DATA nPort INIT 2812
DATA ip
DATA nTimeOut INIT -1
DATA DataPath INIT ""
DATA LogFile INIT ""
DATA lLower INIT .F.
DATA lFileFunc INIT .F.
DATA lAnyExt INIT .F.
DATA lShare INIT .F. // .T. - new mode, which allows share tables with other processes
DATA lNoSaveWA INIT .F. // .T. - new mode, which forces dbUseArea() each time "open table" is demanded
DATA nDriver INIT 0
DATA lPass4M INIT .F.
DATA lPass4L INIT .F.
DATA lPass4D INIT .F.
DATA cPassName INIT "leto_users"
DATA lCryptTraffic INIT .F.
DATA cTrigger
DATA cPendingTrigger
...
LOCAL lOptimize := .F.
LOCAL lForceOpt := .F.
LOCAL lSetTrigger := .F.
т.е.
1.переменные инициализированы leto_SetAppOptions(...)
2. ::lFileFunc определена из ini
ELSEIF aIni[i,2,j,1] == "ENABLEFILEFUNC"
::lFileFunc := ( aIni[i,2,j,2] == '1' )
leto_GetAppOptions() для нее дает NIL
др. то же не так как устанавливались
3. по разному уст. среда tread
- режим TEST PUBLIC oApp - доступна
- режим RELOAD PUBLIC oApp - нет





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


Пост N: 1218
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 31.07.16 10:12. Заголовок: SergKis пишет: leto..


SergKis пишет:

 цитата:
leto_GetAppOptions() для нее дает NIL


я уточнил свой вопрос, что должна возвращать leto_GetAppOptions(3), исходя из ее реализации?


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




Пост N: 1110
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 31.07.16 10:29. Заголовок: Петр пишет я уточнил..


Петр пишет
 цитата:
я уточнил свой вопрос, что должна возвращать leto_GetAppOptions(3), исходя из ее реализации?


Исторически, я так понимаю, leto_GetAppOptions использовалась только для внутренних вызовов.
Если так и оставлять, тогда должен быть доступна PUBLIC oApp в UDF функциях или приводить leto_GetAppOptions к состоянию использованию в UDF, а под словом "странные" результаты, я имел ввиду несоответствие устанавливаемых и получаемых данных

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


Пост N: 1219
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 31.07.16 10:40. Заголовок: SergKis пишет: а п..


SergKis пишет:

 цитата:
а под словом "странные" результаты, я имел ввиду несоответствие устанавливаемых и получаемых данных


Поскольку описания ни leto_GetAppOptions ни leto_SetAppOptions нет в readme.txt, мы только можем догадываться о мотивах такой реализации.
Если leto_GetAppOptions используется только на сервере (для внутренних вызовов), тогда ее реализацию можно назвать кривой


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




Пост N: 1111
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 31.07.16 10:54. Заголовок: Петр пишет тогда ее..


Петр пишет
 цитата:
тогда ее реализацию можно назвать кривой


У каждой задачи, при взгляде назад (исторически) можно найти кучу старых реализаций, с сегодняшней точки зрения являющейся мусором, кривой реализацией.
"Лучшее - враг хорошего !" (c)

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




Пост N: 3471
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 31.07.16 14:23. Заголовок: SergKis пишет: не п..


SergKis пишет:

 цитата:
не понял, почему leto_GetAppOptions() дает такие странные данные после leto_SetAppOptions(...) ?



Пока единственное назначение функций leto_GetAppOptions()/leto_SetAppOptions() - запись/чтение глобальных установок между prg-кодом (это server.prg) и С-кодом (letofunc.c).
Поскольку для server.prg нет необходимости чтения ряда параметров, это чтение и не реализовано в функции leto_GetAppOptions().
В дальнейшем планировалось переписать значительную часть кода из server.prg на C, и необходимость в в этих функция отпала бы. Но пока это не сделано.
Раз уж клиенту надо знать значение ряда глобальных установок сервера, имеет смысл реализовать это чтение в leto_GetAppOptions(). Тогда клиент сможет их получать посредством вызовов udf-функций.

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




Пост N: 3482
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.08.16 21:19. Заголовок: Пошли какие-то глюки..


Пошли какие-то глюки с git. Когда я делаю коммит, то его сразу не видно. Сделаю следующий коммит - становится видно предыдущий. Таким образом, я сегодня сделал коммит, и стал виден вчерашний.
А мой сегодняшний будет виден, когда я сделаю следующий.
Такой кордебалет начался с августа.

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


Пост N: 1022
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 20.09.16 13:39. Заголовок: В console.prg добави..


В console.prg добавил возможность чтения/записи переменных ( leto_var... ).
P.S. Глюков с коммитом не заметил.

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


Пост N: 1038
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 11.10.16 20:12. Заголовок: Leto_Ping() теперь п..


Leto_Ping() теперь принимает в качестве параметра адрес сервера или номер соединения - чтобы удобнее было пинговать при подключении к нескольким серверам.
Leto_setCurrentConnection() тоже может теперь принимать адрес сервера вместо номера соединения и возвращает номер предыдущего соединения.
Наверное, стоит build 3 выпустить.

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


Пост N: 1040
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 12.10.16 11:39. Заголовок: LetoDB 2.17 build 3


Вышла 3-я сборка, пакет с исходниками выложен на Sourceforge, исходники и пара бинарных - у меня на сайте: http://www.kresin.ru/letodb.html

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




Пост N: 7866
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.09.24 23:45. Заголовок: Какая сейчас последн..


Какая сейчас последняя версия LetoDB ?
Судя по сайту - 2.17 b3, это правильно ?
Там сборка для Debian 7 32-bit, а на Debian 11 64-bit она будет работать ?
Какие есть возможности архивирования одного файла на сервере ?
Как можно сделать архив всех баз каталога ?
Возможно ли отображение бегунка архивации у клиента, кто делает архив ?
Поделитесь опытом пожалуйста.

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


Пост N: 1616
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 27.09.24 14:09. Заголовок: Да, 2.17 b3. > ..


Да, 2.17 b3.

> Там сборка для Debian 7 32-bit, а на Debian 11 64-bit она будет работать ?

Нет. А в чем проблема собрать из исходников?
Хотя я могу выложить Debian 11 64-bit, если надо.

> Какие есть возможности архивирования одного файла на сервере ?
> Как можно сделать архив всех баз каталога ?
Наверное, через udf можно.
Я архивацию баз обычно запускаю через cron (планировщик заданий в Линукс).

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




Пост N: 7871
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.09.24 14:19. Заголовок: alkresin пишет: Нет..


alkresin пишет:

 цитата:
Нет. А в чем проблема собрать из исходников?
Хотя я могу выложить Debian 11 64-bit, если надо.


Спасибо ! Мне уже собрали, пока тестирую.

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




Пост N: 7873
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.09.24 16:20. Заголовок: LetoDB стоит на Linu..


LetoDB стоит на Linux, делаю:
start dbedit -f -letodb=//000.000.000.000:2880/
Не работает с версией 2.17
Но наверное, так и должно быть...

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




Пост N: 4182
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 28.09.24 08:42. Заголовок: Andrey пишет: start..


Andrey пишет:

 цитата:
start dbedit -f -letodb=//000.000.000.000:2880/



Почему такой ip ? И порт не стандартный. С такими параметрами наверное так и должно быть

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




Пост N: 7874
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.09.24 13:23. Заголовок: Ip правильный, порт ..


Ip правильный, порт тоже.
Здесь просто 0 показал.
На сервере установлено 2 задачи LetoDB и LetoDbf

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




Пост N: 4183
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 28.09.24 13:26. Заголовок: Если харбор-программ..


Если харбор-программа, утилита manage коннектится с такими параметрами, то и dbedit тоже будет коннектиться.

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




Пост N: 7875
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.09.24 15:14. Заголовок: Утилита manage конне..


Утилита manage коннектится с такими параметрами, а dbedit - нет.
После нескольких попыток, перестановок, запустилось окно.

Спасибо Pasha !

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




Пост N: 7882
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.10.24 23:01. Заголовок: А как отображать дли..


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

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




Пост N: 4184
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 04.10.24 08:49. Заголовок: Клиент выдает запрос..


Клиент выдает запрос серверу и ждет ответа, сервер выполняет udf и возвращает результат. В процессе выполнения udf никакого обмена пакетами между клиентом и сервером нет и быть не может.
Поэтому перед вызовом udf надо повесить сообщение, и ждать результата. Ну или выполнять udf в отдельном потоке.

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


Пост N: 1744
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 04.10.24 11:31. Заголовок: Andrey пишет: Как п..


Andrey пишет:

 цитата:
Как показать бегунок процесса расчётов ?



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

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




Пост N: 4642
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.10.24 12:43. Заголовок: Andrey пишет: Как по..


Andrey пишет:
 цитата:
Как показать бегунок процесса расчётов ?


Можно исп. переменные сервера, для user, перед запуском создать, на сервере их заполнить в начале длит. операции (счетчик и max. значение). По мере работы, переменную счетчик, вести на сервере, на клиенте по таймеру считывать их значения и считать процент, по окончании операции с клиента переменные удалить - практически все так же, как и обычная работа длит. операции с прерыванием по Esc, например. Это то же можно предусмотреть добавив переменную сервера для прерывания, ее анализировать в длит. операции. Схема, совершенно такая же, как и в обычной работе. Имена переменных делать от user-а (nUserStru для leto 2.17, leto_MgID() для leto 3.0) например или еще как, решения есть

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




Пост N: 7883
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.10.24 13:11. Заголовок: PSP пишет: Делают к..


PSP пишет:

 цитата:
Делают какие-нибудь двигающиеся кружочки/квадратики, чтобы видно было, что процесс не завис. И похер им, что проценты не показывает) И ты так сделай)


Сделал. Авишка висит и не двигается...
Правда отдельный поток не пробовал ещё.

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


Пост N: 1617
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 04.10.24 19:16. Заголовок: На самом деле вариан..


На самом деле варианты решения разные есть, надо только проявить фантазию. Можно, например, написать небольшую программу, которая будет по запросу выполнять эти "длительные расчёты", сделать ее клиентом letodb и запускать ее автоматически. Программа должна будет с определенной периодичностью опрашивать переменную letodb (leto_varget()) и, если найдет там запрос на работу, выполнит ее, записав результат (leto_varset()) в другую переменную. Может и промежуточные сведения записывать. Другие клиетны должны будут просто писать запрос в определенную переменную letodb и периодически опрашивать ее в ожидании ответа.

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




Пост N: 4185
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 04.10.24 20:02. Заголовок: Можно фрагментироват..


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

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




Пост N: 7884
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.10.24 14:15. Заголовок: А нельзя в сам серве..


А нельзя в сам сервер встроить механизм загрузки программ клиента.
Т.е. даёшь в коде программы команду загрузить допустим <мой_код>.hrb (.prg, не надо)
Который располагаешь рядом с letoudf.hrb или в другом каталоге,
потом выполняешь свой код, а потом при завершении выгружаешь этот <мой_код>.hrb

И в letoudf.hrb лишнего кода не будет и программисту лишний раз его пере компилировать НЕ НАДО !

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




Пост N: 4186
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 05.10.24 19:44. Заголовок: Да можно В letoudf...


Да можно

В letoudf.hrb надо добавить функцию:

#ifndef HB_HRB_BIND_DEFAULT
#define HB_HRB_BIND_DEFAULT 0x0
#endif

Function UDF_HrbLoad( nUserStru, cHrbName )
Local pHrb := hb_HrbLoad(HB_HRB_BIND_DEFAULT, hb_dirBase() + cHrbName )
Return ! Empty(pHrb)

Положить свой hrb модуль в папку letodb на сервере, и вызывать загрузку этого модуля с клиента.

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




Пост N: 7886
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 05.10.24 23:03. Заголовок: Pasha пишет: Положи..


Pasha пишет:

 цитата:
Положить свой hrb модуль в папку letodb на сервере, и вызывать загрузку этого модуля с клиента.


А как выгружать ? Или не нужно этого делать ?

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




Пост N: 4187
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 06.10.24 08:34. Заголовок: Можно так: #ifndef ..


Можно так:

#ifndef HB_HRB_BIND_DEFAULT
#define HB_HRB_BIND_DEFAULT 0x0
#endif

Static aHrb := {}

...

Function UDF_HrbLoad( nUserStru, cHrbName )
Local pHrb := hb_HrbLoad(HB_HRB_BIND_DEFAULT, hb_dirBase() + cHrbName )
Local nId
if ! Empty(pHrb)
AADD(aHrb, pHrb)
nId := Len(aHrb)
else
nId := 0
endif
Return nId

Function UDF_HrbUnload( nUserStru, nId )
if nId # 0 .and. nId <= Len(aHrb) .and. aHrb[nId] # 0
hb_hrbUnload(aHrb[nId])
aHrb[nId] := 0
endif
Return nil

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




Пост N: 7891
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.10.24 16:40. Заголовок: Спасибо БОЛЬШОЕ ! :..


Спасибо БОЛЬШОЕ !
Буду пробовать...

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




Пост N: 7892
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.10.24 22:20. Заголовок: А ещё вопрос про арх..


А ещё вопрос про архивы базы на ЛетоДб.
ЛетоДб стоит у заказчика, крутится круглосуточно, прога постоянно в памяти.
А нельзя сделать/назначить время когда бы делался архив БД автоматом самостоятельно ?

Зачем ставить планировщик, смотреть его, а если нет доступа к серверу, только через чужого админа.
А админа сейчас вообще не найдешь...

А так указал в ини-файле время срабатывания архивации и указать путь архивации и пускай делает эту операцию само ЛетоДб !
И ещё запуск утилиты после архивации, чтобы в облако переслало этот архив.
И будет счастье программисту, не надо лазить проверять делается ли архив или нет.

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




Пост N: 4648
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 07.10.24 23:27. Заголовок: Andrey пишет А так у..


Andrey пишет
 цитата:
А так указал в ини-файле время срабатывания архивации и указать путь архивации и пускай делает эту операцию само ЛетоДб


Паша пишет
 цитата:
Клиент выдает запрос серверу и ждет ответа, сервер выполняет udf и возвращает результат. В процессе выполнения udf никакого обмена пакетами между клиентом и сервером нет и быть не может.


Делай клиента рядом с сервером, который будет выполнять все, что ты написал выше, как пример, смотри
LetoDBf-master\utils\backup

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




Пост N: 7931
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.11.24 16:01. Заголовок: А как в LetoDb-2.17 ..


А как в LetoDb-2.17 удалить пользователя ?
По доке нашёл это:
      7.8 Функции управления пользователями 

LETO_USERADD( cUserName, cPass [, cRights ] ) --> lSuccess
LETO_USERPASSWD( cUserName, cPass ) --> lSuccess
LETO_USERRIGHTS( cUserName, cRights ) --> lSuccess
LETO_USERFLUSH() --> lSuccess
LETO_USERGETRIGHTS() --> cRights

В версии 3.00 есть возможность удалять одного юзера:
      Leto_UserDelete( cUsr )


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




Пост N: 7997
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 24.11.24 19:49. Заголовок: Andrey пишет: Leto..


Andrey пишет:

 цитата:
Leto_UserDelete( cUsr )


это в LetoDbf а в LetoDb судя по сырцам этого нет

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

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