Автор | Сообщение |
Dima
|
| |
Пост N: 2728
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.03.13 11:27. Заголовок: Leto DB Server (продолжение 9)
Продолжаем тут
|
|
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|
Pasha
|
| Администратор
|
Пост N: 3215
Зарегистрирован: 23.05.05
|
|
Отправлено: 10.09.14 12:43. Заголовок: А зачем может понадо..
А зачем может понадобиться несколько служб LetoDB ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 412
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.09.14 16:23. Заголовок: Pasha пишет:А зачем ..
Pasha пишет: цитата: | А зачем может понадобиться несколько служб LetoDB ? |
| Службами разделены клиенты (их базы) по требованиям безопасности.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 3623
Зарегистрирован: 12.09.06
|
|
Отправлено: 10.09.14 20:45. Заголовок: SergKis пишет: Служ..
SergKis пишет: цитата: | Службами разделены клиенты (их базы) по требованиям безопасности. |
| Вообще то это было бы интересней - несколько служб LetoDB. И сколько ресурсов (в среднем) будет "отъедать" одна служба LetoDB на сервере ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 423
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.10.14 14:08. Заголовок: Pasha Возможна ли р..
Pasha Возможна ли работа LetoDb клиента в потоках ?
|
|
|
Dima
|
| |
Пост N: 4235
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.10.14 21:28. Заголовок: SergKis пишет: Возм..
SergKis пишет: цитата: | Возможна ли работа LetoDb клиента в потоках ? |
| Сам чекани. Из своих наблюдений: 1. Объект EXCEL создать в отдельном потоке не возможно. 2. Пробовал в ADS юзать одни и те же базы в разных потоках одновременно , падает. Если в порядке очереди все нормально.
|
|
|
Pasha
|
| Администратор
|
Пост N: 3216
Зарегистрирован: 23.05.05
|
|
Отправлено: 23.10.14 09:22. Заголовок: Наверное, нельзя. Се..
Наверное, нельзя. Сейчас у клиента rdd leto имеются статические данные, и в результате клиент не сможет работать в разных потоках. Эту проблему, положим, решить довольно легко. Но сам сервер для обслуживания клиента создает отдельный поток, и, если запросы с клиента будут поступать с нескольких потоков этого клиента, сервер не сможет их обслужить.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 424
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.10.14 09:57. Заголовок: Pasha пишет:Наверное..
Pasha пишет: Сегодня у нас есть CDX в потоках+Leto сервер (старая версия) с Share_Tables = 1. Сейчас пробуем переползти на последнюю версию Leto и хотелось бы отказаться от CDX в потоках. цитата: | Эту проблему, положим, решить довольно легко |
| это было бы здорово , особенно, если коннект один (общий), а работа с таблицами в потоках.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 425
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.10.14 10:02. Заголовок: Dima с EXCEL и Open..
|
|
|
nbatocanin
|
| |
Пост N: 5
Зарегистрирован: 06.05.14
|
|
Отправлено: 12.11.14 20:30. Заголовок: Здравствуйте, Mне н..
Здравствуйте, Mне нужно, чтобы отфильтровать таблицу ARTIKLI по содержанию другой таблице (MAGKOL). Таблица MAGKOL содержать информацию о количестве каждого элемента на складах. Я хочу показать только элементы которые существуют на складе. Я знаю, что LETODB не поддерживается SET RELATION отношении в SET FILTER. Что бы Вы посоветовали? Ненад
|
|
|
Dima
|
| |
Пост N: 4260
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.11.14 22:35. Заголовок: разве что выкинуть в..
разве что выкинуть все во временную базу и ее показать (вариант видится не один) PS Не очень корректно видимо изначально спроектирована сама база.
|
|
|
nbatocanin
|
| |
Пост N: 6
Зарегистрирован: 06.05.14
|
|
Отправлено: 13.11.14 07:02. Заголовок: У меня есть следующи..
У меня есть следующие таблицы: ARTIKLI: a_id a_name ------ ------------- 1 Milk 2 Cookie 3 Chocolate MAGACIN: m_id m_name ------ -------------- 1 Magacin 1 X 2 Magacin 2 X 3 Magacin 3 MAGKOL mk_mag mk_art mk_kol ------- -------- -------- 1 1 10 1 2 0 1 3 0 2 1 5 2 2 0 2 3 12 3 1 100 3 2 100 3 3 100 Например, первая запись в magkol означает склад ID = 1 имеет 10 штук молока. Пользователь выбирает несколько складов (скажем, 1 и 2). Я хочу все элементы в склад, который имеет 1 или 2: TBrowse: Name Quant. ----------- ------ Chocolate 12 (= 0 + 12) Cookie 0 (= 0 + 0) Milk 15 (= 10 + 5) В этом случае, не нада показывать вторую строку (=0). Теперь у меня есть функция, которая вычисляет сумму в выбранный и я пишу: SELECT Artikli SET FILTER TO CalcMagKol() <> 0 Я надеюсь, что это теперь яснее. Привет, NB
|
|
|
|
Pasha
|
| Администратор
|
Пост N: 3225
Зарегистрирован: 23.05.05
|
|
Отправлено: 13.11.14 13:28. Заголовок: Сейчас средствами ст..
Сейчас средствами стандартного серверного фильтра этого сделать нельзя. Посмотрите в сторону функции UDF_getFields, которая находится в модуле letoudf.hrb Она фильтр не установит, но с ее помощью можно вернуть массив с данными обеих таблиц. Массив формируется одним запросом к серверу.
|
|
|
nbatocanin
|
| |
Пост N: 7
Зарегистрирован: 06.05.14
|
|
Отправлено: 13.11.14 20:04. Заголовок: Я не могу найти эту ..
Я не могу найти эту функцию? Где она точно находится? Спасибо, Ненад
|
|
|
sashaBG
|
| постоянный участник
|
Пост N: 155
Зарегистрирован: 15.09.05
|
|
Отправлено: 13.11.14 22:39. Заголовок: tests
находится в test\letoudf.prg строка 304 Класная функция . Возмещает отсутствия SQL запросов . Спасибо Паша !
|
|
|
Pasha
|
| Администратор
|
Пост N: 3227
Зарегистрирован: 23.05.05
|
|
Отправлено: 14.11.14 08:32. Заголовок: см. tests/letoudf.pr..
см. tests/letoudf.prg Этот модуль надо скомпилировать командой harbour letoudf.prg -gh -n -w -i\harbour\include и поместить letoudf.hrb в папку, в которой расположен letodb.exe
|
|
|
nbatocanin
|
| |
Пост N: 8
Зарегистрирован: 06.05.14
|
|
Отправлено: 14.11.14 16:03. Заголовок: Спасибо!..
Спасибо!
|
|
|
nbatocanin
|
| |
Пост N: 10
Зарегистрирован: 06.05.14
|
|
Отправлено: 30.11.14 22:02. Заголовок: сервер функция
Я хочу сделать сервер функцию которая изменяет DBF: клиент: USE test Leto_UDF ("Udf_Test") сервер: FUNCTION Udf_Test (nUserStru) cTest := leto_Alias (nUserStru, "Test") // cTest = NIL?? ... Почему это не работает?
|
|
|
Pasha
|
| Администратор
|
Пост N: 3231
Зарегистрирован: 23.05.05
|
|
Отправлено: 02.12.14 10:18. Заголовок: Проверил - работает...
Проверил - работает. С такими поправками: Пусть cPath - строка коннекта к серверу, f.e.: cPath:="//127.0.0.1:2812/" 1. Надо или выдать: if (nConnect:=leto_connect(cPath))<>-1 или при вызове udf-функции напрямую указывать параметры сервера: ? leto_udf(cPath + 'UDF_Test') 2. Открывать файл с параметрами коннекта: use (cPath + 'test') В целом, такой пример получается рабочим: if (nConnect:=leto_connect(cPath))<>-1 use (cPath + 'test') ? leto_udf('UDF_Test') wait endif
|
|
|
nbatocanin
|
| |
Пост N: 11
Зарегистрирован: 06.05.14
|
|
Отправлено: 04.12.14 06:25. Заголовок: Вот то, что я делаю:..
Вот то, что я делаю: добавил следующее в конце server.prg: FUNCTION Udf_ArtKol (nUserStru) LOCAL cLetoArt cLetoArt := leto_Alias (nUserStru, "Artikli") RETURN cLetoArt Тогда я произвел LetoDB (hbmk2 letodbc.hbp). Затем я активировал тестовую программу: REQUEST LETO PROC Main RddSetDefault ("LETO") cPath := "//192.168.99.1:2807/LetoDB/" USE (cPath + "Artikli") ALIAS Artikli NEW DbSetIndex (cPath + "Art_ID") x := Leto_UDFExist("//192.168.99.1:2807/Udf_ArtKol") y := Leto_UDF ("//192.168.99.1:2807/Udf_ArtKol") ? "ret=", x, y Inkey(0) CLOSE Artikli RETURN Программа возвращается "ret=.T. NIL", а в letodb.log пишет: 12/04/14 04:07:07: Leto DB Server has been started. Leto DB Server v.2.14 ! INIT: DataPath=d:\test, ShareTables=0, MaxUsers=500, Max Tables=5000, CacheRecords=500 DEBUG! new connect 192.168.99.10 (0 : 1 : 1) leto_errInternal!!!!!!!!!!!!!!!!!!
|
|
|
sashaBG
|
| постоянный участник
|
Пост N: 156
Зарегистрирован: 15.09.05
|
|
Отправлено: 07.12.14 14:27. Заголовок: Надо сделать по другому
1. Функцию Udf_ArtKol (nUserStru) надо добавить в tests\letoudf.prg 2. Откомпилировать kоманндой harbour /gh letoudf.prg 3. Полученый фаил letoudf.hrb поставить в папку где у тебя лежит letodb.exe 4. При старте letodb загрузит letoudf.hrb ( етого можно увидить в логе) 5. Възов UDF функции должен осуществлятся только через имя функции : x := Leto_UDFExist("Udf_ArtKol") y := Leto_UDF ("Udf_ArtKol") если есть параметры вот так : Leto_UDF ("Udf_ArtKol", Param1, Param2)
|
|
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|