Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.10.2009, 20:04
Eugene86 Eugene86 вне форума
Прохожий
 
Регистрация: 29.08.2009
Сообщения: 31
Репутация: 10
По умолчанию Не могу изменить данные при объединении таблиц

В ADQuery пишу запрос:
Код:
 select * from task join funds using(id_task) 
Т.е. выбираю данные из двух разных таблиц.
Связываю ADQuery c DBGrid. Пытаюсь изменить данные.
Но их можно изменить только для одной таблицы, указанной сразу после from, т.е. для task.
Для остальных случаев выдаётся ошибка
Error 01054 Unknown column 'subs' in 'field list'
СУБД MySQL. Компоненты доступа к данным AnyDAC
Ответить с цитированием
  #2  
Старый 25.10.2009, 20:39
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Видимо subs фигурирует в обеих таблицах и без явного указания в какую таблицу пихать значение получаете ошибку.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 25.10.2009, 20:44
Eugene86 Eugene86 вне форума
Прохожий
 
Регистрация: 29.08.2009
Сообщения: 31
Репутация: 10
По умолчанию

Вот обе таблицы:
Код:
CREATE TABLE zadanie.task(
  number SMALLINT (5) UNSIGNED NOT NULL,
  name VARCHAR (70) NOT NULL,
  id_task INT (10) UNSIGNED NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (id_task)
)
ENGINE = MYISAM

CREATE TABLE zadanie.funds(
  id_task INT (10) UNSIGNED NOT NULL,
  subs DECIMAL (8, 2) DEFAULT NULL,
  gain DECIMAL (8, 2) DEFAULT NULL,
  id_funds INT (10) UNSIGNED NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (id_funds)
)
ENGINE = MYISAM
Ответить с цитированием
  #4  
Старый 25.10.2009, 21:08
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

У меня MySQL не стоит, поэтому буду гадать
У вас
Код:
task join funds
Это подразумевается какая связь?
Один к одному или Один ко многим?
Если один к одному тогда попробуйте использовать отложенное сохранение выставив значаение ltBatchOptimistic для LockType и определив курсор локальным.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 25.10.2009, 21:28
Eugene86 Eugene86 вне форума
Прохожий
 
Регистрация: 29.08.2009
Сообщения: 31
Репутация: 10
По умолчанию

Связь 1 к 1

Последний раз редактировалось Eugene86, 25.10.2009 в 21:34.
Ответить с цитированием
  #6  
Старый 25.10.2009, 21:41
Eugene86 Eugene86 вне форума
Прохожий
 
Регистрация: 29.08.2009
Сообщения: 31
Репутация: 10
По умолчанию

У меня не ADO, а AnyDAC.
Не нахожу я там, где курсор менять и LockType
Ответить с цитированием
  #7  
Старый 26.10.2009, 20:52
Eugene86 Eugene86 вне форума
Прохожий
 
Регистрация: 29.08.2009
Сообщения: 31
Репутация: 10
По умолчанию

Проблема решилась использованием компонента ADUpdateSQL с явным указанием запросов.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:13.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter