Конференция "Базы" » Delphi и Access [D7, Access]
 
  • АлександрМан (15.03.12 21:10) [0]
    Доброго времени суток.

    Есть форма с DBGrid'ом и БД на Access'е. Подскажите, как отловить значение конкретного столбца (ID) в последней добавленной строке? Мне необходимо как-то это значение присвоить переменной.

    Заранее спасибо.
  • Cobalt © (16.03.12 11:57) [1]
    1) Сколько пользователей одновременно работают с базой?
    2) ID - автоинкремент?
    3) Есть ли уникальные поля в редактируемой таблице?
  • АлександрМан (16.03.12 12:05) [2]
    1. Один пользователь.
    2. Да, ID это счетчик (автоинкремент).
    3. По сути ID это и есть уникальное поле.
  • Cobalt © (16.03.12 12:25) [3]
    В чем необходимость использовать ID добавленной строки?
    Может, подойдет ID выбранной пользователем?
  • АлександрМан (16.03.12 12:33) [4]
    В каждой из двух таблиц есть ID. Они связываются в третьей таблице. ID первого события я ловлю, а со вторым никак. Попробую объяснить задачу:

    есть два ДБГрида. в одном выбираю строчку (тут я ловлю ID из первой таблицы), в новом окне ввожу данные, которые после нажатия кнопки Добавить заносятся во вторую таблицу. Плюс сразу же долно происходить связывание выбранной записи и добавленной вновь. вот для этого и надо ловить ID втрой таблицы. если есть какие то мысли - буду очень благодарен, сам никак не дойду до решения (новичок).

    надеюсь не сильно запутал :-(
  • stas © (16.03.12 15:41) [5]
    не совсем понял что значит "ловить id", если интересует последний добавленный то так:

    Select @@Identity

    Возвращает последний добавленный id в текущей сессии
  • Cobalt © (16.03.12 17:30) [6]
    Попробую еще раз пояснить:
    Не "лови" ID - пускай пользователь сам выбирает записи.
    ID бери из текущей записи таблицы, а не ищи "добавленную только что".

    Если же ты хочешь, чтобы пользователь мог ввести данные в отдельной формочке, и эту, только что введенную запись, хочешь сделать текущей выбранной (а для этого узнать уникальный её ID) - добавь колонку для своего уникального идентификатора, записывай туда GUID, и находи после вставки записи её ID по GUID'у
  • Anatoly Podgoretsky © (16.03.12 17:38) [7]
    > Cobalt  (16.03.2012 17:30:06)  [6]

    У Акцесса нет никакой проблемы с узнаванием ИД
  • АлександрМан (16.03.12 18:06) [8]
    попробую объяснить еще раз.

    есть три таблицы:

    1. бла-бла-бла... C_ID...

    2. бла-бла-бла... A_ID...

    3. в которой два поля всего (A_ID и C_ID). Она нужна для привязки определенного элемента из первой таблицы и определенного элемента из второй таблицы.

    Есть первый Грид на форме. Туда подгружаются данные из первой таблицы.
    Есть второй Грид на форме. Туда подгружаются данные после того, как пользователь выберет что-то в первом гриде (происходит обращение в третью таблицу и проверяется связка C_ID и A_ID).

    Но, например, когда пользователь выделяет что-то в первом гриде (тут я уже знаю конкретный C_ID), он может добавить СВЯЗАННУЮ С ВЫБРАННОЙ запись во вторую таблицу. Для связи я в третью таблицу заношу C_ID, который узнаю на момент выделения записи в первом гриде. А вот как узнать A_ID я не понимаю, ведь пока пользователь не добавил запись во вторую таблицу A_ID для связи еще не существует...
  • Cobalt © (17.03.12 20:19) [9]
    Так сообщи пользователю, что ему вначале надо выбрать запись :)
  • знайка (17.03.12 21:06) [10]
    т.е. у вас один автомобиль может принадлежать нескольким человекам? :)
  • АлександрМан (18.03.12 01:39) [11]

    > т.е. у вас один автомобиль может принадлежать нескольким
    > человекам? :)


    наоборот


    > Так сообщи пользователю, что ему вначале надо выбрать запись
    > :)


    пользователь по условию задачи не должен ничего выбирать лишний раз. То есть он жмет на человеке "добавить авто" и добавляет.
  • Cobalt © (18.03.12 15:26) [12]
    Повторюсь еще раз:
    в добавляемой записи указывай уникальный идентификатор, по которому ты сможешь точно определить ID записи, а не искать некую "только что добавленную запись"
 
Конференция "Базы" » Delphi и Access [D7, Access]
Есть новые Нет новых   [134431   +10][b:0][p:0.001]