Форум » LetoDB, HbNetio. » Вопросы новичка... » Ответить

Вопросы новичка...

Andrey: Взял последнюю версию с "Новая страница с бинарниками", установил на Win2008 Server, чуток помучился с портом... Собрал на МиниГуи+BCC 551 - \MiniGui\batch\hbmk2.bat rddleto.hbp Получил rddleto.lib - 131072 байт - правильный ли размер ? И еще Warning-и лезут: lib\.hbmk\win\bcc\rddsys.c: source\client\letocl.c: source\client\leto1.c: source\client\letomgmn.c: source\common\blowfish.c: source\common\common_c.c: source\common\hbip.c: TLIB 4.5 Copyright (c) 1987, 1999 Inprise Corporation /P32 lib\rddleto.lib -+ lib\.hbmk\win\bcc\rddsys.obj -+ lib\.hbmk\win\bcc\letocl.obj -+ lib\.hbmk\win\bcc\leto1.obj -+ lib\.hbmk\win\bcc\letomgmn.obj -+ lib\.hbmk\win\bcc\blowfish.obj -+ lib\.hbmk\win\bcc\common_c.obj -+ lib\.hbmk\win\bcc\hbip.objWarning: 'rddsys' not found in library Warning: 'letocl' not found in library Warning: 'leto1' not found in library Warning: 'letomgmn' not found in library Warning: 'blowfish' not found in library Warning: 'common_c' not found in library Warning: 'hbip' not found in library Так должно быть или нет ? Вопрос сразу напрашивается с путями - как писать правильно "\" или "/" : Local cPathServer := "//127.0.0.1:2812/" cPathServer := cPathServer +"DATE_TEST_PATH\test.dbf" Помню что где то обсуждали, а результат не запомнил...

Ответов - 300, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

Haz: Andrey пишет: А где его взять ? Гуглить справку по SIX https://www.google.ru/search?q=Sx_SetTrigger&oq=Sx_SetTrigger&aqs=chrome..69i57.1959j0j8&sourceid=chrome&ie=UTF-8

SergKis: Andrey Вот пример [pre2] ////////////////////////////////////////////////////////////////// FUNCTION UDF_Test_Trigger( nEvent, nArea, nPos, xTrigVal ) dbInfo(DBI_TRIGGER, .F.) WrLog( hb_valtoexp({ GetTriggerEvent(nEvent), nEvent, nArea, nPos, xTrigVal }) ) dbInfo(DBI_TRIGGER, .T.) RETURN .T. FUNCTION GetTriggerEvent( nEvent ) LOCAL a := { ; 'EVENT_PREUSE ', ; // 1 'EVENT_POSTUSE ', ; // 2 'EVENT_UPDATE ', ; // 3 'EVENT_APPEND ', ; // 4 'EVENT_DELETE ', ; // 5 'EVENT_RECALL ', ; // 6 'EVENT_PACK ', ; // 7 'EVENT_ZAP ', ; // 8 'EVENT_PUT ', ; // 9 'EVENT_GET ', ; // 10 'EVENT_PRECLOSE ', ; // 11 'EVENT_POSTCLOSE ', ; // 12 'EVENT_PREMEMOPACK ', ; // 13 'EVENT_POSTMEMOPACK', ; // 14 'EVENT_ERROR ' ; // } IF nEvent > len(a) .or. nEvent < 1 nEvent := len(a) ENDIF RETURN a[ nEvent ] [/pre2]

Andrey: SergKis пишет: Вот пример Спасибо ! А как на клиенте получать и опрашивать событие ?

Pasha: Andrey пишет: А как на клиенте получать и опрашивать событие ? На клиенте хочется получать событие, что другой клиент выполнил какое-то обновление БД ? Как ты себе это представляешь ? Это значит, что сервер должен в ответ на запрос с одного клиента начать отправлять пакеты всем клиентам, которые к нему подключены. А клиенты должны висеть в ожидании такого пакета. Как бы letodb работает совсем в другом режиме. Наверное надо сделать по другому. Пусть триггер в letodb ведет какой-то лог изменений, а клиенты пусть опрашивают этот лог, и выбирают из него то, что им надо.

