On-line: гостей 2. Всего: 2 [подробнее..]
АвторСообщение
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: 3036
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 05.11.13 17:57. Заголовок: А что за ошибки при ..


А что за ошибки при сборке ?
Я собирал без проблем letodb-64 с Harbour 3.0/3.2dev и mingw64 tdm 4.6
А смысл есть, если на сервере стоит 64-битная ОС.


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




Пост N: 131
Зарегистрирован: 15.09.05
ссылка на сообщение  Отправлено: 06.11.13 13:02. Заголовок: Получилось !


Mingw64 у меня был какойто неправильный .
Заметил что hbmak2 ищет x86_64-w64-mingw32-ar.exe
а в папке bin есть ar.exe
Взял и копираовал ar.exe в x86_64-w64-mingw32-ar.exe
И все заработало :)

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


Пост N: 711
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 15.11.13 09:40. Заголовок: Я начал понемножку п..


Я начал понемножку просматривать код letodb, сравнивая его со своей рабочей версией ( от 20.08.2010 ).
Вот такой вопрос: почему теперь leto_disconnect() закрывает не текущее соединение, что было бы логично, а первое соединение из letoConnPool ?

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


Пост N: 712
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 15.11.13 09:58. Заголовок: А... теперь увидел. ..


А... теперь увидел. 1 - это номер параметра, передаваемого функции. А зачем так запутанно - то ?

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




Пост N: 3039
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 15.11.13 11:59. Заголовок: По умолчанию, без па..


По умолчанию, без параметра (или как раньше) закрывается текущее соединение. А при наличии параметра можно закрыть любое соединение по его номеру.

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


Пост N: 714
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 15.11.13 12:25. Заголовок: Это я уже понял. Про..


Это я уже понял. Просто было бы лучше, понятнее, если бы в leto_getConnection() передавался не номер параметра, а сам параметр hb_param( n, HB_IT_ANY ). Мелочь, но ...

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


Пост N: 722
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 02.12.13 15:01. Заголовок: Продолжаю разбиратьс..


Продолжаю разбираться с leto1.c.
В функции letoSetFilter() раньше строка фильтра конвертировалась в codepage базы данных - в случае, если эта codepage отличалась от codepage клиентского приложения. Теперь эта конвертация где-то в другом месте делается ?

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


Пост N: 723
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 02.12.13 15:07. Заголовок: И еще, в letoOpen():..


И еще, в letoOpen():

if( pOpenInfo->abName[0] != '+' && pOpenInfo->abName[0] != '-' )

Это для чего ?

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




Пост N: 3057
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 02.12.13 19:17. Заголовок: alkresin пишет: В ф..


alkresin пишет:

 цитата:
В функции letoSetFilter() раньше строка фильтра конвертировалась в codepage базы данных - в случае, если эта codepage отличалась от codepage клиентского приложения. Теперь эта конвертация где-то в другом месте делается ?



Эта конвертация и раньше была не нужна, я ее пару лет назад убрал.
Пусть таблица открыта в cp866, а кодировка программы - cp1251
Клиент передает на сервер строку фильтра в cp1251.
Поскольку таблица на сервере открыта в cp866, при выполнении выражения фильтра: а именно - чтении полей таблицы методом GetValue данные будут конвертированы из cp866 в cp1251, которую установит функция leto_SetUserEnv, и сравнение строк будет выполняться cp1251 с cp1251


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




Пост N: 3058
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 02.12.13 19:20. Заголовок: alkresin пишет: И е..


alkresin пишет:

 цитата:
И еще, в letoOpen():

if( pOpenInfo->abName[0] != '+' && pOpenInfo->abName[0] != '-' )

Это для чего ?



Это для пакетного открытия нескольких таблиц одним запросом к серверу. Пример использования см. в tests\letoudf.prg, функция UDF_OpenTables

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


Пост N: 724
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 03.12.13 08:44. Заголовок: Эта конвертация и ра..



 цитата:
Эта конвертация и раньше была не нужна, я ее пару лет назад убрал.


Действительно.
Еще вопрос: для чего эта структура в LETOCONNECTION - pCdpTable, она , похоже, нигде не инициализируется, и функция leto_GetServerCdp() просто возвращает код, который получает в качестве параметра ?

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




