Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Совет правильно изменить RecordSource в Grid / 5 сообщений из 5, страница 1 из 1
11.05.2005, 20:29
    #33058535
Новоселов Олег
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Совет правильно изменить RecordSource в Grid
Много сообщений о сбоях колонок в Grid после обновления источника,
захотелось высказаться по этому поводу.

Ниже приведенный пример иллюстрирует это, вызвая ошибку, т.к. thisformset.form4.grid1.RecordSource="" вызывает (поток)процесс разрушения Grid, а программа, не ожидая завершения данного потока,
пытается заново заполнить Grid.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
MY_SQL_REQUEST="EXEC sp_VkladSroki @IDls="+STR(IDls)
i_ret=SQLEXEC(i_sqlconnect,MY_SQL_REQUEST,"Table1")
IF i_ret>= 0 
  thisformset.form4.grid1.RecordSource=""
  SELECT Table1
  GO TOP
  thisformset.form4.grid1.RecordSource="Table1"
  thisformset.form4.grid1.column1.ControlSource="TTOD(Table1.dat1)"
  thisformset.form4.grid1.column2.ControlSource="TTOD(Table1.dat2)"
  thisformset.form4.grid1.column3.ControlSource="STR(Table1.days,5)"
  ...
  thisformset.form4.grid1.SetFocus 
ENDIF


РЕШЕНИЕ данной проблемы:
Вынести RecordSource="" в начало, перед SQL запросом:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
*---------------------------------------
thisformset.form4.grid1.RecordSource=""  && всего поменяли место вызова
*---------------------------------------

MY_SQL_REQUEST="EXEC sp_VkladSroki @IDls="+STR(IDls)
i_ret=SQLEXEC(i_sqlconnect,MY_SQL_REQUEST,"Table1")
IF i_ret>= 0 
  SELECT Table1
  GO TOP
  thisformset.form4.grid1.RecordSource="Table1"
  thisformset.form4.grid1.column1.ControlSource="TTOD(Table1.dat1)"
  thisformset.form4.grid1.column2.ControlSource="TTOD(Table1.dat2)"
  thisformset.form4.grid1.column3.ControlSource="STR(Table1.days,5)"
  ...
  thisformset.form4.grid1.SetFocus 
ENDIF
Пример реальный, и решение тоже,
думаю многим поможет избежать проблем.



Всем удачи!
...
Рейтинг: 0 / 0
11.05.2005, 22:51
    #33058675
Samvel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Совет правильно изменить RecordSource в Grid
Почему обязательно надо вместо простого обяснения, усложнить ответ.
Ведь я дал простой совет, всего на трех строках:
http://www.sql.ru/forum/actualthread.aspx?tid=178590
...
Рейтинг: 0 / 0
12.05.2005, 01:25
    #33058738
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Совет правильно изменить RecordSource в Grid
Hi Олег!

Дык именно так всегда и советовали - ПЕРЕД разрушением источника сбросить, ПОСЛЕ - восстановить. В твоём случае разрушает источник именно SQLEXEC(), а вовсе не Select или GO TOP :)

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
12.05.2005, 09:22
    #33058954
Новоселов Олег
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Совет правильно изменить RecordSource в Grid
Пример -это всего лишь иллюстрация:

2 Samvel
Код: plaintext
1.
2.
надо присвоить recordSource=""
открыть "новый файл"
присвоить RecordSource="новый файл"

Главное, соблюсти порядок 1,2,3
...
Рейтинг: 0 / 0
12.05.2005, 09:25
    #33058965
Samvel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Совет правильно изменить RecordSource в Grid
У Вас тоже пример, но строк побольше
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Совет правильно изменить RecordSource в Grid / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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