Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
4-1200667008
=BuckLr=
2008-01-18 17:36
2008.11.23
WM_INPUTLANGCHANGEREQUEST приходит ДВАЖДЫ!!!


2-1224071434
_ozzy_
2008-10-15 15:50
2008.11.23
Помогите очистить форму от FastReport


2-1223818412
Yura
2008-10-12 17:33
2008.11.23
Где найти описание - DBGridEh? (или статью с примерами)


2-1223617781
F@T@L_Err0r
2008-10-10 09:49
2008.11.23
Запуск приложения


3-1210056416
andreoman
2008-05-06 10:46
2008.11.23
cxGridDBTableView+IBQuery+IBUpdateSQLW, проверка столбца





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