Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2012, 20:40   #1
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию Проблема с редактироанием

Здравствуйте. Есть акссесовская БД, две таблицы в ней Tab1, Tab2. В Tab1, поле Id1 - типа счетчика. В Tab2, поле Id2 - числового типа. через адо запросом эти две таблицы связаны по этим полям. Вопрос в том как программно правильно изменить поле Id2?
Я пробовал через Edit
Код:
form1.ADOQuery1.Edit;
form1.ADOQuery1.FieldValues['Id2']:=IdTabelya;//IdTabelya-это переменная числового типа
form1.ADOQuery1.Post;
Таким образом выскакивает сообщение о недостаточном сведении о ключевом поле. Прошу помочь разобраться.
фЁдОр вне форума Ответить с цитированием
Старый 10.02.2012, 20:45   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В запросе данные из обеих таблиц? Или два отдельных квери или командой UPDATE ...
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.02.2012, 20:46   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
поле Id1 - типа счетчика
Забудь. Счетчик менять СУБД так просто не даст.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.02.2012, 20:56   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Счетчик менять СУБД так просто не даст.
ТС не счетчик правит
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.02.2012, 20:59   #5
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
В запросе данные из обеих таблиц? Или два отдельных квери или командой UPDATE ...
в запросе данные обеих таблиц. два вери проблему не решает, в таком случае добавляется путая строка, да и как-то не профессионально из-за это еще грузить программу вторым адо, через апдейт тоже увы не вышло. вот как пробовал апдейтом
Код:
form1.ADOQuery1.Close;
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Add('Update Tab2 set Id2 =' + form1.ADOQuery1.FieldValues['Id1']);
form1.ADOQuery1.Open;
Цитата:
Забудь. Счетчик менять СУБД так просто не даст.
Виталь, не внимателен Я изменяю числовой тип, а не счетчик.
фЁдОр вне форума Ответить с цитированием
Старый 10.02.2012, 21:02   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А WHERE где в запросе на обновление? И не Open, a ExecSQL
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.02.2012, 21:09   #7
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

Аватар, а where обязательно? поменял ExecSQL - погоду не поменяло(
фЁдОр вне форума Ответить с цитированием
Старый 10.02.2012, 21:19   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Без WHERE будет попытка обновить все записи таблицы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.02.2012, 21:23   #9
фЁдОр
Форумчанин
 
Аватар для фЁдОр
 
Регистрация: 06.09.2007
Сообщений: 908
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Без WHERE будет попытка обновить все записи таблицы
Да это понятно, потом-то я добавлю условие, что б все записи не изменялись. Сейчас мне б разобраться как правильно вообще заставить редактироваться это поле...
фЁдОр вне форума Ответить с цитированием
Старый 10.02.2012, 21:26   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
form1.ADOQuery1.SQL.Add('Update Tab2 set Id2 =' + form1.ADOQuery1.FieldValues['Id1']);
Только обратил внимание, откуда form1.ADOQuery1.FieldValues['Id1']) возмется, если таблица закрыта? Запомните до закрытия. Или UPDATE другим квери
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 10.02.2012 в 21:30.
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37