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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.028 c
3-1154528943
VadimSpb
2006-08-02 18:29
2006.10.08
Число параметров


2-1159010403
Дмитрий В
2006-09-23 15:20
2006.10.08
Как записать байт в lpt порт


2-1158521673
Aleksandr
2006-09-17 23:34
2006.10.08
форма и компоненты


15-1158126744
Ученик12
2006-09-13 09:52
2006.10.08
Ядро процессора


2-1158987058
Juju
2006-09-23 08:50
2006.10.08
Excel создал, а как убить?