На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

Наиболее часто задаваемые вопросы:
Базы даных для начинающих. Первые шаги. Понятие о BDE.
Переход на клиент-сервер и начала ADO
Приёмы работы с BLOB (OLE/Memo) полями
Запросы и параметры или как избавиться от многих проблем. Проблемы с датами в запросах.
Нужели мне нужно устанавливать BDE? (или почему не работает программа на другом компьютере)
Модераторы: Bas, Rouse_
  
> Добавление записей в 2 таблицы, которые находятся на 2 формах
    Добрый вечер. Записи добавляются только на 1 таблицу на форме №1.
    Дело так: на форме "Добавление записей" несколько DBEdit для разных таблиц и кнопка "Сохранить". Код в этой кнопке:
    ExpandedWrap disabled
      ADOQuery1.Insert;
      if ADOQuery1.Modified then ADOQuery3.Post; //этот код меняет существующие записи во 2-ой таблице в форме №2(то, чего удалось добиться), но не создает новые
      ADOQuery3.Insert;
      modalResult:=mrOk;

    Этот код меняет только существующую запись (или добавляет новую в 1 таблицу. Естественно на форме №1 есть кнопка, которая создает новую запись в 1 и 2 таблицах).
    При добавлении новой записи в форму №2 меняется 1-ая строка в 2 таблице, а новая почему-то не добавляется. А мне нужно, чтоб создавалась своя строка.

    Таблицы у меня подключены через ADOQuery, а данные из Access.

    Мои попытки: я создала связи между таблицами в Delphi (т.к. в начале компилятор ругался на отсутствие связей).
    ExpandedWrap disabled
      ADOQuery3.Close;
      ADOQuery3.Parameters[0].Value:=ADOQuery1.FieldByName('Kod').Value;
      ADOQuery3.Open;

    Код в SQL:
    ExpandedWrap disabled
      SELECT * FROM Table1  WHERE Table1.Kod=:Kod

    Но данные из Access вообще не выводятся. Кроме этого, когда я нажимаю кнопку "Добавить запись" возникает ошибка: adoquery1: cannot perform this operation on a closed dataset

    Я не знаю, что еще можно предпринять, помогите пожалуйста...
    Сообщение отредактировано: лолоа -
      в DBEdit указывается один DataSource, чтобы сохранялось в другую таблицу то, что в него введено, нужно это указать уже руками. Например:

      ExpandedWrap disabled
        Adoquery3.insert;
        Adoquery.FieldByName('Name_field').asString:=dbedit.text;
        Adoquery3.post;

      Насчет закрытого датасета, мб забыли открыть query на событии oncreate DataModule?
      Прикреплённый файлПрикреплённый файлScreenshot_3.png (11,21 Кбайт, скачиваний: 833)
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0196 ]   [ 18 queries used ]   [ Generated: 28.03.24, 15:05 GMT ]