Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];

Вниз

Ячейки в DBGrid   Найти похожие ветки 

 
Mike_   (2001-12-19 16:55) [0]

Подкажите, как поименно обратиться к ячейкам в DBGrid? Не нашел ни свойств Col,Row, RowCount, а Fields[].AsString действует только на выделенный мышью строку...


 
DmitryA   (2001-12-19 17:01) [1]

Row - это текущая запись (курсор)
Col - TCustomDBGrid.Columns.Items[x]


 
Mike_   (2001-12-19 17:18) [2]

Спасибо. Но по горизонтали более-менее ясно DBGrid1.FieldCount - 1, а максимальное кол-во строк в таблице? И как достать элемент - ну типа s := Cell[i,j]; э?


 
AlexSV   (2001-12-19 17:50) [3]

В DBGrid эти свойства не публикуемые.
Если есть необходимость, то их можно достать, только для каких целей, если не секрет. Потому что в зависимости от задачи, и реализация будет разной.


 
Mike_   (2001-12-19 18:00) [4]

Конечно не секрет, а военная тайна ;-))) Из удаленной базы данных SQL-запросом извлекается некая инфа, которая по цепи ADOConnection-ADOQuery-DataSet попадают в DBGrid для того чтобы их помотреть - если надо - и сохранить в файл на локальном диске для другого приложения. Вот, примерно так...


 
SergVlad   (2001-12-19 18:14) [5]

Вообще-то из DataSet сохранение делать гораздо сподручнее


 
AlexSV   (2001-12-19 18:43) [6]

Вот примерно так:
объявим здесь -
implementation
type
THackGrid = class(TDBGrid)
public
property Col;
property Row;
property DataLink; // Хотя у меня работает и без этого
end;

и далее по тексту:

procedure TForm1.BitBtn1Click(Sender: TObject);
var
hg: THackGrid;
ar, rc, r, c: integer;
begin
hg := THackGrid(DBGrid1);
r := hg.Row;
c := hg.Col;
ar := hg.DataLink.ActiveRecord;
rc := hg.DataLink.RecordCount;
end;

Небольшие пояснения:
hg.Row - текущая строка видимой области (если Grid в середине то Row = 1 это не первая строка набора данных)
hg.Col - текущая солонка видимой области.
(не помню, но кажется фиксированые могут не входить).

Рекомендую для обхода DataSeta при не визуальном просмотре набора данных (не дергается Selection в DBGrid), но для синхронизации необходимо ActiveRecord восстановить.

hg.DataLink.RecordCount;
hg.DataLink.ActiveRecord;

А не проще-ли просто пробежаться по набору без Grid-а?

Если будут вопросы, то ответы завтра.
Пока.


 
SergVlad   (2001-12-20 02:20) [7]

<А не проще-ли просто пробежаться по набору без Grid-а?>

О чем и речь.



 
Mike_   (2001-12-20 11:43) [8]

Большое спасибо всем, кто ответил (а ведь мог бы и послать...на WWW ;-) )
Обошелся конструкцией типа
for j:=1 to DBGrid1.DataSource.DataSet.RecordCount do
begin
DBGrid1.DataSource.DataSet.RecNo:=j;
for i := 0 to DBGrid1.DataSource.DataSet.FieldCount - 1 do
begin
Info := DBGrid1.DataSource.DataSet.Fields[i].AsString;
Топик, как я полагаю, закрыт...
ЗЫ А без грида - ну никак не можна... технические условия, млин...




Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.018 c
1-75603
Leviathan
2001-12-29 02:07
2002.01.24
Активация программы


3-75523
cpu
2001-12-18 23:25
2002.01.24
Password for Oracle-7


1-75574
hacker
2002-01-01 21:40
2002.01.24
Проблема с передачей параметрой из DLL


7-75698
VS
2001-10-08 13:23
2002.01.24
Конвентирование String в PChar


4-75719
ZEE
2001-09-16 03:33
2002.01.24
Вставка/замена в TEdit





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