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




Пост N:4156
Зарегистрирован:12.09.06
ссылка на сообщение  Отправлено:04.05.15 22:44.Заголовок:Вопросы новичка...


Взял последнюю версию с "Новая страница с бинарниками", установил на 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"

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

Спасибо: 0 
Профиль
Ответов -300 ,стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


Dima
администратор




Пост N:5515
Зарегистрирован:17.05.05
ссылка на сообщение  Отправлено:13.03.16 22:24.Заголовок:Andrey пишет: Т.е. ..


Andrey пишет:

 цитата:
Т.е. как сделать, чтобы новый коннект был другим ?


Наверное это просто не большая не доработка Leto и которую Павел сможет исправить.


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




Пост N:4780
Зарегистрирован:12.09.06
ссылка на сообщение  Отправлено:13.03.16 22:27.Заголовок:Dima пишет: Наверно..


Dima пишет:

 цитата:
Наверное это просто не большая не доработка Leto и которую Павел сможет исправить.


А в ADS как делается ?

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




Пост N:5516
Зарегистрирован:17.05.05
ссылка на сообщение  Отправлено:13.03.16 23:49.Заголовок:Andrey пишет: А в A..


Andrey пишет:

 цитата:
А в ADS как делается ?


Там юзается AdsConnect() , затем AdsConnection()для получения хендла , но я не чекал
разный ли он , но проверить можно.

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




Пост N:3407
Зарегистрирован:23.05.05
ссылка на сообщение  Отправлено:14.03.16 08:09.Заголовок:nConnection - это но..


nConnection - это номер соединения только на одном клиенте, то есть в рамках одного приложения.
Чтобы получить номер клиента на сервере, надо сделать вызов:

RddInfo( RDDI_CLIENTID,,, [nConnection] )


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




Пост N:4781
Зарегистрирован:12.09.06
ссылка на сообщение  Отправлено:14.03.16 14:23.Заголовок:Pasha пишет: то ест..


Pasha пишет:

 цитата:
то есть в рамках одного приложения.


Я запускал сразу несколько разных тестовых программ к 2 серверам, везде nConnection = 1.
Только соединение делал простое, только путь и всё.
nConnection := LETO_CONNECT( cPathServer )

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




Пост N:4782
Зарегистрирован:12.09.06
ссылка на сообщение  Отправлено:14.03.16 14:27.Заголовок:Pasha пишет: Чтобы ..


Pasha пишет:

 цитата:
Чтобы получить номер клиента на сервере, надо сделать вызов:
RddInfo( RDDI_CLIENTID,,, [nConnection] )


А как потом у себя в программе закрыть только нужное соединение, не закрывая другого ?
LETO_DISCONNECT(nConnection)


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




Пост N:3408
Зарегистрирован:23.05.05
ссылка на сообщение  Отправлено:14.03.16 14:52.Заголовок:Я запускал сразу нес..



 цитата:
Я запускал сразу несколько разных тестовых программ к 2 серверам, везде nConnection = 1.
Только соединение делал простое, только путь и всё.
nConnection := LETO_CONNECT( cPathServer )



Одна клиентская программа ничего не знает про то, к каким серверам коннектились другие, поэтому в каждой программе nConnection нумеруются с единицы. Точно так же сервер не знает, к каким еще серверам был коннект у его клиентов. Поэтому есть номера соединений на клиенте - это nConnection, и номера клиентов на сервере - это RDDI_CLIENTID
А для закрытия соединения - да, надо использовать nConnection
Но можно еще и указывать адрес сервера:

LETO_DISCONNECT( [ cConnString | nConnection ] ) --> nil


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




Пост N:4784
Зарегистрирован:12.09.06
ссылка на сообщение  Отправлено:14.03.16 15:34.Заголовок:Pasha пишет: А для ..


Pasha пишет:

 цитата:
А для закрытия соединения - да, надо использовать nConnection
Но можно еще и указывать адрес сервера:

LETO_DISCONNECT( [ cConnString | nConnection ] ) --> nil



Если в одной программе адрес и пути одинаковы, то несколько nConnection не получиться ?

Как тогда можно организовать в одной программе ОДНОВРЕМЕННО из клиента допустим следующее:
1) показ базы TEST с сервера
2) обработку базы TEST (добавление записей, ну по мелочи что-то)


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




Пост N:3410
Зарегистрирован:23.05.05
ссылка на сообщение  Отправлено:14.03.16 16:30.Заголовок:Зачем с одной програ..


Зачем с одной программы делать несколько коннектов к одному и тому же серверу letodb ?
leto_connect() работает следующим образом:

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


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




Пост N:4786
Зарегистрирован:12.09.06
ссылка на сообщение  Отправлено:14.03.16 17:18.Заголовок:Pasha пишет: При по..


Pasha пишет:

 цитата:
