singlepost

Access в Delphi создание базы данных , ADOQuery как брать значения и записывать ? << На главную или назад  

создал базу данных в Access , подключил ее в delphi7
вывел данные в DBGrid (подкл ч/з datasource)
теперь мне нужно брать какое то значение из определенной яцейки в DBGrid , а потом записать другое значение
короче как брать значение определенной ячейки DBGrid ??
и как записывать значение в определенную ячейку у DBGrid ??

кто знает подскажите (:

19 ответов в теме “Access в Delphi создание базы данных , ADOQuery как брать значения и записывать ?”

  1. 1
    Сява Кукса ответил:

    Как брать значения и з ДБГрида не знаю, но, собственно, и зачем? Лучше работать напрямую с источником данных(ADOTable/ADOQuery/Table/Query).
    Методами перемещения по набору Prior, Last, Next, Prev или методами поиска Locate и Lookup выбираем строку – последовательность строк такая же как и отображается в Гриде – а затем методом FieldByName('Имя поля') получаем указатель на ячейку – объект типа TField. У этого объекта есть куча методов для преобразования данных в нужный тип: AsString, AsInteger и т. п.
    В общем виде например получение числа из базы выглядит так:
    var Id:Integer;
    ………………
    Id:=Table.FieldByName('id').AsInteger;

  2. 2
    Igor Kugubaev ответил:

    у меня DBGridчерез ADOQuery
    теперь понял что значения нужно брать из ADOQuery

    но так и до конца и не понял как брать значения из ADOQuery и записывать
    кто может опишите по подробнее

  3. 3
    Сява Кукса ответил:

    Это трудно так сразу объяснить. Лучше пиши в Skype zavulondevil. Постараюсь всё объяснить подробнее

  4. 4
    Сява Кукса ответил:

    Ну, попробую объяснить подробнее.
    В общем, в кажды момент времени можно получить доступ только к одной строке таблицы – записи, на которую указывает курсор набора данных.
    Переключать эти строки в 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-запосы.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.