powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / CA-медленно обновляется - помогите советом
24 сообщений из 49, страница 2 из 2
CA-медленно обновляется - помогите советом
    #38153052
Людмila
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня на вновь созданной форме DE отсутствует, скажу больше - На ней нет даже Labelов и Commandов тоже нет! и даже назвать себя она красиво не смогла (типа Габриэлла1) - скромненько Form1. По всей видимости у меня среда разработки FoxPro9 плохая. Всё приходится делать ручками и элементы добавлять и писать к ним код.
А так представте, создаёшь новуя форму и вот она - Габриэлла1 уже c DE, кнопками и надписями. И конечно, добавлять на неё второй DE уже извращение.
Может и правда я не в том Фоксе работаю?
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38153321
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Людмila

Не совсем понятна ваша проблема.
Возможно это:

Посмотрите строку - Tools-Options-Forms-Form, там дожны быть ваша .vcx и в ней ваш класс.
Если строка пустая, то форма создается родная фоксовская.
Не забудьте сохранить Set As Default.
Или
Откройте форму как класс:
Tools-Class Browser-Open-Тип файлов-Form
Затем Правая кнопка-Redefine-найти свою .vcx и в ней свой класс.
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38153411
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Людмilaа лучше подскажите как из табл со структурой
field 1 | f2 | f3 | f4 |
Иванов | 0 | 0 | 1 |
Петров | 0 | 1 | 0 |
Сидров | 1 | 0 | 0 |

сделать программно таблицу
Иванов | Петров | Cидров |
0 | 0 | 1
0 | 1 | 0
1 | 0 | 0Типа так:
Код: sql
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.
CREATE CURSOR curData (f1 c(20), f2 n(1), f3 n(1), f4 n(1), f5 n(1), f6 n(1))
INSERT INTO curData VALUES ('Иванов', 0, 0, 0, 1, 0)
INSERT INTO curData VALUES ('Петров', 0, 0, 1, 0, 1)
INSERT INTO curData VALUES ('Сидоров', 1, 0, 0, 0, 0)

cFN='f1'

COPY TO ARRAY aTableF FIELDS &cFN
nRec=_TALLY
cFieldsNew=''
FOR i=1 TO nRec
 cFieldsNew=cFieldsNew+','+TRIM(aTableF(i,1))+' n(1)'
ENDFOR
cFieldsNew=SUBSTR(cFieldsNew,2)
CREATE CURSOR curNew ( &cFieldsNew )

SELECT curData
nFields=AFIELDS(aF,'curData')-1
DIMENSION aTableI(MAX(nFields,nRec),MAX(nFields,nRec))
COPY TO ARRAY aTableI FIELDS EXCEPT &cFN
FOR i=1 TO nRec
 FOR j=i+1 TO nFields
  vTemp=aTableI(i,j)
  aTableI(i,j)=aTableI(j,i)
  aTableI(j,i)=vTemp
 ENDFOR
ENDFOR

SELECT curNew
APPEND FROM ARRAY aTableI

USE IN curData
RELEASE ALL LIKE aTable*

Ну, можно ещё добавить контроль-приведение типов и размера полей, можно задавать и список полей для транспонирования, можно попробовать обойтись выделением памяти только под один массив размера nRec*nFields...
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38153485
Людмila
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sg12Людмila

Не совсем понятна ваша проблема.
Боже упаси! Никакая это не проблема. Пусть форма при создании будет пустая, а всё остальное добавим по мере необходимости.
К примеру в моём приложении 12-15 форм все они разительно отличаются друг от друга и только в двух из них использую DataEnvironment. Так нужен он мне по умолчанию при создании формы? конечно же Нет.
Честно говоря ещё пару месяцев назад имела смутные представления об этом элементе.

ОГромное СП AndreTM, чуть попозже попробую протестить на своих таблицах.
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38154433
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>>where like(left(Fam,5)+'o*',Fam) && по-руски все записи у которых в Фамилии пятый символ "о"
>>Для строк короче пяти символов смысл этого выражения будет немножко другим.
>нормально так. КАким?!?
Пример:
Код: plaintext
1.
2.
3.
4.
fam='АБВ'
left(Fam,5)='АБВ'
left(Fam,5)+'o*'='АБВо*'
like(left(Fam,5)+'o*',Fam) == все записи у которых в Фамилии  четвёртый  символ "о"
Хм, кстати, для строк из 5+ символов:
Код: plaintext
1.
2.
3.
fam='АБВГДЕ'
left(Fam,5)='АБВГДЕ'
left(Fam,5)+'o*'='АБВГДо*'
like(left(Fam,5)+'o*',Fam) == все записи у которых в Фамилии  шестой  символ "о"
Будьте внимательней :)