При повторном вызове с такой же строкой коннекта определяется, что такой коннект уже есть, новый коннект не устанавливается, и возвращается тот же номер коннекта, т.е. 1.



Чуток понял - как коннект выполняется...
А как тогда решить разрывать коннект или нет ?
Использовать Public переменную для определения, есть ли открытая база или нет ?

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


Пост N:1193
Зарегистрирован:27.01.07
ссылка на сообщение  Отправлено:14.03.16 19:03.Заголовок:Andrey пишет: А как..


Andrey пишет:

 цитата:
А как тогда решить разрывать коннект или нет ?


А зачем его разрывать?

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




Пост N:4788
Зарегистрирован:12.09.06
ссылка на сообщение  Отправлено:14.03.16 20:48.Заголовок:PSP пишет: А зачем ..


PSP пишет:

 цитата:
А зачем его разрывать?


Ну не хотелось бы его держать постоянно открытым...
Хотя наверно и можно.
Не знаю, не делал таких программ, вот и спрашиваю как делать.
При запуске коннектиться к базе и держать постоянно открытым соединение ?

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


Пост N:1194
Зарегистрирован:27.01.07
ссылка на сообщение  Отправлено:14.03.16 21:19.Заголовок:Andrey пишет: Ну не..


Andrey пишет:

 цитата:
Ну не хотелось бы его держать постоянно открытым...
Хотя наверно и можно.
Не знаю, не делал таких программ, вот и спрашиваю как делать.
При запуске коннектиться к базе и держать постоянно открытым соединение ?


Постоянно будет открыто только tcp-соединение. Файлы базы данных можешь закрывать, если хочешь. К ним это соединение не имеет отношения.

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




Пост N:4789
Зарегистрирован:12.09.06
ссылка на сообщение  Отправлено:15.03.16 02:17.Заголовок:PSP пишет: Постоянн..


PSP пишет:

 цитата:
Постоянно будет открыто только tcp-соединение.



А какие ресурсы в программе задействует открытие tcp-соединения ?
Что положительного и отрицательного в постоянно открытом tcp-соединение ?

Или при входе в программу делать один коннект и не заморачиваться ?

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

Чем дальше в лес, тем больше вопросов...

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



Пост N:286
Зарегистрирован:03.12.08
ссылка на сообщение  Отправлено:15.03.16 10:39.Заголовок:Протоколу TCP не важ..


Протоколу TCP не важно какой сервер ....

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


Пост N:1195
Зарегистрирован:27.01.07
ссылка на сообщение  Отправлено:15.03.16 12:56.Заголовок:Andrey пишет: А как..


Andrey пишет:

 цитата:
А какие ресурсы в программе задействует открытие tcp-соединения ?


Никакие. Соединение устанавливает операционная система. Программа просто им пользуется, как и остальными ресурсами компьютера.

 цитата:
Что положительного и отрицательного в постоянно открытом tcp-соединение ?


Ничего отрицательного в этом нет. К примеру, браузер в процессе работы может открывать сотни(!!!) соединений с разными ресурсами, чтобы отобразить корректно html-страницу.

 цитата:
Или при входе в программу делать один коннект и не заморачиваться ?


Вот именно.

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


Два разных сервера, - два соединения.


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




Пост N:4790
Зарегистрирован:12.09.06
ссылка на сообщение  Отправлено:15.03.16 19:43.Заголовок:PSP СПАСИБО ! :sm36..


PSP СПАСИБО !

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




Пост N:4793
Зарегистрирован:12.09.06
ссылка на сообщение  Отправлено:17.03.16 16:37.Заголовок:Вопрос по событиям в..


Вопрос по событиям в LetoDB.

Есть ли возможность подписаться на событие добавления/редактирования/удаления записи в LetoDb ?

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




Пост N:3412
Зарегистрирован:23.05.05
ссылка на сообщение  Отправлено:18.03.16 08:15.Заголовок:Можно установить гло..


Можно установить глобальный триггер: letodb.ini есть параметры:

Trigger = <cFuncName> - Глобальная функция letodb RDDI_TRIGGER
PendingTrigger = <cFuncName>- Глобальная функция letodb RDDI_PENDINGTRIGGER
EnableSetTrigger = 0 - если 1, разрешает изменять установки триггера
с помощью dbInfo( DBI_TRIGGER, ... )

Можно с клиента сделать вызов для рабочей области:

dbInfo(DBI_TRIGGER, ...)

и передали серверу имя функции - триггера. Саму функцию надо реализовать в модуле letiudf.prg
Как работает триггер см.описание Sx_SetTrigger
Особенность letodb в том, что триггер выполняется на сервере.


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




Пост N:4797
Зарегистрирован:12.09.06
ссылка на сообщение  Отправлено:18.03.16 12:06.Заголовок:Pasha пишет: Как ра..


Pasha пишет:

 цитата:
Как работает триггер см.описание Sx_SetTrigger


А где его взять ?



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