Автор | Сообщение |
|
| |
Пост N: 14
Зарегистрирован: 10.01.15
|
|
Отправлено: 08.05.16 20:17. Заголовок: LetoDB через интернет
Почему я не могу создать dbf файл на сервере 178.149.57.133:2812? Я объявил этот сервер должен быть доступен всем через интернет для тестирования.
|
|
|
Ответов - 20
[только новые]
|
|
|
| постоянный участник
|
Пост N: 1215
Зарегистрирован: 27.01.07
|
|
Отправлено: 08.05.16 21:22. Заголовок: Порт открыт, хост от..
Порт открыт, хост отвечает. Рассказывайте подробнее. На этапе ip:port всё в порядке.
|
|
|
|
| |
Пост N: 15
Зарегистрирован: 10.01.15
|
|
Отправлено: 08.05.16 22:32. Заголовок: letodb_1.log 08.05...
letodb_1.log 08.05.2016 19:09:58: Error DBFCDX/1001 Open error: /home/digi/databases/fiskal/vlasnik.dbf
|
|
|
|
| Администратор
|
Пост N: 3434
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.05.16 08:36. Заголовок: Я подключаюсь к серв..
Я подключаюсь к серверу с помощью dbedit: dbedit.exe -f -letodb=//178.149.57.133:2812 и вижу 2 файла (по-видимому это папки) Fiskal и sok. Хотя почему-то атрибута "D" - directory нет Если это *nix, то при создании файла надо учитывать регистр, т.е. создавать файл /Fiskal/vlasnik.dbf, а не /fiskal/vlasnik.dbf может быть, проблема в этом.
|
|
|
|
| постоянный участник
|
Пост N: 4918
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.05.16 14:23. Заголовок: Pasha пишет: Если э..
Pasha пишет: цитата: | Если это *nix, то при создании файла надо учитывать регистр |
| Да, это точно. Я тоже налетал на такую же ошибку.
|
|
|
|
| |
Пост N: 16
Зарегистрирован: 10.01.15
|
|
Отправлено: 09.05.16 17:18. Заголовок: LetoDB сервер устано..
LetoDB сервер установлен на linux, и поэтому была проблема с маленькой или большой буквы. Спасибо за помощь.
|
|
|
|
| |
Пост N: 17
Зарегистрирован: 10.01.15
|
|
Отправлено: 10.05.16 20:09. Заголовок: Как со стороны клиен..
Как со стороны клиента я могу узнать, является ли LetoDB сервер установлен на linux или на windows?
|
|
|
|
| Администратор
|
Пост N: 3435
Зарегистрирован: 23.05.05
|
|
Отправлено: 11.05.16 21:20. Заголовок: digikv пишет: Как ..
digikv пишет: цитата: | Как со стороны клиента я могу узнать, является ли LetoDB сервер установлен на linux или на windows? |
| Увы, средствами letodb сейчас никак
|
|
|
|
| постоянный участник
|
Пост N: 4920
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.05.16 15:34. Заголовок: digikv пишет: Как с..
digikv пишет: цитата: | Как со стороны клиента я могу узнать, является ли LetoDB сервер установлен на linux или на windows? |
| Сделай UDF-функцию, которая на сервере запускает команду: ver > ver.txt А потом анализируй содержимое файла ver.txt на наличие слова "Windows" и узнаешь что на сервере установлено. Если файл не создаётся, значит - "установлен на linux" Попробуй тесты https://cloud.mail.ru/public/48Zj/ZDShR5PNj
|
|
|
|
| |
Пост N: 300
Зарегистрирован: 03.12.08
|
|
Отправлено: 13.05.16 12:01. Заголовок: Функция нужная с точ..
Функция нужная с точки зрения получения какой-то информации . Не знаю , зачем Юзеру она может быть полезна .... Ему до-фени где и как хранится база к которой он имеет доступ .
|
|
|
|
| постоянный участник
|
Пост N: 1194
Зарегистрирован: 09.10.06
|
|
Отправлено: 13.05.16 17:08. Заголовок: Andrey пишет: Сдела..
Andrey пишет: цитата: | Сделай UDF-функцию, которая на сервере запускает команду: ver > ver.txt |
| Я бы выполнял функцию OS() и возвращал результат Softlog86 пишет: цитата: | Не знаю , зачем Юзеру она может быть полезна .... |
| Продвинутый Юзер называется Админ, а админам иногда дают порулить серверами
|
|
|
|
| |
Пост N: 18
Зарегистрирован: 10.01.15
|
|
Отправлено: 15.05.16 08:24. Заголовок: Softlog86 пишет: Не..
Softlog86 пишет: цитата: | Не знаю , зачем Юзеру она может быть полезна .... |
| Я хочу, чтобы создать новые индексы. Сначала нужно удалить старые (использую RUN del *.cdx для windows или RUN rm *.cdx для linux). Есть еще примеры.
|
|
|
|
|
| постоянный участник
|
Пост N: 4924
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.05.16 10:00. Заголовок: digikv пишет: Я хоч..
digikv пишет: цитата: | Я хочу, чтобы создать новые индексы. Сначала нужно удалить старые (использую RUN del *.cdx для windows или RUN rm *.cdx для linux). |
| Для этого (удаления) есть команды: FileDelete(), FErase() #include "Directry.ch" PROCEDURE Main LOCAL aCdxFiles := Directory( "*.CDX" ) AEval( aCdxFiles, { |aFile| FErase( aFile[ F_NAME ] ) } ) RETURN Для Leto есть специальная команда: LETO_FERASE( cFileName ) --> -1 при неудаче Смотри документацию по Leto - Readme.txt
|
|
|
|
| |
Пост N: 186
Зарегистрирован: 21.04.13
|
|
Отправлено: 15.05.16 10:59. Заголовок: Как удалять индексы..
Przemek рекомендует использовать hb_dbDrop(..) вместо файловых функций click here тут = = = Using generic file io functions to delete index files is not good idea for portable programs. If you know table name then use: hb_dbDrop( cTablePathName, cIndexPathName ) If you do not know table name then use: hb_dbDrop( , cIndexPathName ) ...
|
|
|
|
| постоянный участник
|
Пост N: 1195
Зарегистрирован: 09.10.06
|
|
Отправлено: 15.05.16 12:59. Заголовок: petr707 пишет: Prze..
petr707 пишет: И еще м.б. полезной рекомендация цитата: | The indexes are slightly smaller and faster, i.e. add to your code: hb_rddInfo( RDDI_INDEXPAGESIZE, 1024, "DBFCDX" ) Old indexes will work without any problems but after reindex new ones are created which are not backward compatible so if you would want to make program downgrade to version compiled by old Harbour you will have to create new indexes. |
|
|
|
|
|
| Администратор
|
Пост N: 3441
Зарегистрирован: 23.05.05
|
|
Отправлено: 16.05.16 19:05. Заголовок: Добавил функцию OS()..
Добавил функцию OS() на сервере. Получить платформу версию сервера можно вызовом leto_UDF("OS")
|
|
|
|
| |
Пост N: 19
Зарегистрирован: 10.01.15
|
|
Отправлено: 16.05.16 22:14. Заголовок: leto_groupby
leto_groupby не очень хорошо работает с параметром scopetop и scopebottom Пример: Procedure Main() REQUEST LETO RDDSETDEFAULT( "LETO" ) SET DATE FORMAT "DD.MM.YYYY" set deleted on _cPath := "//digikv.dynu.com:2812/sokdoo/" IF leto_Connect(_cPath)==-1 Alert("NIJE USPOSTAVLJENA VEZA SA SERVEROM LetoDB") QUIT ENDIF USE (_cPath+"robno.dbf") INDEX (_cPath+"robno.cdx") NEW ALIAS robno Robno->( ordSetFocus('PoMagacinima') ) aArr := Robno->( leto_GroupBy( "sifra", "ulaz, izlaz", , STR( 1, 3 ), STR( 1, 3 )+DTOS(CTOD("31.01.2015")) ) ) ASort( aArr,,, {| x, y | x[ 1 ] < y[ 1 ] } ) ? hb_valtoexp( aArr ) RETURN Члены матрицы с первым элементом 239 и 533 не должны быть в этой матрице
|
|
|
|
| |
Пост N: 20
Зарегистрирован: 10.01.15
|
|
Отправлено: 16.05.16 22:25. Заголовок: Я сделал свою функци..
Я сделал свою функцию, которая работает для rddcdx и тогда все ОК FUNCTION RDD_GROUPBY( cGroup, cFields, cFilter, xScopeTop, xScopeBottom ) LOCAL aResult := {} LOCAL aFields := hb_RegexSplit( ",", cFields ) LOCAL bFilter := IIF( hb_isstring(cFilter), hb_macroblock( cFilter ), NIL ) LOCAL aBlocks := ARRAY( LEN( aFields ) ) LOCAL bBlock := FieldBlock(cGroup) LOCAL aTemp := ARRAY( LEN( aFields ) + 1 ) aFILL( aTemp, 0 ) aEVAL( aFields, { |cValue, nIndex| aBlocks[nIndex] := IIF(cValue=="#", {|| 1}, FieldBlock( cValue )) } ) IF !hb_isnil( xScopeTop ); ordScope( 0, xScopeTop ); ENDIF IF !hb_isnil( xScopeBottom ); ordScope( 1, xScopeBottom ); ENDIF dbEval( { || ( ; nPos := aSCAN(aResult, {|aVal| aVal[1] == EVAL(bBlock)}), ; IIF( nPos==0, ( aADD( aResult, aCLONE(aTemp) ), nPos := LEN( aResult ), aResult[nPos,1] := EVAL(bBlock) ), NIL ), ; aEVAL( aBlocks, { |bValue, nIndex| aResult[nPos,nIndex+1] += EVAL( bValue ) } ) ) }, bFilter ) IF !hb_isnil( xScopeTop ); ordScope( 0, NIL ); ENDIF IF !hb_isnil( xScopeBottom ); ordScope( 1, NIL ); ENDIF RETURN aResult
|
|
|
|
| |
Пост N: 5660
Зарегистрирован: 17.05.05
|
|
Отправлено: 16.05.16 23:02. Заголовок: digikv Завернул оба..
digikv Завернул оба примера в тэг PRE2 , иначе они плохо читаемы.
|
|
|
|
| Администратор
|
Пост N: 3444
Зарегистрирован: 23.05.05
|
|
Отправлено: 17.05.16 14:43. Заголовок: Проблема не с leto_g..
Проблема не с leto_groupBy, а с длинным именем индекса. Если вместо Robno->( ordSetFocus('PoMagacinima') ) использовать Robno->( ordSetFocus( 6 ) ) то все работает нормально. ordSetFocus('PoMagacinima') не находит нужный индекс, поэтому и scope не работает
|
|
|
|
| |
Пост N: 5662
Зарегистрирован: 17.05.05
|
|
Отправлено: 17.05.16 17:00. Заголовок: digikv пишет: Robno..
digikv пишет: цитата: | Robno->( ordSetFocus('PoMagacinima') ) |
| Максимальная длина имени тэга 10 символов (для CDX) , если что.
|
|
|
|