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

Вниз

Как реализовать табличную часть?   Найти похожие ветки 

 
APXi   (2006-08-04 14:16) [0]

Предложите варианты реализации табличной части, что бы пользователь мог редактировать данные на форме, а потом с помощью кнопки "Записать" записывались данные в базу, либо спомощью кнопки "Отмена" форма закрывалась без изменений.
Пробовал с помощью ClientDataSet на насколько я помню при переносе программы, он будет требовать библиотеку (ole), правда непомню какую.
Как делали Вы?


 
Dok   (2006-08-04 14:18) [1]

TDataset.Post() + F1
TDataset.Cancel() + F1


 
Johnmen ©   (2006-08-04 14:27) [2]

Чего предлагать то? Всё уже давно предложено в букварях и учебниках!


 
Sergey13 ©   (2006-08-04 14:32) [3]

> [0] APXi   (04.08.06 14:16)

Еще один аспект. Чем дольше юзер работает не фиксируя изменений, тем больше верятность конфликтных ситуаций в БД.


 
sniknik ©   (2006-08-04 14:43) [4]

> он будет требовать библиотеку (ole), правда непомню какую.
midas.dll (можно подключить модуль midaslib и требовать не будет, будет включон в программу)

> Как делали Вы?
использую ADO (ADODataSet).


 
APXi   (2006-08-04 15:14) [5]

> Dok
>TDataset.Post() + F1
>TDataset.Cancel() + F1
Мне надо не отдельную запись отменить а всю табличную часть дока.

>Johnmen
> Всё уже давно предложено в букварях и учебниках!
Дай ссылочку если не трудно.

>sniknik
>использую ADO (ADODataSet)
я тоже его использую.


 
Stanislav ©   (2006-08-04 15:16) [6]

LockType:=ctBathOptimistic


 
Sergey13 ©   (2006-08-04 15:19) [7]

> [5] APXi   (04.08.06 15:14)

Есть много (в том числе и халявных) компонент а-ля "таблица в памяти". Пиши в нее в гриде как в промежуточную и переноси по кнопке.


 
APXi   (2006-08-04 15:27) [8]

>[7]
Тока такой выход и вижу, проще использовать стринг грид, и самому заполнять, во многих компонентах много косяков.


 
Stanislav ©   (2006-08-04 15:30) [9]

А чем не устраевает
Stanislav ©   (04.08.06 15:16) [6]  ?


 
Desdechado ©   (2006-08-04 15:34) [10]

> Мне надо не отдельную запись отменить а всю табличную часть дока.
Это транзакцией называется.


 
Sergey13 ©   (2006-08-04 15:36) [11]

> [8] APXi   (04.08.06 15:27)
> Тока такой выход и вижу, проще использовать стринг грид,
> и самому заполнять, во многих компонентах много косяков.

Если есть уверенность что у тебя косяков будет меньше, тогда оно конечно.


 
sniknik ©   (2006-08-04 15:45) [12]

Stanislav ©   (04.08.06 15:30) [9]
> А чем не устраевает
> Stanislav ©   (04.08.06 15:16) [6]  ?
ну какже, это же надо учить чегото стандартное... лучше поискать чтото непонятное (таблици в памяти e.t.s.). ;о))

ну не любят у нас учится, все пытаются найти какойто "чудо" компонент на все случаи жизни (даже если он из тогоже стандартного унаследован с изменением единственного свойства).
:-(


 
Johnmen ©   (2006-08-04 15:49) [13]


> sniknik ©   (04.08.06 15:45) [12]


Точно-точно! Это как вера в доброго царя-батюшку. Он прикажет и всем будет полный рулез на веки-вечные...:)
А чтобы самому какие-никакие телодвижения сделать - увольте, лень типа. Поищем царя...


 
ANB ©   (2006-08-04 15:54) [14]


> Мне надо не отдельную запись отменить а всю табличную часть
> дока.

Зачем ? Пользователю будет неудобно.


 
Stanislav ©   (2006-08-04 16:06) [15]

sniknik ©   (04.08.06 15:45) [12]

Ага, апотом будет: "А как все быстро переписать из StringGrid в БД"
и так далее...


 
APXi   (2006-08-04 16:08) [16]

> [10]
и что транзакция бедет висеть пока пользователь открыл док и пошел чай пить?

> [11]
я уверен, что я смогу разобраться как сделать лучше


 
Desdechado ©   (2006-08-04 16:13) [17]

> и что транзакция бедет висеть пока пользователь открыл док
> и пошел чай пить?
Это смотря как сделаешь. Если транзакция блокирующая, то да.
Если же по принципу "кто последний, тот и папа", то транзакцию можно сделать короткую, только на время записи окончательных результатов. А все раздумья на предмет "и вот эту строчку добавим - ой нет не туда - уберем - добавим сюда - а эту подправил" происходят в локальном буфере, а результаты по кнопке "сохранить" сбрасываются в одной транзакции на сервер или откатываются по кнопке "я передумал".


 
sniknik ©   (2006-08-04 16:16) [18]

>> [10]
> и что транзакция бедет висеть пока пользователь открыл док и пошел чай пить?
если сделаеш транзакцией то да, будет висет и другим работать мешать (тебе в основном гемор...).
но вообщето думал речь шла о кешированных изменениях.

>> [11]
> я уверен, что я смогу разобраться как сделать лучше
со "стринг грид" за основу???? не получится.
а "косяки" о которых упоминал (большая часть, гдето так процентов 99.8 к 0,2 ), это твои "косяки"...


 
Jeer ©   (2006-08-04 16:26) [19]

APXi   (04.08.06 14:16)

Отдели edit от DBAware и будет тебе полное счастье.


 
APXi   (2006-08-05 10:12) [20]

[17]
порекомендуй в чем кешировать изменения эти записи?

[18]
я тоже про кеширование говорю, просто некоторые (см. выше) про транзакции говорят.
Как делаете вы?


 
sniknik ©   (2006-08-05 12:40) [21]

> Как делаете вы?
??? сообщаю, за день (c [4]) ничего не изменилось... я по прежнему использую ADODataSet...


 
Desdechado ©   (2006-08-07 11:29) [22]

Кэширование реализовано (AFAIK) во всех неоднонаправленных датасетах. Его не нужно придумывать самому. И за счет кэшированных изменений можно реализовать короткие транзакции, которые сбрасывают изменения из кэша на сервер.
Читать справку Cached Updates, TUpdateSQL, ApplyUpdates



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

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

Наверх





Память: 0.5 MB
Время: 0.055 c
3-1154497168
Alex35
2006-08-02 09:39
2006.10.08
Пример работы с DTS на Delphi


3-1155189999
Stanislav
2006-08-10 10:06
2006.10.08
Размер содержимого Blob поля


10-1124092462
DimMih
2005-08-15 11:54
2006.10.08
Вставка изображения в AutoCad


3-1155037455
rsa_
2006-08-08 15:44
2006.10.08
проблема unicode в delphi>6 уже решена?


1-1156424740
Orxan
2006-08-24 17:05
2006.10.08
Unicod ы не идут в Word





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