создал базу данных в Access , подключил ее в delphi7
вывел данные в DBGrid (подкл ч/з datasource)
теперь мне нужно брать какое то значение из определенной яцейки в DBGrid , а потом записать другое значение
короче как брать значение определенной ячейки DBGrid ??
и как записывать значение в определенную ячейку у DBGrid ??
кто знает подскажите (:
21 марта 2010 в 20:04
Ну, попробую объяснить подробнее.
В общем, в кажды момент времени можно получить доступ только к одной строке таблицы – записи, на которую указывает курсор набора данных.
Переключать эти строки в ADOQuery можно методами
First – перейти на первую запись
Last – перейти на последнюю запись
Next – перейти на одну запись вперёд
Prior – перейти на одну запись назад.
А можно использовать поиск – метод Locate(KeyFields,KeyValues,Options)
где KeyFields – строка со списком имён полей, по которым идёт поиск через точку с запятой.
KeyValues – массив значений полей
Options – множество опций – можно оставить пустым -[].
Если запись будет найдена, то курсор в наборе данных прейдёт на это запись.
Например оператор
ADOQuery.Locate('Name; Surname',VarArrayOf('Vasya','Pupkin'),[])
установит курсор на запись в которой поле Name имеет значение Vasya, а поле Surname – значение Pupkin.
После выбора записи значения отдельных полей можно получить с помощью метода FieldByName() в паре с методом преобразования типа.
Например оператор
var S:String;
S:= ADOQuery.FieldByName('Surname').AsString – присвоит пременной S значение поля Surname текущей записи в виде строки.
Для преобразования значения поля в другие типы есть методы AsInteger, AsFloat и др.
Для того чтобы записать данны в базу нужно
1) превести набор данных в режим редактирования ADOQuery.Edit;
2) Присвоить полю нужное значение
NewSurname:='Borodin';
ADOQuery.FieldByName('Surname').AsString:=NewSurname;
3) Отправить данные в базу ADOQuery.Post;
…или использовать SQL-запосы.
21 марта 2010 в 19:05
Это трудно так сразу объяснить. Лучше пиши в Skype zavulondevil. Постараюсь всё объяснить подробнее
21 марта 2010 в 10:03
у меня DBGridчерез ADOQuery
теперь понял что значения нужно брать из ADOQuery
но так и до конца и не понял как брать значения из ADOQuery и записывать
кто может опишите по подробнее
18 марта 2010 в 17:00
Как брать значения и з ДБГрида не знаю, но, собственно, и зачем? Лучше работать напрямую с источником данных(ADOTable/ADOQuery/Table/Query).
Методами перемещения по набору Prior, Last, Next, Prev или методами поиска Locate и Lookup выбираем строку – последовательность строк такая же как и отображается в Гриде – а затем методом FieldByName('Имя поля') получаем указатель на ячейку – объект типа TField. У этого объекта есть куча методов для преобразования данных в нужный тип: AsString, AsInteger и т. п.
В общем виде например получение числа из базы выглядит так:
var Id:Integer;
………………
Id:=Table.FieldByName('id').AsInteger;