On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
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 час. Хитов сегодня: 17
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет