powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / alias in grid
16 сообщений из 16, страница 1 из 1
alias in grid
    #37127334
StQFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток форумчане!
Есть вопрос.
на форме есть pgframe с несколькими вкладками, на одной из которох grid с дефолтными настройкамии, кроме
RecordSource="" (Сделано для предотвращения потерь настроек оформления при обновлении источника данных).
При активации вкладки выполняется следующее:
если обнаружена открытая таблица-источник (в примере crop) данных и данные в ней обновлены,то:

This.grdids.RecordSource=""
USE in crop
getoper(gnls) вызов хранимки , формирующей курсор
SELECT crop
This.grdids.RecordSource="crop"
This.grdids.RecordSourceType= 2
This.grdids.Refresh
ENDIF
This.grdoperations.Refresh

Если ее таблицы-источника нет:

getoperationsbyloan(gnls)
SELECT crop
This.grdids.RecordSource="croperbyloan"
This.grdids.RecordSourceType= 2
This.grdids.Refresh

При такой схеме иногда вылетает системная ошибка потери источника данных в виде окна с предложением выбрать таблицу или алиас.
При чем если закрыть появившееся окно без выполнения выбора, данные нормально отражаются на форме (обновленные или текущие - в зависимости от условия выше). Т.е., запрос отрабатывается корректно, проблема с потерей алиаса.
Пробывал повторить ситуацию (делал откат базы из копии) - ошибки нет. Т.е., плавающего характера.
Может быть кто-то сталкивался с похожей траблой? Буду признателен.

Fox 9+sp2
Windows 7 базовая, 32 разрядная.

На компьютере клиента установлены библиотечки из первого sp1 фоксы. Самой среды разработки нет.
...
Рейтинг: 0 / 0
alias in grid
    #37127590
StQFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
внес изменения для ясности, чтобы ненароком еще один умник не умничал

This.grdids.RecordSource=""
USE in crop
getoper(gnls) вызов хранимки , формирующей курсор
SELECT crop
This.grdids.RecordSource="crop"
This.grdids.RecordSourceType= 2
This.grdids.Refresh
ENDIF
This.grdoperations.Refresh

Если ее таблицы-источника нет:

getoper(gnls)
SELECT crop
This.grdids.RecordSource="crop"
This.grdids.RecordSourceType= 2
This.grdids.Refresh
...
Рейтинг: 0 / 0
alias in grid
    #37127594
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема скорее всего в этом:
StQFox...
This.grdids.RecordSource=" crop "
...
Если ее таблицы-источника нет:
SELECT crop
This.grdids.RecordSource=" croperbyloan "

У тебя меняется имя курсора, а грид кроме RecordSource хранит его в ControlSource колонок.
...
Рейтинг: 0 / 0
alias in grid
    #37127601
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что была ясность, приведите код ф-ии getoper(gnls), а уже потом будем делать выводы
...
Рейтинг: 0 / 0
alias in grid
    #37127612
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StQFoxПри такой схеме иногда вылетает системная ошибка потери источника данных в виде окна с предложением выбрать таблицу или алиас.
При чем если закрыть появившееся окно без выполнения выбора ...
Обычно при таких действиях ошибка должна быть, если ее не было, то скорее всего какой-то обработчик ошибок ее перехватывает и игнорирует. Смотри обработку ошибок, добавь запись в лог таких случаев.
...
Рейтинг: 0 / 0
alias in grid
    #37127631
StQFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWistЧто была ясность, приведите код ф-ии getoper(gnls), а уже потом будем делать выводы

Function getoper
Lparameters lnloanid

Select f_dateod,;
dt.f_accountname,kt.f_accountname,;
f_summa,f_comment,o.f_operationid;
From Database!t_op As o;
inner Join Database!t_ac As dt On dt.f_accountid=o.f_debetid;
inner Join Database!t_act As kt On kt.f_accountid=o.f_creditid;
Where o.f_loanid=lnloanid;
ORDER By f_dateod Desc, o.f_datefact Desc Into Cursor croper
Return
...
Рейтинг: 0 / 0
alias in grid
    #37127651
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так замеждупрочим,
может дойдет

Код: plaintext
1.
2.
3.
4.
 
....
Into Cursor croper
Return Return used("croper")

Код: plaintext
1.
2.
3.
4.
if getoperationsbyloan(gnls)
   SELECT   crop - вай итиз???

endif
...
Рейтинг: 0 / 0
alias in grid
    #37127652
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StQFoxPaulWistЧто была ясность, приведите код ф-ии getoper(gnls), а уже потом будем делать выводы

Function getoper
Lparameters lnloanid

Select f_dateod,;
dt.f_accountname,kt.f_accountname,;
f_summa,f_comment,o.f_operationid;
From Database!t_op As o;
inner Join Database!t_ac As dt On dt.f_accountid=o.f_debetid;
inner Join Database!t_act As kt On kt.f_accountid=o.f_creditid;
Where o.f_loanid=lnloanid;
ORDER By f_dateod Desc, o.f_datefact Desc Into Cursor croper
Return

1. Для начала, хорошо проверить на окрытые алиасы t_op, t_ac, t_a

2. Затем, надо проверить, что курсор croper получился.

3. Так же необходимо переопределить обработчик ошибок, что бы "выловить" строку на которой произошла ошибка.

И только после этого можно говорить, что грид теряет алиас.
...
Рейтинг: 0 / 0
alias in grid
    #37127653
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Есть совет не переходить на личности а по возможности обсуждать заданный автором вопрос. Пока просто удалил оскорбления и "наезды"...
...
Рейтинг: 0 / 0
alias in grid
    #37127655
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StQFoxНе заинтересован в ответе, пошел нах... Другие ответят.Сударь, да будет Вам известно, здесь в ответе можете быть заинтересованы только Вы и никто другой. Это Ваши проблемы. И если уж Вы пришли за решением Ваших проблем к нам, то уж потрудитесь прилаживаться к нам, а не устанавливать здесь свои правила.
...
Рейтинг: 0 / 0
alias in grid
    #37127697
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, если убрать "все лишнее", то имеем такую ситуацию

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
This.grdids.RecordSource="" 
use in 'crop'
select ... from ... into cursor croper

SELECT crop
This.grdids.RecordSource="crop"
This.grdids.RecordSourceType=  2 
This.grdids.Refresh

Для начала, вызывает недоумение тот факт, что в Grid используется алиас "crop", а формируется алиас "croper". Но, пусть это будет опечатка.

Также не понятно, зачем используется RecordSourceType= 2? Почему не стандартное RecordSourceType= 1 ?

Ну, и еще желательно убедится в том, что курсор создается в той же DataSession, в которой работает форма
...
Рейтинг: 0 / 0
alias in grid
    #37127935
StQFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov,

Сергей, абсолютно с вами согласен. Но если вами установлены правила перехода на личности при обозначенной проблеме, в чем же красит такой подход форумчан... И если кто-то обладает познанием по вопросу, больше чем задавший вопрос - это не дает ему права пренебрежительно разговаривать с ним. Можно подумать с пелёнок парень владел лисой... Все с чего то начинали...
Действия модератора - считаю доказательством своих слов.
Если кого-то обидел, извините...

За ответы всем большое спасибо, в том числе проходящемумимо - намек поняк. Буду копать дальше.

p.s.видимо понедельник дал знать о себе
...
Рейтинг: 0 / 0
alias in grid
    #37127969
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StQFox,

то есть простая констатация факта недостаточности умения оперировать областями - переход на личности?
Теряется алиас -> плохое представление о результате своих действий с областями/таблицами/курсорами -> неумение работать с областями/таблицами/курсорами. Такакя цепочка рассуждений оскорбительна? А результат осмысления этой цепочки? Или была тайная надежда на наличие бага в фоксе, которая волшебным образом избавит от самокритики?
...
Рейтинг: 0 / 0
alias in grid
    #37127998
StQFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov,

только что пришел с работы, позже разбирусь - сообщу.
полагаю, кому-то пригодится все что обсудили в этом топике.
смущает другое - ошибки нет в поднятой копии...
что касается наименований алиасов - тут малость упустил деталь: код я изменил для примера на форум. разбирусь с оригиналом, но повторюсь смущает что в копии б.д. по этой же записи ошибки нет, данные в и итоге возвращаются.

позже отпишусь.
спасибо
...
Рейтинг: 0 / 0
alias in grid
    #37128111
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StQFoxсмущает что в копии б.д. по этой же записи ошибки нет, данные в и итоге возвращаются.Вот и надо внимательнейшим образом с максимальными подробностиями изучить процесс переключения между областя и датасессиями, получением данных и что там у Вас еще с этим связано. Алиасы сами по себе не пропадают. Они исчезают или вследствие закрытия таблицы/курсора с этим алиасом, или вследствие ухода алиаса и соответствующей ему рабочей области из области видимости при переключении датасессии.
...
Рейтинг: 0 / 0
alias in grid
    #37128600
StQFox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По порядку:
1.if getoperationsbyloan(gnls)
SELECT crop - вай итиз???
Прошу прощения опечатка.

>>2.1. Для начала, хорошо проверить на окрытые алиасы t_op, t_ac, t_a
алиасы есть безусловно, проверил.

>> 2. Затем, надо проверить, что курсор croper получился.
есть. Момент такой в случае появления ошибки, если нажать на Esc, данные (именно те что и должны быть), я вижу в grid-е

>>3. Так же необходимо переопределить обработчик ошибок, что бы "выловить" строку на которой произошла ошибка.
вот в этом месте доработаю.

ВладимирМ
>>Для начала, вызывает недоумение тот факт, что в Grid используется алиас "crop", а >>формируется алиас "croper". Но, пусть это будет опечатка.
опечатка...

>>Также не понятно, зачем используется RecordSourceType= 2? Почему не стандартное >>RecordSourceType= 1 ?
возможно в этом и была вся проблема. Во всяком случае, пока ошибки не наблюдаю

Sergey Sizov
>>то есть простая констатация факта недостаточности умения оперировать областями - >>переход на личности?
Во-первых, не думаю, что не умею вообще. Написано несколько проектов и так же как у всех - движение вперед. Например, использование скл-ного подхода в контейнере б.д. (мелочь, может быть...) Сейчас в приложение реализована репликация данных через поднятый ftp- мелочь - ну может быть...
Вопрос ведь в том, КАК тебе объясняют.

>>Теряется алиас -> плохое представление о результате своих действий с областями/>>таблицами/курсорами -> неумение работать с областями/таблицами/курсорами. Такакя >>цепочка рассуждений оскорбительна?
нет не оскорбительна, но думаю каждый спотыкался на простых вещах в силу разных обстоятельств.

>>А результат осмысления этой цепочки? Или была тайная надежда на наличие бага в >>фоксе, которая волшебным образом избавит от самокритики?
Вот что-что, а фокс я никогда не винил. Правильно - винить надо в первую очередь себя,замыленный глаз, пробел в познании.

Спасибо всем!
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / alias in grid
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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