Пост N: 3059
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 03.12.13 09:18. Заголовок: Она инициализируется..


Она инициализируется в функции LETO_ADDCDPTRANSLATE, используется для тех случаев, когда одна и та же кодовая страница на клиенте и на сервере называется по разному: к примеру, RU1251 и RUWIN.
Из-за многочисленных переименований кодовых страниц в разных версиях Harbour и xHarbour такое может произойти.

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




Пост N: 3060
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 03.12.13 09:25. Заголовок: Александр, посмотрит..


Александр, посмотрите пожалуйста manage.exe, собранный по windows: Harbout git + mingw tdm 4.6.1,
hwgui и manage.prg последние сырцы с SVN и CVS

http://files.mail.ru/327FCEB4B20541EC90551C0BC65D8F95

Ненормально работает combobox для адреса сервера: не показывает список Items
Только из-за этого я не выкладываю сборку letodb на sourceforge, сам не могу понять причину.

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


Пост N: 726
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 03.12.13 12:54. Заголовок: Pasha пишет: Ненорм..


Pasha пишет:

 цитата:
Ненормально работает combobox для адреса сервера: не показывает список Items


Исправил.

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


Пост N: 727
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 04.12.13 09:14. Заголовок: Павел, напомните мне..


Павел, напомните мне, пожалуйста, предназначение RDD методов drop, exists и rename.

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


Пост N: 728
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 04.12.13 13:14. Заголовок: Разобрался, вопрос с..


Разобрался, вопрос снят.

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


Пост N: 730
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 05.12.13 15:50. Заголовок: Я сделал кое-какие и..


Я сделал кое-какие изменения в клиентской части letodb, они касаются только работы с сервером старой версии - теперь клиент определяет, с чем он имеет дело и использует соответствующий протокол. Наверное, это надо только мне - теперь я могу спокойно, постепенно обновить часть своих серверов letodb ( до текущей версии ) и оценить все последствия.

Изменения в серверной части касаются только вызовов leto_writelog() - я изменил ее, теперь не надо предварительно формировать буфер для вывода, можно вывести текущие переменные одним вызовом функции.

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




Пост N: 3067
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 06.12.13 10:07. Заголовок: Все собрал, запустил..


Все собрал, запустил - вроде бы полет нормальный.
Увидел одно изменение на клиенте: в leto_ParseRec после

if( pArea->area.fEof )
{
leto_SetBlankRecord( pArea, FALSE );

раньше стоял возврат, сейчас его нет.
Но это и правильно, чтобы считался reccount

Еще я не понял, зачем в leto_gotoEof стоит вызов SELF_RECCOUNT ?

Еще один ньюанс: раньше в leto_writelog можно было передать длину строки, и выдавать в лог бинарные данные. Сейчас этого нет. Может быть, стоит вернуть ?

И наверное, стоит изменить версию.

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


Пост N: 732
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 06.12.13 11:45. Заголовок: Pasha пишет: if( pA..


Pasha пишет:

 цитата:
if( pArea->area.fEof )
{
leto_SetBlankRecord( pArea, FALSE );

раньше стоял возврат, сейчас его нет.
Но это и правильно, чтобы считался reccount


Мне показалось, что так будет безопаснее.

 цитата:
Еще я не понял, зачем в leto_gotoEof стоит вызов SELF_RECCOUNT ?


Старая версия сервера ( а этот вызов именно для нее ) не передает в каждом пакете записей ulRecCount, клиент его получает только в результате вызова SELF_RECCOUNT, а в leto_gotoEof он требуется.

 цитата:
Еще один ньюанс: раньше в leto_writelog можно было передать длину строки, и выдавать в лог бинарные данные. Сейчас этого нет. Может быть, стоит вернуть ?


Да, стоит - вторым параметром, наверное. Сделаю.

 цитата:
И наверное, стоит изменить версию.


Не уверен. Протокол не изменился, сервер тот же, новые функции не добавились.

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


Пост N: 733
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 06.12.13 14:23. Заголовок: Думаю, можно убрать ..


Думаю, можно убрать уже все эти HARBOUR_VER_AFTER_101, HARBOUR_VER_BEFORE_100 - Harbour ниже 2.0 вряд ли кто использует.

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