On-line: Alex_Cher, гостей 1. Всего: 2 [подробнее..]
АвторСообщение
администратор




Пост N: 2728
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.03.13 11:27. Заголовок: Leto DB Server (продолжение 10) (продолжение)


Продолжаем тут

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


постоянный участник




Пост N: 478
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.02.15 11:47. Заголовок: SergKis пишет: leto ..


SergKis пишет:
 цитата:
leto сервер делает все ok для полей типа ^ и +
- типы T, @ превращаются в =
- пустое поле типа = не заполняется значением TimeStamp


причина в разном case:
 
leto1.c(line 1950)
case HB_FT_MODTIME:
cType = '@';
break;
case HB_FT_DATETIME:
case HB_FT_DAYTIME:
cType = 'T';
break;
rdd\dbf1.c(line 3050)
case HB_FT_TIMESTAMP:
pThisField->bType = pArea->bTableType == DB_DBF_VFP ? 'T' : '@';
pField->uiLen = 8;
pThisField->bLen = ( BYTE ) pField->uiLen;
pThisField->bFieldFlags = HB_FF_BINARY;
pArea->uiRecordLen += pField->uiLen;
break;
case HB_FT_MODTIME:
pThisField->bType = '=';
pField->uiLen = 8;
pThisField->bLen = ( BYTE ) pField->uiLen;
pArea->uiRecordLen += pField->uiLen;
pArea->fModStamp = TRUE;
break;

т.е. в cdx типы T,@ - HB_FT_TIMESTAMP, тип = HB_FT_MODTIME, в leto другие


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




Пост N: 479
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 16.02.15 10:48. Заголовок: полная катавасия со ..


полная катавасия со структурой (поля типа TIMESTAMP, MODTIME):
- на клиенте подаем в dbCreate ..., {"TM", "@", 8, 0}, {"TS", "=", 8, 0},...
- на сервере имеем в HS_CREATETABLE (пришло с клиента) ..., {"TM", "T", 8, 0}, {"TS", "@", 8, 0},...
- на сервере имеем в HS_OPENTABLE (после dbStruct)..., {"TM", "@", 8, 0}, {"TS", "@", 8, 0},...
- на клиенте после dbStruct имеем ..., {"TM", "=", 8, 0}, {"TS", "=", 8, 0},...
придется остатья на старой версии (двухпотчной)

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3246
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 21.02.15 14:44. Заголовок: SegKis пишет: смотрю..


SegKis пишет:

 цитата:
смотрю в сервере отключены триггера - это специально или нарочно ?



Конечно, не специально, и не нарочно. Эта реализация была пропущена при реорганизации кода почти 4 года назад. Поправил.

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




Пост N: 481
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.02.15 13:20. Заголовок: Pasha добавил в ser..


Pasha
добавил в server.prg:
Скрытый текст

тестовая test_dbf.prg:
Скрытый текст

т.е. триггер ставится, но работает, для PendingTrigger такой же результат.


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




Пост N: 482
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.02.15 13:24. Заголовок: PS. повторяю искажен..


PS. повторяю искаженное:
 
FOR i := 1 TO Len( aNames )
APPEND BLANK
REPLACE NAME WITH aNames[ i ], NUM WITH i+1000, ;
...


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




Пост N: 483
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 23.02.15 20:09. Заголовок: SergKis пишет:т.е. т..


SergKis пишет:
 цитата:
т.е. триггер ставится, но работает, для PendingTrigger такой же результат.


что то буквы съелись. Должно быть:

 цитата:
т.е. триггер ставится, но НЕ работает, для PendingTrigger такой же результат.



Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 857
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 04.03.15 14:35. Заголовок: SergKis пишет: полн..


SergKis пишет:

 цитата:
полная катавасия со структурой (поля типа TIMESTAMP, MODTIME):
- на клиенте подаем в dbCreate ..., {"TM", "@", 8, 0}, {"TS", "=", 8, 0},...
- на сервере имеем в HS_CREATETABLE (пришло с клиента) ..., {"TM", "T", 8, 0}, {"TS", "@", 8, 0},...


А можно короткий тестовый пример, чтоб сразу откомпилировать и проверить ?

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




Пост N: 491
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.03.15 14:41. Заголовок: alkresin пишет:А мож..


alkresin пишет:
 цитата:
А можно короткий тестовый пример, чтоб сразу откомпилировать и проверить ?