Людмilaа лучше подскажите как из табл со структурой
field 1 | f2 | f3 | f4 |
Иванов | 0 | 0 | 1 |
Петров | 0 | 1 | 0 |
Сидров | 1 | 0 | 0 |

сделать программно таблицу
Иванов | Петров | Cидров |
0 | 0 | 1
0 | 1 | 0
1 | 0 | 0В поиск по "pivot".
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38154584
Людмila
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это другое дело!
Спасибо за ликбез. проверила-перепроверила. Считала, что Left('ABC',5)+'o*' будет 'ABC o*'
ну а в переводе ошибочка вышла - трансляция снукера по Евроспорту началась,
а вот "PIVOT" для меня совершенно новое слово. опять же спасибо, поищу!

Помниться наш препод на лекции (шутя отвлекшись от темы) продемонстрировал как это делается SELECTom
развернул таблицу что все строки стали колонками, а колонки строками (умнейший был Дядька, но злоупотреблял)
и скорее всего я эту Фишку не записала - по третьему разу просматриваю старые лекции.
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38154602
Людмila
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вот что сказал Гугл
"Пивот это инструмент, которым могут пользоваться как трейдеры торгующие во флете, так и те, которые торгуют на пробой. Первые используют пивот для определения точек разворота, вторые используют пивот, чтобы определить ключевые уровни для пробития цены".
что-то я не пойму каким боком мне ПИВОТ пристроить к моей задумке - по всей видимости это шутка!?

Сейчас я имею расписание приемов врачей DE>>CA-обновление по таймеру в формате
в р а ч | 13:00 | 13:45 | - заголовок
Иванова | зант| своб| ............- строка
Петрова | своб| зант| ............- строка

хотелось бы иметь возможность по клику переделать изображение на
Иванва | Петрва | - заголовок
13 : 00 | 13 : 00 | - строка
13 : 45 | 13 : 45 | - строка

возможно два грида один из которых Visible=.F.
но источник данных один и тот же
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38154641
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛюдмilaИ вот что сказал Гугл

pivot table надо искать

Тут в экселе
Тут на фоксе
Тут в MSSQL
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38154880
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В поставке VFP есть классы _xtab и pivottable , можно ими просто воспользоваться.

Я же считаю, что у вас проблема в том, что вы на основе одного отображения (которое "расписание") пытаетесь создать другое отображение, хотя надо просто создавать сразу оба отображения из одного источника.
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38154920
Людмila
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM, полностью с Вами согласна, безусловно из одного источника.
планирую разместить их в разных Гридах друг-за-другом один из которых Visible=.F.
По желанию пользователя можно будет переключиться на другой грид - поменяв Visible обоих.
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38154922
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Людмila,

Ну так изобразите структуру источника - и, думаю, нужную пару селектов вам сразу же покажут
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38154957
Людмila
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю, что покажут.
Но, насколько меня хватит, буду делать сама.
В любом случае спасибо!
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38155490
VIVA_CA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые, коллеги! Хочу вернуться к первоначальной теме.
Пытаюсь организовать асинхронный режим.
1 При -
** СА.MaxRecords = 100
СА.FetchSize = -1
СА .FetchAsNeeded = .F. естественно загружает все в Грид

2 При -
СА.MaxRecords = 100
СА.FetchSize = 100
СА .FetchAsNeeded = .Т. - Грид пустой

3 и только при -
СА.MaxRecords = 100
СА.FetchSize = -1 - !!!!
СА.FetchAsNeeded = .T. загружается первые 100 записей

????? почему СА.FetchSize = -1 и как в Гриде загрузить следующую порцию ???
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38155585
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FetchSize Property
HELP... If nValue is -1, Visual FoxPro retrieves the complete result set, which is limited by the value of the MaxRecords property.
т.е. MaxRecords и FetchAsNeeded работают когда FetchSize = -1

FetchAsNeeded = .T. это не асинхронный режим. Тут запрос полностью выполняется на сервере и сервер возвращает первые MaxRecords записей а остальные лежат на сервере и ждут пока их клиент заберет. Листая грид они докачиваются.
Как принудительно докачать я не знаю. Не пользуюсь FetchAsNeeded = .T., т.к. тут есть другой подвох - пока весь результат запроса не забран с сервера нельзя выполнить другой запрос через это соединение, ошибка происходит, что-то типа "connection busy".

ЗЫ Если подозреваешь что запрос по разному отрабатывает через CA и SQLexec() - включи трассировку ODBC и посмотри лог для каждого случая.
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38155739
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIVA_CAвремя на 80тыс записях в 1вар -3сек а на 2вар- 6сек
Подумай, так ли нужны пользователю 80 тыс. записей? Смотреть в гриде устанет.
Может лучше интерфейс как-то переделать?

Я на всех запросах ставлю top. Например делаешь запрос
Код: sql
1.
select TOP 1000 ...


после проверяешь
Код: sql
1.
2.
3.
if reccount('...') = 1000
   MessageBox('В выборку попало слишком много записей. Показаны первые 1000. Задайте более точное условие выборки.')
endif



Потом размер записи можно уменьшить, выбирать только нужные поля а не все, т.е. вместо * перечислить нужные поля.
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38156164
VIVA_CA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подумай, так ли нужны пользователю 80 тыс. записей? Смотреть в гриде устанет.
Dima T естественно с Вами согласен, но случаи бывют разные.
В ранних топиках попадались статьи об успешной организации асинхронного режима на базе СА. Установив (повторяюсь)
СА.FetchSize = 100
СА .FetchAsNeeded = .Т.
хотелось бы повторить подвиг

включи трассировку ODBC и посмотри лог для каждого случая. - Если не затруднит - подробнее как это сделать
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38156300
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIVA_CAВ ранних топиках попадались статьи об успешной организации асинхронного режима на базе СА.
Тут вроде как надо еще асинхронный режим соединения включить.
Код: sql
1.
SQLSETPROP(handle, 'Asynchronous', .T.)


Пробовал это для SQLEXEC() - работает, но скорость получения результата в разы ниже.

VIVA_CAвключи трассировку ODBC и посмотри лог для каждого случая. - Если не затруднит - подробнее как это сделать
Панель управления - ODBC - вкладка Трассировка
это в W7, в XP было в администрировании.
Пример на картинке. Задаешь лог и жмешь "Пуск трассировки".
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38156890
VIVA_CA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T благодарю! Когда что-то получится отпишусь. Текучка отвлекает.
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38157150
VIVA_CA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Включил трассировку
Включил SQLSETPROP(handle, 'Asynchronous', .T.)
На форме создал кнопку с такой командой:
lnResult = SQLEXEC(m.gn_Soed,'') т.е. так пытаюсь дернуть следующую порцию

проверяю в степе
lnResult = -1
И вот последние строки лога:
ошибка видна - но хотелось бы поточнее читать и понимать каждую строчку!

vfp9 868-f9c ENTER SQLSetStmtOption
HSTMT 0x00B6AB08
UWORD 9 <SQL_ROWSET_SIZE>
SQLPOINTER 1

vfp9 868-f9c EXIT SQLSetStmtOption with return code 0 (SQL_SUCCESS)
HSTMT 0x00B6AB08
UWORD 9 <SQL_ROWSET_SIZE>
SQLPOINTER 1

vfp9 868-f9c ENTER SQLExecDirect
HSTMT 0x00B6AB08
UCHAR * 0x01E0DEA8 [ -3] "\ 0"
SDWORD -3

vfp9 868-f9c EXIT SQLExecDirect with return code -1 (SQL_ERROR)
HSTMT 0x00B6AB08
UCHAR * 0x01E0DEA8 [ -3] "\ 0"
SDWORD -3

DIAG [S1000] [MySQL][ODBC 3.51 Driver][mysqld-5.1.48-community]Query was empty (1065)

vfp9 868-f9c ENTER SQLErrorW
HENV 0x00B6FF58
HDBC 0x00B6A828
HSTMT 0x00B6AB08
WCHAR * 0x0012DAC0
SDWORD * 0x0012DB08
WCHAR * 0x0012D6C0
SWORD 512
SWORD * 0x0012DB0C

