0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 89
|
|
1 | |
Реализация Copy/Paste23.05.2011, 22:18. Показов 2250. Ответов 7
Метки нет (Все метки)
Добрый день!!!!!
уважаемые форумчане подскажите кто как реализует copy/paste?????? Есть грид, в нем можно выделять несколько строк. Я хочу реализовать копирование этих строк и потом вставку их, не обязательно в этот же набор данных. Посоветуйте как лучше сделать?????
0
|
23.05.2011, 22:18 | |
Ответы с готовыми решениями:
7
Copy/Cut/Paste в DbGrid Не работает процедура Copy File команда подобная команде Copy в MS-DOS Реализация через PopupMenu функций copy and paste в DrawGrid |
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,255
|
||||||
24.05.2011, 05:49 | 2 | |||||
Если вы умеете вделять строки, вы, полагаю, знаете, что коллекция указателей на выделенные строки хранится в свойстве DBGrid.SelectedRows. При этом позиционирование на выделенную i - ю выделенной строку можно выполнить так
Если вы программно исполнили позицонирование на i - ю строку грида, то перенести данные строки в другой набор (таблицу) - дело техники.
0
|
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 89
|
|
24.05.2011, 09:25 [ТС] | 3 |
Как раз вот эту технику и хочется понять, как лучше делать использовать промежуточный датасет или стандартными методами винды с какими-то маркерами... какой способ наиболее оптимальный и универсальный????
Хорошо, сейчас мне надо организовать копирование данных в таблицу с такой же структурой, а если понадобится просто скопированные данные использовать в другом месте...
0
|
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,255
|
||||||
24.05.2011, 11:18 | 4 | |||||
Если предполагать, что вы используете компонеты доступа BDE (на чем на самом деле вы работаете не известно), то я бы это делал через TQuery. В свойстве SQL прописываем вставку новой записи
Перед исполнением этого запроса параметрам задаются значения из текущей записи копируемого датасета. После исполнения датасет, в котором отображаются вставленные записи необходимо обновить (переоткрыть). Если используете другие срадства доступа к данным, то компонента будет другой, но реализация мало изменится. Влзможно придется после исполнения коммитить тразакцию, в контексте которой производилассь вставка, но это зависит от СУБД и библиотеки доступа к данным!
1
|
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 89
|
|
24.05.2011, 14:07 [ТС] | 5 |
я использую Access. Компоненты ADO-шные. Имеется ввиду что хочется в приложении это делать, не используя запросы...
Есть два грида мастер/детеил, так вот я хочу встав на мастер скопировать из детейла данные, на мастере выбрать другую запись и в ее детаил загнать скопированные данные... т.е. как бы работать на клиенте а уж привязанные датасеты к гридам сами на сервер зашлют... Вот такая идея, можно ее как то реализовать???? Добавлено через 1 час 34 минуты к тому же не исключается возможность, скопировать данные и в этот же детеил и вставить потом изменив какие-нибудь данные
0
|
1496 / 1238 / 244
Регистрация: 04.04.2011
Сообщений: 4,362
|
||||||
24.05.2011, 15:41 | 6 | |||||
Ту же тенологию, что описал SAMZ, можно повторить без "великих и ужасных" запросов, используя для целевой таблицы TADOTable. Тогда вместо запроса у Вас будет примерно такой код:
1
|
0 / 0 / 0
Регистрация: 19.05.2011
Сообщений: 89
|
|
24.05.2011, 17:53 [ТС] | 7 |
Дело не в боязни запросов...
Просто во-первых когда идет копирование не известно еще куда будут вставляться данные (в детеил нового мастера или того же) Во-вторых при использовании запросов невозможны откаты, а если пользователь передумал вставлять то что вставил, например...
0
|
1496 / 1238 / 244
Регистрация: 04.04.2011
Сообщений: 4,362
|
|
24.05.2011, 17:55 | 8 |
>Во-вторых при использовании запросов невозможны откаты, а если пользователь передумал >вставлять то что вставил, например...
Вы будете удивлены, но первое сделать много проще, чем второе
0
|
24.05.2011, 17:55 | |
24.05.2011, 17:55 | |
Помогаю со студенческими работами здесь
8
Copy/Paste Copy >> Paste Не работает Copy\paste Copy-Paste VIM Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |