Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.03.2008, 11:32
Bober Bober вне форума
Прохожий
 
Регистрация: 18.03.2008
Сообщения: 6
Репутация: 10
По умолчанию DbGrid как обратиться к конкретной ячейке

Вопрос!DbGrid как обратиться к конкретной ячейке??Бд создал в Access связал через BDE
Ответить с цитированием
  #2  
Старый 24.03.2008, 21:09
Аватар для MegaPiha
MegaPiha MegaPiha вне форума
Активный
 
Регистрация: 24.03.2008
Адрес: Сыктывкар
Сообщения: 227
Репутация: 30
По умолчанию

Обращайся через набор данных.
НАпример.
Table.FieldByName('name').AsString - значение поля name в текущей записи (например на которой стоит курсор). Для перехода на нужную запись используй например Table.RecNo - номер строки или используй функцию locate и ищи по конкретным условиям.
Ответить с цитированием
  #3  
Старый 25.03.2008, 09:08
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Код:
Table.RecNo:=<номер нужной строки>;
Table.Fields[<номер нужного поля>].Value;
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #4  
Старый 03.06.2010, 20:37
chornu chornu вне форума
Прохожий
 
Регистрация: 03.06.2010
Сообщения: 2
Репутация: 10
По умолчанию

а если нет ни тейблов ни sql компонент? у меня даные експортируютса (если можна так сказать) с .xml (используя XML Mapper) и заливаютса в грид. я использую на форме DataSource1, ClientDataSet1, XMLTransform1, DBGrid2. после обработки в XML Mapper пишу вот такой код на онклик Button:
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
XMLTransform1.SourceXMLFile :='.\xml.xml'; \\ исходный .xml-файл
XMLTransform1.TransformationFile :='.\xmlToDp.xtr'; \\ переработаний c XML Mapper
ClientDataSet1.XMLData := XMLTransform1.Data; 
ClientDataSet1.Active:=true;
end;
в итоге имею в гриде 6 столбцов, а количество строк может ихзменитса в соответствии от .xml-файла.

мне нужно тепер для всех строк (количество которых зарание не извесно, но можно посчитать в гриде, естесвенно, после вышеописоного кода), что у меня есть, cделать инсерт в БД (которая на MySQL). вот первий грид у меня уже на компоненте SQL и соответствено со своим DataSource.

Вопщем, я понимаю что нада цикл через for, исерт я делать умею... мне нужно циклом перебрать все строки в гриде2 (который експортнут з .xml) и значения каждого столбца вставить в определёные поля определьонной таблицы....

если кто-то меня понял)))))))) напишите пожалуста прогр.код на етот цыкл

---------------------------------------------------------------------------------------------------

вопрсос изменилса - нужен цыкл чтоб перебрат все строки с первой по последнюю, но бес квери и тейблов))

Последний раз редактировалось chornu, 03.06.2010 в 21:59.
Ответить с цитированием
  #5  
Старый 04.06.2010, 09:10
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Цикл не по гриду а по DataSet надо делать на который ссылается грид.
Как пример:

Код:
if mt1.IsEmpty=false then begin
  mt1.First;
  repeat
    F_preview.mt1.edit;
    F_preview.MT1.AppendRecord(
                        [MT1ID_component.AsInteger,MT1ID_parent.AsInteger,
                         MT1ParentClass.AsString,MT1ParentObject.AsString,
                         MT1ParentName.AsString,MT1ComponentClass.AsString,
                         MT1ComponentName.AsString,MT1ComponentTop.AsInteger,
MT1ComponentLeft.AsInteger,MT1ComponentWidth.AsInteger,
MT1ComponentHeigth.AsInteger,MT1ComponentText.AsString,MT1ComponentCheck.AsBoolean,
MT1ComponentChecked.AsBoolean,MT1Spr_Id.AsInteger,MT1Spr_Field.AsString,
MT1typeObject.AsInteger]);
    mt1.Next;
  until mt1.Eof;
end;
Ответить с цитированием
  #6  
Старый 13.06.2010, 04:57
chornu chornu вне форума
Прохожий
 
Регистрация: 03.06.2010
Сообщения: 2
Репутация: 10
Смущение )

ех, ничево в коде нипонял а можна как-то попроще написать код? например где грид ето DbGrid1 а датасет - ето DataSet1. количество строк зарание не извесно. есть, например, 3 столбца (а, х, с) и вот третий столбец (с) нада просумировать и, например, в едит закинуть результат.
Ответить с цитированием
  #7  
Старый 14.06.2010, 09:37
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

что-то такое:
Код:
while not dbgrid1.dataset.eof do
begin
s:=dbgrid1.dataset.fieldbyname('name').asstring;
showmessage(s);
dbgrid1.dataset.next;
end;
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:04.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2019

ВКонтакте   Facebook   Twitter