vfp9 868-f9c EXIT SQLErrorW with return code 0 (SQL_SUCCESS)
HENV 0x00B6FF58
HDBC 0x00B6A828
HSTMT 0x00B6AB08
WCHAR * 0x0012DAC0 [ 5] "S1000"
SDWORD * 0x0012DB08 (1065)
WCHAR * 0x0012D6C0 [ 65] "[MySQL][ODBC 3.51 Driver][mysqld-5.1.48-community]Query was empty"
SWORD 512
SWORD * 0x0012DB0C (65)

vfp9 868-f9c ENTER SQLErrorW
HENV 0x00B6FF58
HDBC 0x00B6A828
HSTMT 0x00B6AB08
WCHAR * 0x0012DAC0
SDWORD * 0x0012DB08
WCHAR * 0x0012D6C0
SWORD 512
SWORD * 0x0012DB0C

vfp9 868-f9c EXIT SQLErrorW with return code 100 (SQL_NO_DATA_FOUND)
HENV 0x00B6FF58
HDBC 0x00B6A828
HSTMT 0x00B6AB08
WCHAR * 0x0012DAC0
SDWORD * 0x0012DB08
WCHAR * 0x0012D6C0
SWORD 512
SWORD * 0x0012DB0C

vfp9 868-f9c ENTER SQLCancel
HSTMT 0x00B6AB08

vfp9 868-f9c EXIT SQLCancel with return code 0 (SQL_SUCCESS)
HSTMT 0x00B6AB08

vfp9 868-f9c ENTER SQLCancel
HSTMT 0x00B6AB08

vfp9 868-f9c EXIT SQLCancel with return code 0 (SQL_SUCCESS)
HSTMT 0x00B6AB08
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38157225
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIVA_CAQuery was emptyИщите, где у вас пустой запрос формируется... а впрочем, чего там искать, вот же он:
VIVA_CAlnResult = SQLEXEC(m.gn_Soed,'') т.е. так пытаюсь дернуть следующую порциюМожет, уберёте '' и проверите снова?
PS. Асинхронным режимом сам не пользовался, может, надо тот же запрос посылать, а не опускать его текст...
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38157251
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIVA_CAИ вот последние строки лога:
ошибка видна - но хотелось бы поточнее читать и понимать каждую строчку!
ХЗ чего эти строчки означают. Какой-то внутренний протокол ODBC. Все что я там понимаю - это запросы посылаемые серверу "select ...". Видно что посылается и сколько раз.
Я тебе посмотреть предлагал в чем разница выполнения запроса разными способами.

VIVA_CAВключил SQLSETPROP(handle, 'Asynchronous', .T.)
На форме создал кнопку с такой командой:
lnResult = SQLEXEC(m.gn_Soed,'') т.е. так пытаюсь дернуть следующую порцию
Не уверен что это будет работать совместно с КА.
У асинхронного режима другая логика: отправляется запрос и периодически проверяется пришел ли ответ, в это время можно какой-то другой код выполнять.
В файле форма-тест. Я как-то разбирался с асинхронным режимом, но так и не нашел ему применения.
Задаешь строку подключения к серверу, пишешь запрос и нажимаешь кнопку "выполнить". Весь код прописан в таймере.

Как вариант после получения курсора прицепить его к КА через CursorAttach()
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38157598
VIVA_CA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проверил --- AsyncSQL.zip - 2Kb) cкачать

select top 100 * from ttt MySQL не понимает а вот так select * from ttt limit 100 - работает, но дальше не двигается
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38157612
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIVA_CAпроверил --- AsyncSQL.zip - 2Kb) cкачать

select top 100 * from ttt MySQL не понимает а вот так select * from ttt limit 100 - работает, но дальше не двигается
куда дальше? "limit 100" - первые 100 записей. все.
надо все - убери "limit 100".
у меня top 100 стояло чтоб сервер не насиловать пока пишу.
...
Рейтинг: 0 / 0
CA-медленно обновляется - помогите советом
    #38157825
VIVA_CA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда теряется понятие асинхронности
...
Рейтинг: 0 / 0
24 сообщений из 49, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / CA-медленно обновляется - помогите советом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]