Автор | Сообщение |
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: 3036
Зарегистрирован: 23.05.05
|
|
Отправлено: 05.11.13 17:57. Заголовок: А что за ошибки при ..
А что за ошибки при сборке ? Я собирал без проблем letodb-64 с Harbour 3.0/3.2dev и mingw64 tdm 4.6 А смысл есть, если на сервере стоит 64-битная ОС.
|
|
|
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 И все заработало :)
|
|
|
alkresin
|
| moderator
|
Пост N: 711
Зарегистрирован: 06.07.06
|
|
Отправлено: 15.11.13 09:40. Заголовок: Я начал понемножку п..
Я начал понемножку просматривать код letodb, сравнивая его со своей рабочей версией ( от 20.08.2010 ). Вот такой вопрос: почему теперь leto_disconnect() закрывает не текущее соединение, что было бы логично, а первое соединение из letoConnPool ?
|
|
|
alkresin
|
| moderator
|
Пост N: 712
Зарегистрирован: 06.07.06
|
|
Отправлено: 15.11.13 09:58. Заголовок: А... теперь увидел. ..
А... теперь увидел. 1 - это номер параметра, передаваемого функции. А зачем так запутанно - то ?
|
|
|
Pasha
|
| Администратор
|
Пост N: 3039
Зарегистрирован: 23.05.05
|
|
Отправлено: 15.11.13 11:59. Заголовок: По умолчанию, без па..
По умолчанию, без параметра (или как раньше) закрывается текущее соединение. А при наличии параметра можно закрыть любое соединение по его номеру.
|
|
|
alkresin
|
| moderator
|
Пост N: 714
Зарегистрирован: 06.07.06
|
|
Отправлено: 15.11.13 12:25. Заголовок: Это я уже понял. Про..
Это я уже понял. Просто было бы лучше, понятнее, если бы в leto_getConnection() передавался не номер параметра, а сам параметр hb_param( n, HB_IT_ANY ). Мелочь, но ...
|
|
|
alkresin
|
| moderator
|
Пост N: 722
Зарегистрирован: 06.07.06
|
|
Отправлено: 02.12.13 15:01. Заголовок: Продолжаю разбиратьс..
Продолжаю разбираться с leto1.c. В функции letoSetFilter() раньше строка фильтра конвертировалась в codepage базы данных - в случае, если эта codepage отличалась от codepage клиентского приложения. Теперь эта конвертация где-то в другом месте делается ?
|
|
|
alkresin
|
| moderator
|
Пост N: 723
Зарегистрирован: 06.07.06
|
|
Отправлено: 02.12.13 15:07. Заголовок: И еще, в letoOpen():..
И еще, в letoOpen(): if( pOpenInfo->abName[0] != '+' && pOpenInfo->abName[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
|
|
|
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
|
|
|
alkresin
|
| moderator
|
Пост N: 724
Зарегистрирован: 06.07.06
|
|
Отправлено: 03.12.13 08:44. Заголовок: Эта конвертация и ра..
цитата: | Эта конвертация и раньше была не нужна, я ее пару лет назад убрал. |
| Действительно. Еще вопрос: для чего эта структура в LETOCONNECTION - pCdpTable, она , похоже, нигде не инициализируется, и функция leto_GetServerCdp() просто возвращает код, который получает в качестве параметра ?
|
|
|
|
Pasha
|
| Администратор
|
Пост N: 3059
Зарегистрирован: 23.05.05
|
|
Отправлено: 03.12.13 09:18. Заголовок: Она инициализируется..
Она инициализируется в функции LETO_ADDCDPTRANSLATE, используется для тех случаев, когда одна и та же кодовая страница на клиенте и на сервере называется по разному: к примеру, RU1251 и RUWIN. Из-за многочисленных переименований кодовых страниц в разных версиях Harbour и xHarbour такое может произойти.
|
|
|
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, сам не могу понять причину.
|
|
|
alkresin
|
| moderator
|
Пост N: 726
Зарегистрирован: 06.07.06
|
|
Отправлено: 03.12.13 12:54. Заголовок: Pasha пишет: Ненорм..
Pasha пишет: цитата: | Ненормально работает combobox для адреса сервера: не показывает список Items |
| Исправил.
|
|
|
alkresin
|
| moderator
|
Пост N: 727
Зарегистрирован: 06.07.06
|
|
Отправлено: 04.12.13 09:14. Заголовок: Павел, напомните мне..
Павел, напомните мне, пожалуйста, предназначение RDD методов drop, exists и rename.
|
|
|
alkresin
|
| moderator
|
Пост N: 728
Зарегистрирован: 06.07.06
|
|
Отправлено: 04.12.13 13:14. Заголовок: Разобрался, вопрос с..
Разобрался, вопрос снят.
|
|
|
alkresin
|
| moderator
|
Пост N: 730
Зарегистрирован: 06.07.06
|
|
Отправлено: 05.12.13 15:50. Заголовок: Я сделал кое-какие и..
Я сделал кое-какие изменения в клиентской части letodb, они касаются только работы с сервером старой версии - теперь клиент определяет, с чем он имеет дело и использует соответствующий протокол. Наверное, это надо только мне - теперь я могу спокойно, постепенно обновить часть своих серверов letodb ( до текущей версии ) и оценить все последствия. Изменения в серверной части касаются только вызовов leto_writelog() - я изменил ее, теперь не надо предварительно формировать буфер для вывода, можно вывести текущие переменные одним вызовом функции.
|
|
|
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 можно было передать длину строки, и выдавать в лог бинарные данные. Сейчас этого нет. Может быть, стоит вернуть ? И наверное, стоит изменить версию.
|
|
|
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 можно было передать длину строки, и выдавать в лог бинарные данные. Сейчас этого нет. Может быть, стоит вернуть ? |
| Да, стоит - вторым параметром, наверное. Сделаю. цитата: | И наверное, стоит изменить версию. |
| Не уверен. Протокол не изменился, сервер тот же, новые функции не добавились.
|
|
|
alkresin
|
| moderator
|
Пост N: 733
Зарегистрирован: 06.07.06
|
|
Отправлено: 06.12.13 14:23. Заголовок: Думаю, можно убрать ..
Думаю, можно убрать уже все эти HARBOUR_VER_AFTER_101, HARBOUR_VER_BEFORE_100 - Harbour ниже 2.0 вряд ли кто использует.
|
|
|
Ответов - 301
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
All
[только новые]
|
|