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




Вниз

Дополнительное редактируемое поле в ADODataSet 


Jony   (2002-02-14 13:21) [0]

Как в ADODataSet вставить дополнительное поле, которое можно было бы редакьтровать (допустим, DBEdit)?



Fedorenko Igor   (2002-02-14 13:24) [1]

СМ ADODataSet1.FieldDefs ....



Jony   (2002-02-14 13:48) [2]

Насколько я понимаю, FieldDefs используется для динамического создания таблиц (определения в них полей) в БД. У меня несколько другой интерес. Мне нужно в DisignTime создать в ADODataSet поле, которого нет в таблице БД (в нем нет смысла), но оно мне нужно в программе для выполнения промежуточных расчетов с возможностью редактировать его в гриде или едите.Вычисляемые и, тем более , лукапные поля редактировать нельзя.



Johnmen   (2002-02-14 13:52) [3]

(не совсем правильно понимаешь);
см. выше ADODataSet1.FieldDefs , а также ADODataSet1.Fields.Add(...)(не совсем правильно понимаешь)



Fedorenko Igor   (2002-02-14 13:57) [4]

Что мешает добавить в запрос дополнительное поле?



Jony   (2002-02-14 15:21) [5]

Может кто-нибудь объяснит темному что и как делать.
Пытаюсь сделать поле через FieldDefs но после попытки открыть набор или добавить его в редактор полей набора через Add оно исчезает из редактора FieldDefs. А если я его создаю через редактор полей набора (NewField) как тип Data, то либо при попытке закрыть форму создания поля либо при открытии набора ругается, что такого поля в наборе нет.
Повторяю, мне нужно создать поле а наборе, а не в таблице БД.



Johnmen   (2002-02-14 16:22) [6]

Если хочешь добавить поле Data, то за ним должно скрываться реальное поле Table"а или Query, иначе можешь добавить лишь Calculate или Lookup.
Поэтому проще всего >Fedorenko Igor (14.02.02 13:57)



Jony   (2002-02-14 16:29) [7]

А можно конкретно. Я уже описал, что я делал. Как надо или что не так?



Fedorenko Igor   (2002-02-14 17:01) [8]

Я имел в виду следующую конструкцию:
(например для MS SQL7)
SELECT id, valcode, MyEditField=0 FROM Valuta
Результат:
id valcode MyEditField
----------- ------- -----------
1 SUR 0
2 USD 0
3 EUR 0
4 YE 0
5 NULL 0
6 NLG 0
Вот этот EditField можешь править как тебе удобно.
Т.е. тебе ничто не мешает создавать в получаемых наборах данных
любые поля с любыми типами данных.



Johnmen   (2002-02-14 17:02) [9]

Конкретно : SELECT ...,0 AS myfield FROM ...
В НД будет поле myfield типа int...
Но вряд ли оно будет редактируемым !

Общий ответ на ...Как в ADODataSet вставить дополнительное поле, которое можно было бы редакьтровать (допустим, DBEdit)? ... - никак...




kig   (2002-02-14 17:34) [10]

Попробуйте (с учетом ответов выше) следующее:

Считать клиентским курсором.
Отсоединить набор данных от БД (сбросить коннект в ADODataset в nil)

Возможно в этом случае поле "0 AS myfield" можно будет редактировать.



Анонимщик   (2002-02-14 20:05) [11]

А FieldDefs у ADO разве не ReadOnly? Я тоже как-то пытался, решил, что без извращений не получится.




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




Наверх





Память: 0.73 MB
Время: 0.027 c
1-43118           vitnt2000             2002-02-28 13:02  2002.03.14  
Как из функции вернуть масив?


1-43104           greenrul              2002-02-27 18:44  2002.03.14  
Как обработать событие закрытия программы?


3-42917           weak                  2002-02-13 10:19  2002.03.14  
Помогите. Надо, чтобы при открытии формы данные одного столбца (limit) копировались со вчерашнего дня. Это наверно просто, но что то не могу понять как.


3-42935           sniknik               2002-02-14 11:36  2002.03.14  
Связь между базами. dbf(dBase) к (mdb) Access


1-43051           DJ X                  2002-02-26 05:02  2002.03.14  
Cобытие активации деактивации