On-line: Haz, tnsr2, гостей 2. Всего: 4 [подробнее..]
АвторСообщение
Dima
администратор




Пост N: 2728
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.03.13 11:27. Заголовок: Leto DB Server (продолжение 9)


Продолжаем тут

Спасибо: 0 
Профиль
Ответов - 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 ?

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




Пост N: 412
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.09.14 16:23. Заголовок: Pasha пишет:А зачем ..


Pasha пишет:
 цитата:
А зачем может понадобиться несколько служб LetoDB ?


Службами разделены клиенты (их базы) по требованиям безопасности.

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




Пост N: 3623
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 10.09.14 20:45. Заголовок: SergKis пишет: Служ..


SergKis пишет:

 цитата:
Службами разделены клиенты (их базы) по требованиям безопасности.


Вообще то это было бы интересней - несколько служб LetoDB.
И сколько ресурсов (в среднем) будет "отъедать" одна служба LetoDB на сервере ?

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




Пост N: 423
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.10.14 14:08. Заголовок: Pasha Возможна ли р..


Pasha
Возможна ли работа LetoDb клиента в потоках ?


Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4235
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 22.10.14 21:28. Заголовок: SergKis пишет: Возм..


SergKis пишет:

 цитата:
Возможна ли работа LetoDb клиента в потоках ?


Сам чекани.

Из своих наблюдений:
1. Объект EXCEL создать в отдельном потоке не возможно.
2. Пробовал в ADS юзать одни и те же базы в разных потоках одновременно , падает. Если в порядке очереди
все нормально.


Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 3216
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 23.10.14 09:22. Заголовок: Наверное, нельзя. Се..


Наверное, нельзя. Сейчас у клиента rdd leto имеются статические данные, и в результате клиент не сможет работать в разных потоках. Эту проблему, положим, решить довольно легко. Но сам сервер для обслуживания клиента создает отдельный поток, и, если запросы с клиента будут поступать с нескольких потоков этого клиента, сервер не сможет их обслужить.

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




Пост N: 424
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.10.14 09:57. Заголовок: Pasha пишет:Наверное..


Pasha пишет:
 цитата:
Наверное, нельзя


Сегодня у нас есть CDX в потоках+Leto сервер (старая версия) с Share_Tables = 1.
Сейчас пробуем переползти на последнюю версию Leto и хотелось бы отказаться от CDX в потоках.

 цитата:
Эту проблему, положим, решить довольно легко


это было бы здорово , особенно, если коннект один (общий), а работа с таблицами в потоках.

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




Пост N: 425
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.10.14 10:02. Заголовок: Dima с EXCEL и Open..


Dima
с EXCEL и OpenOffis работаем через: http://www.libxl.com/

Спасибо: 0 
Профиль
nbatocanin



Пост N: 5
Зарегистрирован: 06.05.14
ссылка на сообщение  Отправлено: 12.11.14 20:30. Заголовок: Здравствуйте, Mне н..


Здравствуйте,

Mне нужно, чтобы отфильтровать таблицу ARTIKLI по содержанию другой таблице (MAGKOL). Таблица MAGKOL содержать информацию о количестве каждого элемента на складах. Я хочу показать только элементы которые существуют на складе.

Я знаю, что LETODB не поддерживается SET RELATION отношении в SET FILTER. Что бы Вы посоветовали?

Ненад



Спасибо: 0 
Профиль
Dima
администратор




Пост N: 4260
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.11.14 22:35. Заголовок: разве что выкинуть в..


разве что выкинуть все во временную базу и ее показать (вариант видится не один)

PS
Не очень корректно видимо изначально спроектирована сама база.

Спасибо: 0 
Профиль
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

Спасибо: 0 
Профиль
Pasha
Администратор




Пост N: 3225
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 13.11.14 13:28. Заголовок: Сейчас средствами ст..


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

Спасибо: 0 
Профиль
nbatocanin



Пост N: 7
Зарегистрирован: 06.05.14
ссылка на сообщение  Отправлено: 13.11.14 20:04. Заголовок: Я не могу найти эту ..


Я не могу найти эту функцию? Где она точно находится?

Спасибо,

Ненад

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




Пост N: 155
Зарегистрирован: 15.09.05
ссылка на сообщение  Отправлено: 13.11.14 22:39. Заголовок: tests


находится в test\letoudf.prg
строка 304

Класная функция . Возмещает отсутствия SQL запросов .

Спасибо Паша !

Спасибо: 0 
Профиль
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

Спасибо: 1 
Профиль
nbatocanin



Пост N: 8
Зарегистрирован: 06.05.14
ссылка на сообщение  Отправлено: 14.11.14 16:03. Заголовок: Спасибо!..


Спасибо!

Спасибо: 0 
Профиль
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??
...

Почему это не работает?



Спасибо: 0 
Профиль
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


Спасибо: 0 
Профиль
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!!!!!!!!!!!!!!!!!!

Спасибо: 0 
Профиль
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)

Спасибо: 1 
Профиль
Ответов - 301 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 420
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет