Автор | Сообщение |
Pasha
|
| Администратор
|
Пост N: 2416
Зарегистрирован: 23.05.05
|
|
Отправлено: 22.06.12 18:14. Заголовок: Leto DB Server (продолжение 8)
Немного доработал документацию к letodb
|
|
|
Ответов - 273
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
All
[только новые]
|
|
AlexMyr
|
| |
Пост N: 530
Зарегистрирован: 11.06.10
|
|
Отправлено: 02.07.12 13:39. Заголовок: Паша, эти нюансы тож..
Паша, эти нюансы тоже хорошо бы в readme* описать.
|
|
|
Pasha
|
| Администратор
|
Пост N: 2429
Зарегистрирован: 23.05.05
|
|
Отправлено: 02.07.12 14:03. Заголовок: AlexMyr пишет: Паша..
AlexMyr пишет: цитата: | Паша, эти нюансы тоже хорошо бы в readme* описать. |
| Согласен, напишу
|
|
|
AlexMyr
|
| |
Пост N: 531
Зарегистрирован: 11.06.10
|
|
Отправлено: 02.07.12 14:51. Заголовок: Паша, предлагаю адап..
Паша, предлагаю адаптировать к harbour доке: /* $DOC$ * $TEMPLATE$ * Function * $NAME$ * LETO_FRENAME( ) * $CATEGORY$ * * $SUBCATEGORY$ * * $ONELINER$ * Renames a file * $SYNTAX$ * LETO_FRENAME( cFileName, cFileNewName ) --> -1 if failed * $ARGUMENTS$ * <cFileName> Old filenarne to he changed * <cFileNewName> New filename * $RETURNS$ * <nSuccess> If sucessful, a 0 will be returned otherwise, * a -1 will be returned. * $DESCRIPTION$ * This function renames the specified file <cFileName> to <cFileNewName>. * If the file specified in <cNewFile> exists or the file is open, * the function will be unable to rename the file. If the function * is unable to complete its operation,it will return a value of -1. * If it is able to rename the file, the return value for the function * will be 0. A call to LETO_FERROR() function will give additional infor- * mation about any error found. * $EXAMPLES$ * nResult := LETO_FRENAME( "x.txt", "x1.txt" ) * IF nResult < 0 * ? "File could not be renamed." * ENDIF * $STATUS$ * R * $COMPLIANCE$ * * $FILES$ * Library is letodb * $SEEALSO$ * LETO_FERASE(),LETO_FERROR(),LETO_FILE() * $END$ */
|
|
|
Pasha
|
| Администратор
|
Пост N: 2430
Зарегистрирован: 23.05.05
|
|
Отправлено: 02.07.12 15:34. Заголовок: AlexMyr пишет: Паша..
AlexMyr пишет: цитата: | Паша, предлагаю адаптировать к harbour доке: |
| Принципиальных возражений конечно нет, но... это же надо все сделать, а когда - не знаю. А делать надо к тому же в 2-х экземплярах. Это мне еще повезло, что я португальского не знаю, а то пришлось бы 3-й экземпляр доки поддерживать.
|
|
|
AlexMyr
|
| |
Пост N: 532
Зарегистрирован: 11.06.10
|
|
Отправлено: 02.07.12 15:42. Заголовок: Pasha пишет: Принци..
Pasha пишет: цитата: | Принципиальных возражений конечно нет, но... это же надо все сделать, а когда - не знаю. |
|
Так как спешки большой нет, то я могу взять на себя эти ф-ии LETO_FERASE(),LETO_FERROR(),LETO_FILE(), сделаю diff файл и выложу, потом внесем правки если надо. Может тогда уже в отдельный файл затолкать letofile.txt?
|
|
|
Pasha
|
| Администратор
|
Пост N: 2431
Зарегистрирован: 23.05.05
|
|
Отправлено: 02.07.12 15:57. Заголовок: AlexMyr пишет: Так ..
AlexMyr пишет: цитата: | Так как спешки большой нет, то я могу взять на себя эти ф-ии LETO_FERASE(),LETO_FERROR(),LETO_FILE(), сделаю diff файл и выложу, потом внесем правки если надо. Может тогда уже в отдельный файл затолкать letofile.txt? |
| Да спешки конечно нет. Можно создать в проекте папки doc\en, doc\ru, и туда выкладывать описание функций по разделам, примерно как это сделано в contrib\hbct\doc, файловые функции как раз пойдут в letofile.txt А в readme оставить краткий перечень функций Жаль, что А.Кресин не откликается, добавил бы вас в девелоперы. Я ему кстати в феврале писал, и даже получил от него ответ, но только один раз, больше он не отвечал.
|
|
|
AlexMyr
|
| |
Пост N: 533
Зарегистрирован: 11.06.10
|
|
Отправлено: 02.07.12 16:26. Заголовок: Pasha пишет: Жаль, ..
Pasha пишет: цитата: | Жаль, что А.Кресин не откликается |
|
в hwgui он появился в 06.06.2012, внес изменения о снова молчит.
|
|
|
Pasha
|
| Администратор
|
Пост N: 2432
Зарегистрирован: 23.05.05
|
|
Отправлено: 02.07.12 18:14. Заголовок: Выложил пример LetoD..
Выложил пример LetoDB COM сервера: utils\olelsrv letosrv может использоваться для доступа к LetoDB из любых приложений, не только из харбора. Пока, конечно, это только "зародыш", а не полноценный сервер. Его еще надо нагрузить методами. Да и не со всем я еще разобрался, почему-то не работает метод OnError для непосредственного доступа к полям.
|
|
|
AlexMyr
|
| |
Пост N: 538
Зарегистрирован: 11.06.10
|
|
Отправлено: 04.07.12 13:16. Заголовок: Неприятная ситуация ..
Неприятная ситуация снова (пропали данные в базе), уже писал про нее, сейчас повторилась - суть следующая, letodb крутится на win98 (круглосуточно), там же запущена прога, к-я собирает данные с весов и записывает в базу, в какой-то момент комп завис, перезагрузка, и из базы пропали данные до даты когда последний раз перезапускалась прога, а прогу перезапускал 26.06.2012, и получилось что с 04.07 по 26.06 данных нету. Вот кусок кода где записываю в базу leto_BeginTransaction() dbAppend() field -> res_str := res_vagy field -> res_date := Date() field -> res_time := Time() field -> res_vaga := nVaga leto_CommitTransaction() может что надо дописать? Получается, что на диск не сбрасывает, но такого быть не может И что делать?
|
|
|
Pasha
|
| Администратор
|
Пост N: 2435
Зарегистрирован: 23.05.05
|
|
Отправлено: 04.07.12 15:00. Заголовок: Я предполагаю, что э..
Я предполагаю, что эта ситауция связана с настройкой Optimize=1 в letodb.ini При этом на сервере выставляется set hardcommit off. При такой настройке сервер работает значительно быстрее, но данные на диск сбрасываются не сразу, и при внезапном падении сервера возможна подобная ситуация. Можно, конечно, выключить эту настройку, сервер будет работать помедленнее, но данные на диск будут сбрасываться сразу, вернее, такая команда поступит в windows, а в windows есть еще своя буферизация. Можно поступить по-другому: по leto_CommitTransaction() принудительно сбрасывать буфера для всех рабочих областей пользователя.
|
|
|
AlexMyr
|
| |
Пост N: 539
Зарегистрирован: 11.06.10
|
|
Отправлено: 04.07.12 15:08. Заголовок: В readme указано ..
В readme указано Optimize = 0 - if 1, SET HARDCOMMIT OFF 0 по умолчанию, правильно? Вот мой конф. файл: DataPath = c:\cars\ Default_Driver = CDX EnableFileFunc = 1 Share_Tables = 0 т.е. Optimize тут не влияет, так?
|
|
|
|
Pasha
|
| Администратор
|
Пост N: 2436
Зарегистрирован: 23.05.05
|
|
Отправлено: 04.07.12 15:17. Заголовок: AlexMyr пишет: т.е...
AlexMyr пишет: цитата: | т.е. Optimize тут не влияет, так? |
| Да, не влияет. Значит, дело в буферизации windows, letodb выдает flush сразу. Надо пробовать, добавлять записи, нажимать на кнопку reset и смотреть на результат.
|
|
|
AlexMyr
|
| |
Пост N: 540
Зарегистрирован: 11.06.10
|
|
Отправлено: 04.07.12 15:21. Заголовок: Pasha пишет: нажима..
Pasha пишет: цитата: | нажимать на кнопку reset и смотреть на результат. |
|
винт жалко попробую достать старый комп, там потренеруюсь.
|
|
|
PSP
|
| постоянный участник
|
Пост N: 783
Зарегистрирован: 27.01.07
|
|
Отправлено: 04.07.12 15:23. Заголовок: Паш, как-то не верит..
Паш, как-то не верится, что винда больше недели буфера на диск не записывала...
|
|
|
AlexMyr
|
| |
Пост N: 541
Зарегистрирован: 11.06.10
|
|
Отправлено: 04.07.12 15:31. Заголовок: Еще забыл заметить, ..
Еще забыл заметить, посмотрел на файл базы, так дата файла тоже была 26.06.2012 года, вариант что прога не работала, отпадает, юзера каждый день смотрят на данные с этой базы и сразу бы сказали, т.к. по данным с весов выписывается накладная.
|
|
|
Pasha
|
| Администратор
|
Пост N: 2437
Зарегистрирован: 23.05.05
|
|
Отправлено: 04.07.12 16:12. Заголовок: AlexMyr пишет: Паш,..
AlexMyr пишет: цитата: | Паш, как-то не верится, что винда больше недели буфера на диск не записывала... |
| Погонял тест, посмотрел код. Увидел, что если делать обновление без транзакции, то все в порядке. А с транзакцией не выдается flush, поэтому на диск она сразу не сбрасывается, и висит в буфере rdd на сервере. Добавлю принудительный flush, да еще без различия к настройке Optimize, чтобы с гарантией.
|
|
|
AlexMyr
|
| |
Пост N: 542
Зарегистрирован: 11.06.10
|
|
Отправлено: 04.07.12 16:26. Заголовок: Паша, спасибо, будем..
Паша, спасибо, будем работать дальше
|
|
|
Pasha
|
| Администратор
|
Пост N: 2443
Зарегистрирован: 23.05.05
|
|
Отправлено: 10.07.12 10:56. Заголовок: Некоторые rdd-команд..
Некоторые rdd-команды не требуют получения результата на клиенте. Это к примеру set filter to, set scope, вызов leto_setSkipBuffer() Тем не менее, для каждой из них клиент выдает отдельный запрос серверу. В связи с этим возникла идея буферизации таких запросов. К примеру, последовательность: set filter to ... set scope.. leto_setSkipBuffer(...) go top Требует 4 запросов к серверу. Можно 3 первых запроса не передавать серверу сразу, а накапливать в буфере. Передавать этот блок запросов можно тогда, когда будет выдан запрос, требующий получения результата, или запрос для другой рабочей области, или команда управления. А на сервере обрабатывать эти запросы последовательно в одном пакете. Насколько я знаю, в ads подобной фичи нет. Такая оптимизация будет полезной для тонкого клиента. Какие могут быть при этом подводные камни ?
|
|
|
alex_II
|
| |
Пост N: 76
Зарегистрирован: 12.07.06
|
|
Отправлено: 20.07.12 11:42. Заголовок: Помогите решить проб..
Помогите решить проблему! Использую: Harbour+LetoDB+MiniGUI+TSBrowse В одном из дочерних окон открываю в TSBrowse таблицу с CDX-индексом. В индексе 4 тега, между которыми могу переключаться и TSBrowse все прекрасно показывает, но стоит окну с таблицей потерять фокус то при возвращении обратно вне зависимости от того какой тег был активным всегда устанавливается активным ПЕРВЫЙ по порядку тег.
|
|
|
Dima
|
| |
Пост N: 2463
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.07.12 12:08. Заголовок: alex_II Возможно ту..
alex_II Возможно тут дело не в LetoDB а в TSBrowse
|
|
|
Ответов - 273
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
All
[только новые]
|
|