On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
Andrey
постоянный участник




Пост N: 4156
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.05.15 22:44. Заголовок: Вопросы новичка...


Взял последнюю версию с "Новая страница с бинарниками", установил на Win2008 Server, чуток помучился с портом...
Собрал на МиниГуи+BCC 551 - \MiniGui\batch\hbmk2.bat rddleto.hbp
Получил rddleto.lib - 131072 байт - правильный ли размер ?
И еще Warning-и лезут:
lib\.hbmk\win\bcc\rddsys.c:
source\client\letocl.c:
source\client\leto1.c:
source\client\letomgmn.c:
source\common\blowfish.c:
source\common\common_c.c:
source\common\hbip.c:
TLIB 4.5 Copyright (c) 1987, 1999 Inprise Corporation
/P32 lib\rddleto.lib -+ lib\.hbmk\win\bcc\rddsys.obj -+ lib\.hbmk\win\bcc\letocl.obj -+ lib\.hbmk\win\bcc\leto1.obj -+ lib\.hbmk\win\bcc\letomgmn.obj -+ lib\.hbmk\win\bcc\blowfish.obj -+ lib\.hbmk\win\bcc\common_c.obj -+ lib\.hbmk\win\bcc\hbip.objWarning: 'rddsys' not found in library
Warning: 'letocl' not found in library
Warning: 'leto1' not found in library
Warning: 'letomgmn' not found in library
Warning: 'blowfish' not found in library
Warning: 'common_c' not found in library
Warning: 'hbip' not found in library

Так должно быть или нет ?

Вопрос сразу напрашивается с путями - как писать правильно "\" или "/" :
Local cPathServer := "//127.0.0.1:2812/"
cPathServer := cPathServer +"DATE_TEST_PATH\test.dbf"

Помню что где то обсуждали, а результат не запомнил...

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


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




Пост N: 4242
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.06.15 11:40. Заголовок: Pasha пишет: dbInfo..


Pasha пишет:

 цитата:
dbInfo требует открытой рабочей области, вестимо


Т.е. не открыв базу, я не могу узнать версию клиента LetoDB ?
А если по умолчанию будет стоять драйвер DBFCDX ? Как тогда я узнаю версию клиента LetoDB ?
Очень неудобно.
А нельзя сделать функцию типа LETO_GETCLIENTVERSION() ?

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




Пост N: 3282
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.06.15 11:50. Заголовок: Да, неудобно то, что..


Да, неудобно то, что у функции rddInfo() нет соответствующей команды, и приходится использовать dbInfo.
А для dbInfo неважно, какой драйвер стоит по умолчанию. Надо, чтобы вызов был из рабочей области, которая использует нужный rdd

Отдельную функцию - конечно, можно добавить

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




Пост N: 4243
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.06.15 12:03. Заголовок: Pasha пишет: Отдель..


Pasha пишет:

 цитата:
Отдельную функцию - конечно, можно добавить


Спасибо БОЛЬШОЕ !

Проблема при создании индекса. Делаю так:
MsgDebug(cIndex,cTag,cFileIndx,cFilterTo)
INDEX ON &cIndex TAG(cTag) TO (cFileIndx) FOR &cFilterTo ADDITIVE

В окне перед созданием индекса вывожу имя файла cFileIndx -> D:\TEMP\tmp_base_leto_1.cdx
А на создании индекса программа рушиться и пишет:
Error LETO/1006 Ошибка создания: D:\LETODB.Server\D:\TEMP\tmp_base_leto_1.cdx (DOS Error 123)

Как задать создание индекса на локальном компе ?
Или на сервере LetoDB, можно как то задавать ?
Т.е. база на LetoDB, а индекс строю на локальном компе (он временный, на один раз).


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




Пост N: 3283
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.06.15 13:05. Заголовок: Локально индекс не с..


Локально индекс не создается. А для создания индекса на сервере надо указать путь относительно DataPath

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




Пост N: 4244
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.06.15 13:27. Заголовок: Спасибо Pasha ! :sm3..


Спасибо Pasha !

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




Пост N: 4247
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.06.15 14:38. Заголовок: Создал 3 индекса на ..


Создал 3 индекса на сервере. Как переключаться на них ?
Вот код который перестал работать:
SELECT WTOVAR
DBSETORDER(1)
GOTO TOP
SEEK(nKod)
DO WHILE WTOVAR->KOD == nKod
....
SKIP
ENDDO

Подскажите пожалуйста как переделать код для LetoDB !

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




Пост N: 3284
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.06.15 18:21. Заголовок: Как бы не видно сам ..


Как бы не видно сам код. Как индекс создается, остается ли он открытым, непонятно.


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




Пост N: 4248
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 11.06.15 19:28. Заголовок: Pasha пишет: Как ин..


Pasha пишет:

 цитата:
Как индекс создается, остается ли он открытым, непонятно.


Индексные файлы на сервере создаются (визуально вижу). База и индексы открыты.
Может дело еще в одной базе, более подробный код:

SELECT WSPISOK // база локальная открыта DBFCDX монопольно

DO WHILE !EOF()

ProcessMessages() // Чтобы форма НЕ замирала

nKod := WSPISOK->KOD

SELECT WTOVAR
DBSETORDER(1)
GOTO TOP
SEEK(nKod)
// MsgDebug( FOUND() )
DO WHILE WTOVAR->KOD == nKod
// расчёт
....
SKIP
ENDDO

SELECT WSPISOK
WSPISOK->KOD1 := ...
// запись расчётов
SKIP
ENDDO

До переделки под Leto - этот код считал.
Нашёл - SEEK(nKod) перестал работать !!!
FOUND() Всегда возвращает .F. Почему ? Чем можно заменить ?


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




Пост N: 3285
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 11.06.15 20:42. Заголовок: Понятнее не стало. В..


Понятнее не стало. В цикле:

DBSETORDER(1)
GOTO TOP
SEEK(nKod)
DO WHILE WTOVAR->KOD == nKod
...

Кстати, go top здесь лишний.
Можно проверить, что за индекс открыт.
После

DBSETORDER(1)

выдать
? OrdKey()
? OrdName()
? OrdFor()

и тому подобное


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




Пост N: 4884
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.06.15 21:27. Заголовок: Всего кода я конечно..


Всего кода я конечно не видел
Andrey пишет:

 цитата:
SELECT WSPISOK


Возможно после нужен WSPISOK->(Dbgotop())

Если это рабочий код а не просто пример его надо переделать.
 
WSPISOK->(Dbgotop())

DO WHILE !WSPISOK->(EOF())

ProcessMessages() // надеюсь тут нет смены Алиаса ?

nKod := WSPISOK->KOD

WTOVAR->(DBSETORDER(1)) // лучше вынести до DO WHILE !WSPISOK->(EOF()) если там где ...не меняется ордер


If WTOVAR->(dbSEEK(nKod))
WTOVAR->(dbOrderInfo(DBOI_SCOPEBOTTOM,,,nkod))
DO WHILE !WTOVAR->(eof())
....
WTOVAR->(DbSKIP())
ENDDO
WTOVAR->(dbOrderInfo(DBOI_SCOPEBOTTOMCLEAR)) // упс я забыл добавить...забил се мозк Minigui ;)
endif

WSPISOK->KOD1 := ...
// запись расчётов
WSPISOK->(DBSKIP())
ENDDO



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




Пост N: 4249
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.06.15 13:04. Заголовок: Pasha пишет: Кстати..


Pasha пишет:

 цитата:
Кстати, go top здесь лишний.


Согласен. Но на всякий случай...

 цитата:

Можно проверить, что за индекс открыт.
После
DBSETORDER(1)



SELECT WTOVAR
DBSETORDER(1)
SEEK(nKod)
lRet := FOUND()
MsgDebug(lRet,nMaster,ALIAS(), OrdKey(), OrdName(), OrdFor() )
DO WHILE WTOVAR->KOD == nKod

Поставил. И сразу обнаружил фигню:
Возвращает: F, 33, WTOVAR, "STR(KOD)+STR(KVIP)", "tovarvip", "!DELETED()"
Наверно где то в коде по другому срабатывает...
У меня есть в коде "STR(KOD)+STR(KVIP)", но эта выборка идёт после выбора из Tbrowsa oBrw1 после
расчета количества KOD ! Там вообще другой prg и строиться новое окно с Tbrowse oBrw3.
cFileTag := PATH_TEMP + "tmp_tovar_leto_tag.cdx"
DEFINE WINDOW Form_Tov3 ;
....
SELECT WTOVAR
DBSetOrder( 1 )
goto TOP
// файл для SCOPE
cTag := 'tovarvip'
cKey := 'STR(KOD)+STR(KVIP)'
lUnq := .F.
//OrdCreate( cFileTag, cTag, cKey, &( '{||'+cKey+'}' ), lUnq)
OrdCreate( , cTag, cKey, &( '{||'+cKey+'}' ), lUnq)

DEFINE TBROWSE oBrw3 ;
......
cFileTag использовал для локальной отладки, а потом убрал вообще.
Ничего не понимаю, как вновь созданный индес может менять своё значение "KOD" на "STR(KOD)+STR(KVIP)"...


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




Пост N: 4250
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.06.15 13:10. Заголовок: Dima пишет: Если эт..


Dima пишет:

 цитата:
Если это рабочий код а не просто пример его надо переделать.


Рабочий ! В отдельной программе работает.
Dima пишет:

 цитата:
ProcessMessages() // надеюсь тут нет смены Алиаса ?


Стандартная функция минигуи DO EVENTS
Не меняет алиас.

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




Пост N: 4251
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.06.15 13:17. Заголовок: Блин..... Нашёл в па..


Блин..... Нашёл в папке чужой индексный файл, который совпадает с именем базы....
Ларчик открывается вообще просто....
Терпеть не могу это автооткрытие индексов !!! Опять попал на старые
Всегда отключал его и делал имена файлов индексов отличные от имени базы!
Как для LetoDB отключить открытие индексов автоматом вместе с базой ?
На всякий случай....

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




Пост N: 4252
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 12.06.15 13:28. Заголовок: Pasha пишет: выдать..


Pasha пишет:

 цитата:
выдать
? OrdKey()
? OrdName()
? OrdFor()
и тому подобное


Приведи пожалуйста еще функции какие можно использовать для Leto...
А то от стандартного CDX перестали работать.

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




Пост N: 4889
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.06.15 13:28. Заголовок: Andrey пишет: Как д..


Andrey пишет:

 цитата:
Как для LetoDB отключить открытие индексов автоматом вместе с базой ?


Ни как , обсуждали уже. И Павел отказался это исправлять.

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




Пост N: 4253
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.06.15 13:36. Заголовок: Dima пишет: Ни как ..


Dima пишет:

 цитата:
Ни как , обсуждали уже. И Павел отказался это исправлять.


Понял, Спасибо !

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




Пост N: 4254
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.06.15 16:47. Заголовок: Как пройтись по папк..


Как пройтись по папкам на LetoDB и получить список всех файлов вида "/папка/папка/файл" ?

Сделал код, но он кривоватый, не учитывает вложенные папки...
aDir := {}
aDir0 := Leto_Directory( M->cPubPathLeto , "D" )
aFile0 := Leto_Directory( M->cPubPathLeto + "*.*" )
IF LEN(aDir0) > 0
FOR nI := 1 TO LEN(aDir0)
cPath := aDir0[nI,1]
IF cPath == "." .OR. cPath == ".."
ELSE
aFile := Leto_Directory( M->cPubPathLeto + cPath + "/*.*" )
FOR nJ := 1 TO LEN(aFile)
AADD( aDir, "/"+cPath + "/" + aFile[nJ,1] )
NEXT
ENDIF
NEXT
ENDIF
IF LEN(aFile0) > 0
FOR nI := 1 TO LEN(aFile0)
AADD( aDir, aFile0[nI,1] )
NEXT
ENDIF
aFile := ASORT(aDir)


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




Пост N: 4898
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 14.06.15 17:14. Заголовок: Andrey http://clipp..

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




Пост N: 4255
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.06.15 17:44. Заголовок: Спасибо Dima ! То чт..


Спасибо Dima ! То что надо !

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




Пост N: 4256
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.06.15 20:03. Заголовок: Сделал еще 2 проекта..


Сделал еще 2 проекта-теста на МиниГуи.
Копирование файлов через Leto_MemoRead(), Leto_MemoWrit() и создание zip-архива с отправкой на LetoDB.
Исправил 2 предыдущих проекта.
Общий архив - https://cloud.mail.ru/public/GiWn/cEYHCiBVT
Комментарии и критика приветствуются !



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