|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
Есть класс на основе Line, в методе Init открываю таблицу и открываю индекс (use table.dbf in 0; set order to ind_xxx), есть метод getdata, его код примерно такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
если переменная nomer = '000000', то должны были выбраться записи с 000000 по kol (количество записей) Но Фокс_ком_сервер , почему то не чувствует индекс, выбирает постоянно начиная с первой записи. Проверял не через ком (просто открыл таблицу и тд.) все идет как надо. Что может быть. И вообще правильно ли я делаю. Знаю что нужно ве это через SQL-servers, но так тоже ведь должно работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2008, 23:56 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
Ставил и после Select, Set Order To ind_xxx таже история ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2008, 00:04 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
Set order to 0 Не знаю почему надо делать так, но эту проблему я решил таким вот образом. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2008, 08:10 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
1. Конечено же надо через команду SELECT (в ней-же даже можно определить использование индекс) 2. Если использовать Ваш подход (что для FoxPro будет возможно даже быстрее чем через SELECT): - используйте seek() с параметрами - дале используйте DOWHILE с Вашим условием выборки Good luck! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2008, 09:19 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
1010100021 Но Фокс_ком_сервер , почему то не чувствует индекс, выбирает постоянно начиная с первой записи. Проверял не через ком (просто открыл таблицу и тд.) все идет как надо. Что может быть. И вообще правильно ли я делаю. Знаю что нужно ве это через SQL-servers, но так тоже ведь должно работать. 1. Рядом с СОМ-сервером лежит ли config.fpw и что в нём написано 2. Какие установки SET ANSI, SET EXACT ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2008, 12:56 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
И 3) какое выражение индекса по которому ищется строка. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2008, 12:57 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
сделай reindex на всякий случай почитай что другие написал скорей так и есть set exact гляди - кстати ты можешь включать config.fpw в проект а еще заведи себе метод в OLE (или просто функцию) и пиши в файл для отладки что тебе надо - чтобы понять проблему вот у меня типа # DEFINE Err_LogTxt [c:\gl1_log.txt] * ----------------------------------------------------- FUNCTION Logit PARAMETERS S1 , Str2 IF TYPE('S1') != 'C' && empty - просто событие S1 = '' && ' ?тип' ENDIF * PROGRAM(PROGRAM(-1)-1) предыдущая прога * TRANSFORM без параметров приводит к строке S1 = + d_CRLF + TRANSFORM (DATETIME()) + ' ' + PROGRAM(PROGRAM(-1)-1) + ' ' + S1 IF TYPE('Str2') = 'C' S1 = S1 + d_CRLF + Str2 + d_CRLF ENDIF STRTOFILE( ALLTRIM(S1), Err_LogTxt , .T.) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2008, 16:27 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
VictorSKSet order to 0 Не знаю почему надо делать так, но эту проблему я решил таким вот образом. Пишет, что "Не указан порядок сортировки" :-( ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2008, 18:54 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
Установки: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2008, 18:55 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
PaulWistИ 3) какое выражение индекса по которому ищется строка. Просто индекс по полю Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2008, 18:57 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
VictorSKSet order to 0 Не знаю почему надо делать так, но эту проблему я решил таким вот образом. Если можно пожалуйста приведите пример кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2008, 23:11 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
Если Вы работаете через COM-DLL, то создавайте на стороне сервера курсор с order by и передавайте его клиенту. При условии создания индекса на стороне клиента index on, я делаю после его создаия set ordert to 0 и тогда выборка сортируется по нужному мне полю. Правда использую это в редких случаях. В основном сортировка приходит с сервера. При технологии клиент-сервер клиент и не знает где находятся таблицы, все делает сервер. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2008, 08:12 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
> Автор: VictorSK > При условии создания индекса на стороне клиента index on, я делаю > после его создаия set ordert to 0 и тогда выборка сортируется по нужному > мне полю. До чего техника дошла. Сделал set order to 0 и хоба це - курсор отсортирован так как мне надо. А я сижу, башку ломаю как же мне надо и что для этого сделать... :-( Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2008, 11:18 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
VictorSKЕсли Вы работаете через COM-DLL, то создавайте на стороне сервера курсор с order by и передавайте его клиенту. При условии создания индекса на стороне клиента index on, я делаю после его создаия set ordert to 0 и тогда выборка сортируется по нужному мне полю. Правда использую это в редких случаях. В основном сортировка приходит с сервера. При технологии клиент-сервер клиент и не знает где находятся таблицы, все делает сервер. Зачем передавать целый курсор, нужно на сервере выбрать записи и передать строку клиенту. А он не видит индекс. Один вопрос - почему не видит, почему не работает как надо? должен ведь... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2008, 18:02 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
Он и не должен видеть индекс. Клиент получает курсор, который ему передал сервер. Смотрите что у Вас формирует сервер. У меня при использовании order by проблем нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2008, 18:24 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
VictorSKОн и не должен видеть индекс. Клиент получает курсор, который ему передал сервер. Смотрите что у Вас формирует сервер. У меня при использовании order by проблем нет. Если он это клиент, то конечно не должен. Я про сервер, сервер у меня не чувствует индекс, на сервере делаю set order to ind_xxx, хочу найти строку которую передал клиент, но строка не находится и данные всегда приходят начиная с первой записи в таблице... VictorSKУ меня при использовании order by проблем нет. Нет проблем на сервере где используется set order to, так я понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2008, 23:16 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
На сервере я не использую set order, в SQL-Select сортирую по order by. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2008, 07:40 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
SET EXACT OFF елси длина выражения поиска меньше чем длина выражения в индексе да и вобщем ИМХО удобней всегда иметь SET EXACT OFF не даром она по дефолут стоит SEEK nomer IF FOUND() FOR k=1 TO kol retStr = retStr + ALLTRIM(mpdl.uch)+';'+ALLTRIM(mpdl.npd)+';'+ALLTRIM(mpdl.fm)+';'+ALLTRIM(mpdl.im)+';'+ALLTRIM(mpdl.ot)+CHR(13)+CHR(10) SKIP ENDFOR ENDIF ззы я же говорил выведи нужну инфу тебе в лог а для тебя это nomer, SET('EXACT') order() dbf() FOUND() retSt ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2008, 14:37 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
PARAMETERS nomer as String, kol as Integer retStr='' SELECT mpdl ******************************************** ВСТАВЬСЮДА: ******************************************* set order to ИМЯ_ИНДЕКСА_ТЭГА **И всё будет хорошо. А сейчас не указано, с каким индексом работать. Остальное - хорошо )) SEEK nomer IF FOUND() FOR k=1 TO kol retStr = retStr + ALLTRIM(mpdl.uch)+';'+ALLTRIM(mpdl.npd)+';'+ALLTRIM(mpdl.fm)+';'+ALLTRIM(mpdl.im)+';'+ALLTRIM(mpdl.ot)+CHR(13)+CHR(10) SKIP ENDFOR ENDIF RETURN retStr Проверял не через ком (просто открыл таблицу и тд.) все идет как надо. Что может быть. И вообще правильно ли я делаю. Знаю что нужно ве это через SQL-servers, но так тоже ведь должно работать.[/quot] ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2008, 15:04 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
FAMPARAMETERS nomer as String, kol as Integer retStr='' SELECT mpdl ******************************************** ВСТАВЬСЮДА: ******************************************* set order to ИМЯ_ИНДЕКСА_ТЭГА **И всё будет хорошо. А сейчас не указано, с каким индексом работать. Остальное - хорошо )) SEEK nomer IF FOUND() FOR k=1 TO kol retStr = retStr + ALLTRIM(mpdl.uch)+';'+ALLTRIM(mpdl.npd)+';'+ALLTRIM(mpdl.fm)+';'+ALLTRIM(mpdl.im)+';'+ALLTRIM(mpdl.ot)+CHR(13)+CHR(10) SKIP ENDFOR ENDIF RETURN retStr Проверял не через ком (просто открыл таблицу и тд.) все идет как надо. Что может быть. И вообще правильно ли я делаю. Знаю что нужно ве это через SQL-servers, но так тоже ведь должно работать. 1010100021 Ставил и после Select, Set Order To ind_xxx таже история :( буду вертеть дальше.... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2008, 19:00 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
Гулин Федор... ззы я же говорил выведи нужну инфу тебе в лог а для тебя это nomer, SET('EXACT') order() dbf() FOUND() retSt попробую реализовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2008, 19:02 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
Завел себе лог как посоветовал Гулин Федор . Так вот вроде сервер и индекс открывает и запись находит, но данные опять таки начиная с первой записи тусует......непонятно ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2008, 23:54 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
Вот тебе раз, при создании через Createobjectex пишет "Требуемый класс отсутствует в ClassFactory ", пересоздал, таже беда ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2008, 00:25 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
Что же делать??????????????????????? Вот код класса: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
Все равно не видит индекс. (хотя говорит что видит) Что же делать?? Почему??? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2008, 22:05 |
|
VFP COM server, с DBF файлами на сервере
|
|||
---|---|---|---|
#18+
А все равно выбирает с первой записи: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Вывод - неверно! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2008, 22:12 |
|
|
start [/forum/topic.php?fid=41&msg=35721187&tid=1586941]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 326ms |
total: | 477ms |
0 / 0 |