Автор | Сообщение |
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" Помню что где то обсуждали, а результат не запомнил...
|
|
|
Ответов - 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() ?
|
|
|
Pasha
|
| Администратор
|
Пост N: 3282
Зарегистрирован: 23.05.05
|
|
Отправлено: 11.06.15 11:50. Заголовок: Да, неудобно то, что..
Да, неудобно то, что у функции rddInfo() нет соответствующей команды, и приходится использовать dbInfo. А для dbInfo неважно, какой драйвер стоит по умолчанию. Надо, чтобы вызов был из рабочей области, которая использует нужный rdd Отдельную функцию - конечно, можно добавить
|
|
|
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, а индекс строю на локальном компе (он временный, на один раз).
|
|
|
Pasha
|
| Администратор
|
Пост N: 3283
Зарегистрирован: 23.05.05
|
|
Отправлено: 11.06.15 13:05. Заголовок: Локально индекс не с..
Локально индекс не создается. А для создания индекса на сервере надо указать путь относительно DataPath
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4244
Зарегистрирован: 12.09.06
|
|
Отправлено: 11.06.15 13:27. Заголовок: Спасибо Pasha ! :sm3..
Спасибо Pasha !
|
|
|
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 !
|
|
|
Pasha
|
| Администратор
|
Пост N: 3284
Зарегистрирован: 23.05.05
|
|
Отправлено: 11.06.15 18:21. Заголовок: Как бы не видно сам ..
Как бы не видно сам код. Как индекс создается, остается ли он открытым, непонятно.
|
|
|
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. Почему ? Чем можно заменить ?
|
|
|
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() и тому подобное
|
|
|
Dima
|
| |
Пост N: 4884
Зарегистрирован: 17.05.05
|
|
Отправлено: 11.06.15 21:27. Заголовок: Всего кода я конечно..
Всего кода я конечно не видел Andrey пишет: Возможно после нужен 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
|
|
|
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)"...
|
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4250
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.06.15 13:10. Заголовок: Dima пишет: Если эт..
Dima пишет: цитата: | Если это рабочий код а не просто пример его надо переделать. |
| Рабочий ! В отдельной программе работает. Dima пишет: цитата: | ProcessMessages() // надеюсь тут нет смены Алиаса ? |
| Стандартная функция минигуи DO EVENTS Не меняет алиас.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4251
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.06.15 13:17. Заголовок: Блин..... Нашёл в па..
Блин..... Нашёл в папке чужой индексный файл, который совпадает с именем базы.... Ларчик открывается вообще просто.... Терпеть не могу это автооткрытие индексов !!! Опять попал на старые Всегда отключал его и делал имена файлов индексов отличные от имени базы! Как для LetoDB отключить открытие индексов автоматом вместе с базой ? На всякий случай....
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4252
Зарегистрирован: 12.09.06
|
|
Отправлено: 12.06.15 13:28. Заголовок: Pasha пишет: выдать..
Pasha пишет: цитата: | выдать ? OrdKey() ? OrdName() ? OrdFor() и тому подобное |
| Приведи пожалуйста еще функции какие можно использовать для Leto... А то от стандартного CDX перестали работать.
|
|
|
Dima
|
| |
Пост N: 4889
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.06.15 13:28. Заголовок: Andrey пишет: Как д..
Andrey пишет: цитата: | Как для LetoDB отключить открытие индексов автоматом вместе с базой ? |
| Ни как , обсуждали уже. И Павел отказался это исправлять.
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4253
Зарегистрирован: 12.09.06
|
|
Отправлено: 13.06.15 13:36. Заголовок: Dima пишет: Ни как ..
Dima пишет: цитата: | Ни как , обсуждали уже. И Павел отказался это исправлять. |
| Понял, Спасибо !
|
|
|
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)
|
|
|
Dima
|
| |
Пост N: 4898
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.06.15 17:14. Заголовок: Andrey http://clipp..
|
|
|
Andrey
|
| постоянный участник
|
Пост N: 4255
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.06.15 17:44. Заголовок: Спасибо Dima ! То чт..
Спасибо Dima ! То что надо !
|
|
|
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 Комментарии и критика приветствуются !
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|