Форум: "Начинающим";
Текущий архив: 2008.11.23;
Скачать: [xml.tar.bz2];
Внизкопирование определенного набора данных из dbgrid в clipboard Найти похожие ветки
← →
kate158 (2008-10-15 17:00) [0]Здравствуйте,мастера!Помогите разобраться с простой вещью.Нужно скопировать определенный столбец из таблицы в БД,допутим 6.Есть код:
procedure TForm1.Button3Click(Sender: TObject);
var i: integer;
begin
dbgrid3.DataSource.DataSet.First;
while not dbgrid3.DataSource.DataSet.EOF do
begin
for i := 0 to (dbgrid3.DataSource.Dataset.FieldCount - 1) do
Clipboard.AsText:=(dbgrid3.DataSource.Dataset.Fields[5].AsString);
dbgrid3.DataSource.DataSet.Next;
end;
end;
в буфер копируется только последняя запись,а нужен весь столбец полностью.как изменить код?
← →
Palladin © (2008-10-15 17:03) [1]этому нужно долго учится... думать
← →
Palladin © (2008-10-15 17:04) [2]вот опишешь словами, что же у тебя в коде происходит, может быть и натолкну на верную мысль
← →
Сергей М. © (2008-10-15 17:06) [3]
> как изменить код?
Заведи StringList, в каждой итерации цикла добавляй в него очер.строку.
По выходу из цикла пиши StringList.Text в клипборд.
Только причем здесь DBGrid - непонятно..
← →
kate158 (2008-10-15 17:14) [4]
> Palladin © (15.10.08 17:04) [2]
> вот опишешь словами, что же у тебя в коде происходит, может
> быть и натолкну на верную мысль
пишу обработчик нажатия на кнопку "добавить в буфер".
объявляю переменную i целого типа в разделе var.перехожу на первую запись в дбгриде.пока не наступит конец дбгрида добавляю в буфер записи начиная с первой по последнюю.
> Сергей М. © (15.10.08 17:06) [3]
данные,которые нужно записать в буфер находятся в дбгриде.
← →
Сергей М. © (2008-10-15 17:19) [5]
> kate158 (15.10.08 17:14) [4]
> данные,которые нужно записать в буфер находятся в дбгриде
Нет там никаких данных.
Данные - в дейтасете, а не в гриде.
С тем же успехом на месте грида вправе оказаться любой другой контрол, у которого есть св-во DataSource, через которое контрол получает для втизуализации данные из дейтасета.
← →
Anatoly Podgoretsky © (2008-10-15 17:25) [6]> kate158 (15.10.2008 17:14:04) [4]
Больше одной записи, это когда S := S + N, а не S := N
← →
kate158 (2008-10-15 17:26) [7]сорри.да,я знаю что данные в датасете.имею в виду dbgrid3.DataSource.DataSet.ну да ладно)
← →
Германн © (2008-10-15 17:30) [8]
> перехожу на первую запись в дбгриде.пока не наступит конец
> дбгрида
Класс! Прям Пестня :)
← →
Jeer © (2008-10-15 18:08) [9]
> Класс! Прям Пестня :)
>
Главное - под конец рабочего дня - настроение повысилось, однако :)
← →
kate158 (2008-10-15 18:09) [10]
> Anatoly Podgoretsky © (15.10.08 17:25) [6]
добавляю еще строку кода.procedure TForm1.Button3Click(Sender: TObject);
var i: integer;
begin
dbgrid3.DataSource.DataSet.First;
while not dbgrid3.DataSource.DataSet.EOF do
begin
for i := 0 to (dbgrid3.DataSource.Dataset.FieldCount - 1) do
Clipboard.AsText:=(dbgrid3.DataSource.Dataset.Fields[5].AsString);
dbgrid3.DataSource.DataSet.Next;
end;
Clipboard.AsText:=(dbgrid3.DataSource.Dataset.Fields[i].AsString);
end;
← →
kate158 (2008-10-15 18:10) [11]
> Jeer © (15.10.08 18:08) [9]
> Германн © (15.10.08 17:30) [8]
мне тоже нравится
← →
Плохиш © (2008-10-15 18:10) [12]
> kate158 (15.10.08 17:14) [4]
> объявляю переменную i целого типа в разделе var.перехожу
> на первую запись в дбгриде.пока не наступит конец дбгрида
> добавляю в буфер записи начиная с первой по последнюю.
Можете подтвердить выделенное куском своего кода?
← →
Плохиш © (2008-10-15 18:11) [13]
> kate158 (15.10.08 18:09) [10]
>
> > Anatoly Podgoretsky © (15.10.08 17:25) [6]
>
> добавляю еще строку кода.
Я разрыдался....
← →
kate158 (2008-10-15 18:24) [14]мастера,я не знаю чем Вы мне помогаете,но,в беседе с Вами,каким то образом получается рабочий код.)))
вот он:procedure TForm1.ButtonClick(Sender: TObject);
var а: string;
begin
dbgrid3.DataSource.DataSet.First;
while not dbgrid3.DataSource.DataSet.EOF do
begin
а:=а+(dbgrid3.DataSource.Dataset.Fields[5].AsString);
dbgrid3.DataSource.DataSet.Next;
end;
Clipboard.AsText:=а;
end;
спасибо
← →
Плохиш © (2008-10-15 18:41) [15]
> kate158 (15.10.08 18:24) [14]
> мастера,я не знаю чем Вы мне помогаете,но,в беседе с Вами,
> каким то образом получается рабочий код
Поздравляю :-)
PS. А что значения-то сплошной кучей пишуться, может разделитель-какой вставить?
← →
Anatoly Podgoretsky © (2008-10-15 19:00) [16]> kate158 (15.10.2008 18:09:10) [10]
Ты Катя не так начинаешь, начинать надо со ссылки на фотографию.
А касательно кода, ничего не изменилось, ты точно также в цикле заменяешь одно значение другим.
Я же привел формулу. S := S + N
И S это действительно S(tring), а N это твои данные, которые ты аккумулируешь в ней.
А Clipboard.AsText := S;
Делаешь по окончанию цикла while
Разделители данных твое дело, вопрос согласования с получателем этих данных.
← →
Anatoly Podgoretsky © (2008-10-15 19:00) [17]> Плохиш (15.10.2008 18:11:13) [13]
Тебе обидно, а мне приятно :-)
← →
Anatoly Podgoretsky © (2008-10-15 19:25) [18]> kate158 (15.10.2008 18:24:14) [14]
Ну пока еще не рабочий, но уже близко.
Ты что мимо ушей пропустила слова про разделители?
Кому нужна эта колбаса?
← →
Сергей М. © (2008-10-15 19:35) [19]
> kate158 (15.10.08 18:24) [14]
Что за ослиное упрямство ?
Ты про стринглист почему пропустила мимо ушей ?
Он и разделителями управляет автоматически)
← →
Anatoly Podgoretsky © (2008-10-15 19:40) [20]> Сергей М. (15.10.2008 19:35:19) [19]
И про фотку вопрос мимо ушей пропустила.
← →
Сергей М. © (2008-10-15 19:45) [21]
> Anatoly Podgoretsky © (15.10.08 19:40) [20]
Ты думаешь, мы могли бы там что-то выдающееся узреть ?
← →
Anatoly Podgoretsky © (2008-10-15 19:51) [22]> Сергей М. (15.10.2008 19:45:21) [21]
Я стараюсь верить в хорошее.
Однажды Бритни Спирс узрел.
← →
Сергей М. © (2008-10-15 19:57) [23]
> Anatoly Podgoretsky © (15.10.08 19:51) [22]
> Однажды Бритни Спирс узрел.
Типа ты ей про формулу S + N втёр, а она тебе фотку в благодарность ?)
← →
Сергей М. © (2008-10-15 20:08) [24]
> Anatoly Podgoretsky © (15.10.08 19:51) [22]
Упс !
С Катюшей ю дыд ит эген ?)
← →
Anatoly Podgoretsky © (2008-10-15 20:47) [25]> Сергей М. (15.10.2008 19:57:23) [23]
Ну примерно так и было :-)
← →
kate158 (2008-10-16 09:34) [26]
> Плохиш © (15.10.08 18:41) [15]
> Anatoly Podgoretsky © (15.10.08 19:25) [18]
+"_"
> Anatoly Podgoretsky © (15.10.08 19:00) [16]
я предпочитаю не светиться.)
> Сергей М. © (15.10.08 19:35) [19]
можно и стринглист,aStrList.Add(s);
Казалось,что сессия уже давно закрыта.)
← →
Плохиш © (2008-10-16 12:05) [27]
> можно и стринглист,aStrList.Add(s);
И что это заs
такой?
← →
kate158 © (2008-10-16 12:12) [28]эмм..что-то типа этого
aStrList.Add(aDataset.Fields[5].AsString + "|" );
← →
Сергей М. © (2008-10-16 12:13) [29]
> kate158 © (16.10.08 12:12) [28]
А палка-то зачем на конце ?)
← →
kate158 © (2008-10-16 12:14) [30]
> Сергей М. © (16.10.08 12:13) [29]
для красоты :D
← →
Сергей М. © (2008-10-16 12:17) [31]А, ну да ..
Я сообразил - смайлик это, чтоб юзеру веселей было)
← →
stas © (2008-10-16 12:22) [32]
> kate158 © (16.10.08 12:14) [30]
тогда так :-D
aStrList.Add("|***"+aDataset.Fields[5].AsString + "***|" );
← →
Anatoly Podgoretsky © (2008-10-16 12:30) [33]> Сергей М. (16.10.2008 12:13:29) [29]
А как узнать конец или нет?
Но я против палки вообще, принято или запятая или табуляция, но все зависит от задачи.
← →
Сергей М. © (2008-10-16 12:35) [34]
> Anatoly Podgoretsky © (16.10.08 12:30) [33]
> как узнать конец или нет?
Дык а стринглист-то почему начал фигурировать ?
Как раз потому что при его использовании о конце и его прощупывании заботиться не надо)
Хотя я тоже за CSV- или TSV-формат - под него заточены все более-менее приличные приложения, позволяющие импорт текста из клипборда
← →
Anatoly Podgoretsky © (2008-10-16 13:16) [35]> Сергей М. (16.10.2008 12:35:34) [34]
Ну с стринглист и разделитель не нужен, но что нам известно о реальной задаче?
← →
Сергей М. © (2008-10-16 13:31) [36]
> Anatoly Podgoretsky © (16.10.08 13:16) [35]
> что нам известно о реальной задаче?
Да собственно ничего..
Только "как скопировать"
← →
Плохиш © (2008-10-16 13:55) [37]
> Anatoly Podgoretsky © (16.10.08 12:30) [33]
> > Сергей М. (16.10.2008 12:13:29) [29]
>
> А как узнать конец или нет?
> Но я против палки вообще
Прям фрейдизм какой-то :-))))
← →
Anatoly Podgoretsky © (2008-10-16 14:07) [38]> Сергей М. (16.10.2008 13:31:36) [36]
Ну и немного кода, например без разделителей значений
← →
Anatoly Podgoretsky © (2008-10-16 14:10) [39]> Плохиш (16.10.2008 13:55:37) [37]
Ну подумаешь НЕ пропустил
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.11.23;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.007 c