Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];

Вниз

can t do operation with opened DataSet   Найти похожие ветки 

 
DeepProg   (2002-10-12 13:31) [0]

Можно ли вообще во время выполнения приложения управлять видимостью и читаемостью полей в DataControls (DBGrid)?
Если все-таки можно, то как?
– Я так понял, что надо закрывать набор данных (Table) на время описанных манипуляций.


 
sniknik   (2002-10-12 14:40) [1]

каких манипуляций? где описаных? ничего не вижу.
видимостью - управляет свойство Visible.
читаемостью - ReadOnly.
во время операций с данными желательно выключать контроль визуальных компонент DisableControls;
после включать EnableControls;
думаю также ответил как ты спросил (непонятно и не к месту), разве случайно попал.


 
KDS   (2002-10-12 14:56) [2]

Visible
Видимость можно устанавливать в двух местах:
1) на обьектах полей набора данных (в редакторе полей)
2) на обьектах колонок DBGrid (сделай dblClick на нем и сам увидиш).
ReadOnly
можно устанавливать только на обьектах колонок DBGrid!!!
Если установишь его в редакторе полей - лови глюки.

Все это можно смело делать во время выполнения, без закрывания набора данных.


 
DeepProg   (2002-10-12 15:08) [3]

Вечно разжевывать надо }-|
Есть одна главная таблица и есть combobox, зачения которого определяют вид работы с БД(ну чисто математические операции).
Так вот при одном значении combobox поле А должно быть вычисляемым, а при другом - Lookup, а при трьетьем оно вообще не нужно. Когда тип поля Lookup - оно естественно должно быть нередактируемым, т.е я хочу исключить возможность юзера вписать в это поле что ему взбредет в голову, а чтобы потом не давиться ошибками типа wrong Value, нужно не допускать редактирование этого поля!!
Все это происходит в РАНТАЙМЕ - в этом-то и проблема - при попытке заткнуть вышеназванное поле возникает ошибка (см. сабж ветки)
Вот я и хочу узнать можно ли управлять, например, свойством ReadOnly DBGrid"a динамически или же нужно создавать два поля, одно из которых будет Calc, а другое - LookUp - и соответственно два поля в гриде?
Хотя по моему, все равно придется как-то временно закрывать DataSet... Может его режим менять? Все чт я пока пробовал - н работает!


 
sniknik   (2002-10-12 15:22) [4]

DisableControls "отвязывает" DataSet от DBGrid"a и по идее его свойства можно менять.


 
Anatoly Podgoretsky   (2002-10-12 15:59) [5]

DeepProg © (12.10.02 15:08)
Ненадо расзевывать, надо телепатам вопрос задавать.
Свойством ReadOnly ты можешь управлять как у DBGrid, так и у таблицы, но если операция требует закрытия набора данных, то как ты ни упирайся, а закрывать придется.


 
DeepProg   (2002-10-12 17:28) [6]

КАК ЭТО СДЕЛАТЬ????


 
DeepProg   (2002-10-12 19:13) [7]


> sniknik © (12.10.02 15:22)
> DisableControls "отвязывает" DataSet от DBGrid"a и по идее
> его свойства можно менять.

к сожалению только по идее, ошибка та же
Какие еще будут предложения?


 
sniknik   (2002-10-12 23:08) [8]

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


 
DeepProg   (2002-10-13 16:01) [9]

Ну, вот вам кусок кода - ошибка генерится в строке, для которой дан комментарий

begin
Table1A.FieldKind:=fkLookUp;
DBGrid1.Columns[3].ReadOnly:=true; // - columns[3] - соответствует поле таблицы БД
fkData, которому значение присваивается
программно, динамически – из массива.
End;


Только не советуйте сделать его Calc"ом.


 
sniknik   (2002-10-14 01:23) [10]

странный у тебя подход к делу как будто это мне надо а не тебе. и информацию выдавливаеш как одолжение делаеш.

ладно каков вопрос таков ответ.

следи внимательно абсолютно рабочий код
...
DBGrid1.Columns[1].ReadOnly:= false;
...
а также на бис
...
DBGrid1.Columns[1].ReadOnly:= true;
...
тоже работает!

p.s. ищи глюки п программе!


 
ЮЮ   (2002-10-14 04:38) [11]

>ошибка генерится в строке, для которой дан комментарий
Ошибка генерирится на предыдущей строке. Поставь на неё отладчит и убкдишься

Table1A.FieldKind:=fkLookUp; Такое не сделаешь не дизайн, не в рантайм :-) Поле или существует в таблице fkData, или создается на клиенте (fkLookUp, fcCalculated). А вот в гриде, если хочешь в столбце видеть то одно, то друго, то третье, вот в нем и определяй, какое поле DataSet хочешь видеть. Но при этом ВСЕ ТРИ ПОЛЯ в дата сет УЖЕ должны быть определены.


 
DeepProg   (2002-10-14 15:38) [12]


> ЮЮ © (14.10.02 04:38)


> DeepProg © (12.10.02 15:08)


>или же нужно создавать два поля, одно из которых будет Calc, а другое - LookUp

значит изначально я мыслил верно(ну немножечко пролетел по поводу необходимости дублей полей в гриде),
как же много времени и сил понадобилось, чтобы и я, и все остальные это поняли!

Отсюда эрго: свое ПЕРВОЕ МНЕНИЕ ВСЕГДА САМОЕ ПРАВИЛЬНОЕ!!!

Всем спасибо.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
14-11399
iZEN
2002-10-14 09:08
2002.11.04
Сервисы на D6


14-11470
Ketmar
2002-10-16 10:55
2002.11.04
чего только не найдешь на старых компактах...


3-11078
NeyroSpace
2002-10-15 13:07
2002.11.04
Как из триггера поставить DataStamp на запись?


1-11314
irmantukas
2002-10-23 20:29
2002.11.04
Как закрыть прогу?


14-11393
dogma
2002-10-14 14:17
2002.11.04
База данных или блокнот?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский