powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Совет правильно изменить RecordSource в Grid
5 сообщений из 5, страница 1 из 1
Совет правильно изменить RecordSource в Grid
    #33058535
Новоселов Олег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Много сообщений о сбоях колонок в 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
Совет правильно изменить RecordSource в Grid
    #33058675
Samvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему обязательно надо вместо простого обяснения, усложнить ответ.
Ведь я дал простой совет, всего на трех строках:
http://www.sql.ru/forum/actualthread.aspx?tid=178590
...
Рейтинг: 0 / 0
Совет правильно изменить RecordSource в Grid
    #33058738
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Олег!

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

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

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

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


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