Отправлено: 10.02.15 00:02. Заголовок: Режим: RddInfo( RDDI..

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




Пост N: 492
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.03.15 14:59. Заголовок: alkresin letodb..pr..


alkresin
letodb..prg добавил:
...
 
hs_createtable(...)
...
aStru := Array( nLen, 4 )
FOR i := 1 TO nLen
aStru[i,1] := GetCmdItem( cCommand, nPos + 1, @nPos )
aStru[i,2] := GetCmdItem( cCommand, nPos + 1, @nPos )
aStru[i,3] := Val( GetCmdItem( cCommand,nPos + 1,@nPos ) )
aStru[i,4] := Val( GetCmdItem( cCommand,nPos + 1,@nPos ) )
NEXT
WLog(procname()+":"+hb_valtoexp(aStru)) // добавил
...
hs_opentable(...)
... // line: ~457
aStru := dbStruct()
WLog(procname()+":"+hb_valtoexp(aStru)) // добавил
...


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




Пост N: 493
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.03.15 15:01. Заголовок: PS опять буква сълас..


PS опять буква сълась WrLog(...) добавлял

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 858
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 04.03.15 16:49. Заголовок: Ту небольшую путаниц..


Ту небольшую путаницу я, вроде, исправил.
Остается один неприятный момент с теми полями, которые формируются автоматически на сервере при добавлении записи. Поскольку на клиентской стороне работает буферизация, то если добавить запись и потом сразу прочитать, то она берется не с сервера. а из буфера - и значения тех полей пустые.

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




Пост N: 495
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.03.15 17:11. Заголовок: alkresin пишет:на кл..


alkresin пишет:
 цитата:
на клиентской стороне работает буферизация,...


как правило, сразу может понадобится поле "+" для заполнения в другую таблицу, в массив ключей, ...
как осуществлять доступ ? делать dbcommit, leto_commit, закрывать\открывать таблицу ?
на даты типа Timestamp и "^" запрос, как првило отложенный (могут быть в тегах индекса)

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




Пост N: 496
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 04.03.15 17:25. Заголовок: PS. всегда в cdx, nt..


PS. всегда в cdx, ntx, six было dbSkip(0) - перечитать\перезаполнить буфер

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




Пост N: 497
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.03.15 11:10. Заголовок: alkresin пишет:Ту не..


alkresin пишет:
 цитата:
Ту небольшую путаницу я, вроде, исправил.


Работает. Большое СПАСИБО
Вместо dbSkip(0) обновляет буфер на клиенте dbGoto(RecNo())

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




Пост N: 498
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 05.03.15 15:34. Заголовок: SergKis пишет:Работа..


SergKis пишет:
 цитата:
Работает


поторопился, timestamp работает, а "^" и "+" - что то не то при отображении в dbf все хорошо
? str(RecNo(), 3), NAME, str(NUM, 4), TS, VM, ID дает:
 
Rec NAME NUM TS VM ID
=== ========== ==== ===================== ==================== ==========
1 Petr 1001 05/03/15 14:26:54.731 16660054396318011 1413165115
2 Ivan 1002 05/03/15 14:26:54.731 16660054396318267 1413165115
3 Alexander 1003 05/03/15 14:26:54.731 16660054396318523 943406395
4 Pavel 1004 05/03/15 14:26:54.747 16660054396318779 3878971
5 Alexey 1005 05/03/15 14:26:54.747 16660054396319035 989870896
6 Fedor 1006 05/03/15 14:26:54.747 16660054396319291 3878912
7 Konstantin 1007 05/03/15 14:26:54.762 16660054396319547 993540925
8 Vladimir 1008 05/03/15 14:26:54.762 16660054396319803 993853499
9 Nikolay 1009 05/03/15 14:26:54.762 16660054396320059 1023425280
10 Andrey 1010 05/03/15 14:26:54.778 4264973925457342779 993853440
11 Dmitry 1011 05/03/15 14:26:54.778 4264973925457408315 993853440
12 Sergey 1012 05/03/15 14:26:54.778 4264973925457473851 993853440


Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 860
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 06.03.15 09:53. Заголовок: А у меня все нормаль..


А у меня все нормально отображается.
Это ведь тот ваш пример, только dbSkip(0) заменено на go Recno() ?

Спасибо: 0 
ПрофильЦитата Ответить
moderator


Пост N: 861
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 06.03.15 10:05. Заголовок: Все ясно. Это я небо..


Все ясно.
Это я небольшое исправление в серверной части не выложил на CVS - думал, оно не имеет значение, а в моем рабочеи каталоге оно осталось.
Теперь выложил.

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




Пост N: 500
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 06.03.15 10:31. Заголовок: alkresin пишет:Тепер..


alkresin пишет:
 цитата:
Теперь выложил.


Работает. Большое СПАСИБО.

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




Пост N: 4040
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 06.03.15 20:57. Заголовок: Как можно отловить п..


Установил наконец то сервер на Win2012. Вроде работает. Пытаюсь дальше разбираться....
Как можно отловить перезагрузку и работоспособность сервера LetoDB ?
Т.е. при обращениях к ЛетоДБ как проверять, доступен он или нет (инет упал, сервер перегрузился и т.д.) -
как обрабатывать ошибки ?

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4578
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 06.03.15 22:11. Заголовок: Andrey пишет: Вроде..


Andrey пишет:

 цитата:
Установил наконец то сервер на Win2012. Вроде работает.


Только он глючит порой не по теме , пытались его тоже юзать , откатились на 2008.


Andrey пишет:

 цитата:
Как можно отловить перезагрузку и работоспособность сервера LetoDB ?


Не читал letodb\readme_rus.txt ?

Цитата
 
Возможно проверить доступность сервера перед открытием файлов вызовом функции
leto_Connect( cAddress ), которая вернет -1 в случае неудачной попытки:

IF leto_Connect( "//192.168.5.22:2812/mydir/" ) == -1
Alert( "Can't connect to server ..." )
ENDIF

+ пункт 7.1 Управление соединением



В LETODB в этом плане масса способов что бы проверить запущен ли (работает) LETODB по сравнению с ADS

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 191 , стр: 1 2 3 4 5 6 7 8 9 10 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 403
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет