On-line: PSP,гостей 1. Всего: 2 [подробнее..]
АвторСообщение
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 час. Хитов сегодня: 295
Права: смайлыда,картинкида,шрифтыда,голосованиянет
аватарыда,автозамена ссылоквкл,премодерацияоткл,правканет