Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.30;
Скачать: CL | DM;

Вниз

Вывод каждой ячейки БД в соответствующие компоненты на форме   Найти похожие ветки 

 
Strori   (2004-05-02 15:42) [0]

Здравствуйте. Есть таблица БД из нескольких столбцов. Как сделать, чтобы при выборе пользователем строки в таблице, данные в ячейках этой таблицы выводились в поля редактирования на форме? Т.е. есть столбцы "Имя", "Фамилия" и "Дата". Нужно, чтобы значение ячейки "Имя" выводилось в Edit1, ячейки "Фамилия" в Edit2 и т.д. Строка выбирается пользователем. Компонента DBGrid нет, т.к. визуализация базы не требуется.


 
Anatoly Podgoretsky ©   (2004-05-02 15:53) [1]

Первое отказаться от TEdit в пользу TDbEdit, тогда автоматически или же при изменении позиции преобразовывать данные и копировать их в TEdit


 
Strori   (2004-05-02 16:06) [2]

А с TDbEdit как? Можно код хотя бы для одного TDbEdit?


 
dilp   (2004-05-02 17:26) [3]

у TDbEdit есть свойства типа DataSource, DataField. Настраиваешь на свой источник.
При навигации по строкам таблицы TDbEdit будет автоматически отображать содержание поля DataField. Также можно менять содеражание данного поля через этот компонент.


 
Vemer ©   (2004-05-02 17:52) [4]

Второе - откажись от DBEdit в пользу Edit, если ты что-то серьезнее лабы или курсовой пишешь:
- Копируй в нужные поля в соотв. Edit в событии OnScroll датасета.
- Использование DBEdit постоянно переключает Insert/Edit/Browse режим датасета - создает проблемы с транзакциями и т.п.
- В DBEdit не сделать нормальный контроль ввода, например если набрать в числовом поле 2-2 - сразу поймаешь исключение, а с Edit можно написать или "проверку орфографии" или обработчик исключения нормальный.
- числовые значения замечательно вносяться в Edit через Field.Text/DisplayText на выбор.


 
Petr V. Abramov ©   (2004-05-02 18:51) [5]

А потом опять забей на TEdit и используй TDBEdit. Потому как TDBEdit = class(TCustomMaskEdit), из чего следует, что все, что можно сделать с TEdit, можно сделать и с TDBEdit, только мучаться с OnScroll DataSet`а и Field.Text/DisplayText и т. п. TDBEdit будет сам.
 А переключение Insert/Edit/Browse датасета проблем с транзакциями не создает, если только не создать их самостоятельно.


 
Vemer ©   (2004-05-03 00:31) [6]

To Petr V. Abramov:
- хотел бы я посмотреть, как будет выглятеть многопользователка, в которой пишущие транзакции должны быть короткими как выстрел на основе DBEdit :).
- попробуй(те) присобачить к DBEdit обработчик onExit с "проверкой орфографии", чтоб исключение не ловилось :).
- DBEdit иногда глючит на скролле.


 
Petr V. Abramov ©   (2004-05-03 03:24) [7]

> onExit с "проверкой орфографии", чтоб исключение не ловилось :).
 "Не ловилось" - это чтоб сразу перезагрузка? :)
 Если Вы имел(и:) в виду, чтоб фокус оставался на Edit с неправильным словом -
procedure TfmPostCatDialog.DetailStringEditFrameDBEdit1Exit(
 Sender: TObject);
begin
 inherited;
 ActiveControl := TWinControl(Sender);
 raise Exception.Create("Слова ж... в русском языке нет :)");
end;

Решение, не спорю, <ложкой> по лбу, но рабочее. И гораздо более простое, чем саморучная синхронизация с DataSet`ом.

> DBEdit иногда глючит на скролле.
 Боюсь, у Вас DBEdit какой-то особый (:
> - хотел бы я посмотреть, как будет выглятеть многопользователка, в которой пишущие транзакции должны быть короткими как выстрел на основе DBEdit :).
 Не думаю, что Custom(Ваши) манипуляции с DataSet будут быстрее родных.


 
Strori   (2004-05-03 04:46) [8]

Ребята... не хочу надоедать, но можно код отображения ячейки в оба компонента, раз уж так разговор зашел. :) В Edit и DBEdit. И еще - навигация по бд (выбор новой строки) осуществляется через ListBox. Человек кликает на индексе в списке - отображается соответствующая строка. Список фомируется на FormActivate из первого и второго столбца БД.


 
Кщд   (2004-05-03 10:33) [9]

если не хотите надоедать, посмотрите в директорию Demos Вашей Delphi.



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

Текущий архив: 2004.05.30;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.037 c
1-1084821008
Yong
2004-05-17 23:10
2004.05.30
net send программно?


14-1083950949
kaif
2004-05-07 21:29
2004.05.30
Посмотрел инаугурацию...


3-1083914596
Nikolay M.
2004-05-07 11:23
2004.05.30
OLE DB-провайдер для Sybase ASE - ?


14-1084284336
Gero
2004-05-11 18:05
2004.05.30
Меню


3-1084174470
Satyros
2004-05-10 11:34
2004.05.30
Проблема с подключением к DB2





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский