Работа с DBGrid
Модератор: Модераторы
Работа с DBGrid
Подскажите, пожалуйста как перенести выделенную строку в DBGrid в StringGrid
Работаю под Debian
Работаю под Debian
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
В связи с тем, что телепаты в отпуске, нужны пояснения. Какай БД используется? какие компоненты для доступа к БД используются?
приношу свои извинения, работаю с MySQL, использую SQLQuery, MySQL50Connection1, SQLTransaction1, Datasource1.
Но появилось в голове и другое решение вышеописанной проблемы, можно ли узнать какая ячейка выделена, и по номеру строки взять, допустим первую ячейку (там примари кей) и просто выполнить запрос с параметром AsString
Здесь неясен только момент нахождения значения в нужной ячейке, его же надо прочитать
Но появилось в голове и другое решение вышеописанной проблемы, можно ли узнать какая ячейка выделена, и по номеру строки взять, допустим первую ячейку (там примари кей) и просто выполнить запрос с параметром AsString
Здесь неясен только момент нахождения значения в нужной ячейке, его же надо прочитать
Grid.Cells[Grid.Col,Grid.Row]?
Grid.Rows[Grid.Row].Text?
Grid.Rows[Grid.Row].Text?
FedeX писал(а):Grid.Cells[Grid.Col,Grid.Row]?
Grid.Rows[Grid.Row].Text?
К сожалению у DBGrid нет свойства Cells, что собственно меня и удивило
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
работать нужно не с DBGrid, а с набором данных, который отображает DBGrid
Может расскажете что вы хотите сделать?
Может расскажете что вы хотите сделать?
У TDBGrid'а есть
Код: Выделить всё
property SelectedField: TField read GetCurrentField write SetCurrentField;svk12 писал(а):У TDBGrid'а естьКод: Выделить всё
property SelectedField: TField read GetCurrentField write SetCurrentField;
Большое спасибо
Добавлено спустя 12 часов 7 минут 35 секунд:
все-таки еще остался вопрос, допустим таблица состоит из трех столбцов id, name, phone пользователь выделил поле name, тогда как я могу получить данные из остальных столбцов данной строки, достаточно получить id, но как?
DBGrid.DataSource.Dataset.Fields[i]?
Это если значение поля нужно из текущей выделенной строки. Если из какой-то другой, то через DataLink.
Это если значение поля нужно из текущей выделенной строки. Если из какой-то другой, то через DataLink.
При изменении текущей строки DBGrid изменяет текущую позицию DataSetа.
Так что, DBGrid.DataSource.Dataset.FieldByName('id').As...
Так что, DBGrid.DataSource.Dataset.FieldByName('id').As...
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Вобщето вопрос - получить данные текущей строки из DBGrid-а это глупость.
Данные находятся в компоненте, наследнике DataSet - какой именно вы там используете...
а DBGrid просто отображает их.
А при работе с DataSet уже используем метод FiedlByName
а ещё лучше - во время разработки создадим поля и напрямую к ним обращаться.
Данные находятся в компоненте, наследнике DataSet - какой именно вы там используете...
а DBGrid просто отображает их.
А при работе с DataSet уже используем метод FiedlByName
а ещё лучше - во время разработки создадим поля и напрямую к ним обращаться.
- Astralis
- новенький
- Сообщения: 45
- Зарегистрирован: 06.06.2007 20:33:05
- Откуда: Tvercity-Annet
- Контактная информация:
как-то так должно быть
в случае мультиселекта есть свойство DBGrid1.SelectedRows, состоящее из закладок на выделенные строки.
Код: Выделить всё
for i:=0 to DBGrid1.Columns.Count-1 do
StringGкid1.Cell[i,Row]:=DBGrid1.DataSource.DataSet.FieldByName(DBGrid1.Columns[i].FieldName).Value;
в случае мультиселекта есть свойство DBGrid1.SelectedRows, состоящее из закладок на выделенные строки.
с задачей разобрался, всем кто помогал большое спасибо. решение выглядит примерно так
Код: Выделить всё
dbGrid1.SelectedIndex:= 0; //здесь можно указать любой номер столбца выделенной строки, в случае необходимости можно пустить по циклу и вытащить значения всех строк
ShowMessage(dbGrid1.SelectedField.AsString); //для себя выводил это сообщением, просто чтобы понять работает или нет
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
avis писал(а):dbGrid1.SelectedIndex:= 0; //здесь можно указать любой номер столбца выделенной строки, в случае необходимости можно пустить по циклу и вытащить значения всех строк
ShowMessage(dbGrid1.SelectedField.AsString); //для себя выводил это сообщением, просто чтобы понять работает или нет
Ребята - НЕЛЬЗЯ ТАК ДЕЛАТЬ!!!!!
Код: Выделить всё
for i:=0 to DS.Fields.Count-1 do
ShowMessage(DS.Fields[i].AsString); //для себя выводил это сообщением, просто чтобы понять работает или нет [/quote]
где DS это подключенный к гриду набор данных.
Вы б ещё через луну звонить стали...
alexs писал(а):avis писал(а):dbGrid1.SelectedIndex:= 0; //здесь можно указать любой номер столбца выделенной строки, в случае необходимости можно пустить по циклу и вытащить значения всех строк
ShowMessage(dbGrid1.SelectedField.AsString); //для себя выводил это сообщением, просто чтобы понять работает или нет
Ребята - НЕЛЬЗЯ ТАК ДЕЛАТЬ!!!!!Код: Выделить всё
for i:=0 to DS.Fields.Count-1 do
ShowMessage(DS.Fields[i].AsString); //для себя выводил это сообщением, просто чтобы понять работает или нет [/quote]
где DS это подключенный к гриду набор данных.
Вы б ещё через луну звонить стали...
Объясни в чем принципиальная разница? Подключен DataSource вот только свойства Fields я так и не нашел у него