Andrey: Pasha пишет: На клиенте хочется получать событие, что другой клиент выполнил какое-то обновление БД ? В идеале - да ! Хочется такого. В jave есть такое, мне показывали... Подробнее напишу чуть позже, уточню...

PSP: Andrey, делаешь отдельное приложение, которое постоянно выполняется на компьютере, где установлен сервер, и ведет некий журнал, в который записывает эти события. Клиентские же приложения могут в отдельном потоке периодически проверять этот журнал. Так им можно передать эти события.

Dima: PSP пишет: делаешь отдельное приложение, которое постоянно выполняется на компьютере, где установлен сервер лучше в виде сервиса наверное.

PSP: Dima пишет: лучше в виде сервиса наверное. Конечно лучше)

Andrey: PSP пишет: делаешь отдельное приложение, которое постоянно выполняется на компьютере, где установлен сервер, и ведет некий журнал, в который записывает эти события. А зачем это делать ? Есть же событие в базе добавление/удаление/изменение - вот пускай LetoDb его выдает. Это же сервер, а не что-нибудь. В PostgreSQL такое же есть (LISTEN/NOTIFY) ! https://postgrespro.ru/doc/sql-notify.html Вот и хочу получать такие события на клиенте, которые подписались на такие события сервера Leto.

Andrey: А вообще возможно ли получение сообщения от сервера Leto клиенту ?

SergKis: Andrey пишет:возможно ли получение сообщения от сервера Leto клиенту ? 1. Создаешь переменную(ые) с клиента или в udf_init сервера : LETO_VARSET( cGroupName, cVarName, xValue[, nFlags[, @xRetValue]] ) --> lSuccess или на сервере LETO_VARSET( nUserStru, cGroupName, cVarName, xValue[, nFlags ) --> lSuccess 2. в триггере, если переменная(ые) есть, заполняешь, на клиенте проверяешь изменилось или нет значение

Dima: SergKis пишет: LETO_VARSET Кстати нормальный вариант

Andrey: По доке: Crypt_Traffic = 0 - если 1, то данные, передаваемые по сети, шифруются; Каким алгоритмом шифруется и насколько снижается скорость выполнения при шифрации /дешифрации ?

Pasha: Используется симметричный криптоалгоритм blowfish. Он должен быть быстрым. Насколько быстро выполняется шифровка-дешифровка - я не проверял, так как для своих программ шифровку не использую.

Andrey: Как сделать для своих программ на МиниГуи отдельную dll-ку LetoDB ? И как в своей программе подключать эту dll-ку ?

PSP: Andrey пишет: Как сделать для своих программ на МиниГуи отдельную dll-ку LetoDB ? И как в своей программе подключать эту dll-ку ? Какие причины так делать?

Andrey: PSP пишет: Какие причины так делать? Да научиться хочу. У многих других баз работа через dll (PostgreSQL, ADS)... Тем более dbedit был раньше с несколькими dll-ками.

Dima: PSP пишет: Какие причины так делать? +1 Тоже не понял смысла...

Haz: Dima пишет: Тоже не понял смысла... присоединяюсь. не ясно зачем ? обычно dll используется для часто используемых вызовов , чтоб не плодить их в разных программах. Но возможно это давняя мечта - собрать dll http://hwgui.borda.ru/?1-1-0-00000023-000-0-0#004 С тех пор не раз видел ( вроде и на этом форуме ) примеры сборки. Но главный вопрос - зачем ??? Andrey пишет: У многих других баз работа через dll (PostgreSQL, ADS). с версиями этих DLL при смене версии сервера ADS - отдельное развлечение на удаленке и хрен поменяешь пока не срубишь задачу которая ее держит

PSP: https://ru.wikipedia.org/wiki/DLL_hell



полная версия страницы