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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2011, 17:21   #1
tema654
Пользователь
 
Регистрация: 11.10.2010
Сообщений: 49
Печаль Недостаточные сведения о ключевом столбце для обновления

Такая ошибка вылазит, когда пытаюсь редактировать запись.
есть: ADOquery, Datasource, ADOconect.
+ есть 3 таблицы. у этих таблиц ключевое поле= машиноместо,тип данных счетчик.
sql в ADOquery:
Код:
select  Владелец_и_авто.машиноместо,место,дата_выезда, дата_въезда, марка, тип, номер_авто,ФИО,телефон,оплата_за_сутки,оплата_за_месяц, оплата_с_дата, оплата_до_дата
From Владелец_и_авто, въезд_выезд, платежи
where (Владелец_и_авто.машиноместо=въезд_выезд.машиноместо) and
 (Владелец_и_авто.машиноместо=платежи.машиноместо)
код на кнопке редактирования:
Код:
Qry5.Edit;
Qry5.FieldByName('Марка').AsString:=dblkcbb1.Text;
Qry5.FieldByName('Тип').AsString:=dblkcbb2.Text;
Qry5.FieldByName('Номер_авто').AsString:=edt2.Text;
Qry5.FieldByName('ФИО').AsString:=edt1.Text;
Qry5.FieldByName('Телефон').AsString:=medt1.Text;
Qry5.FieldByName('оплата_за_сутки').AsString:=dblkcbb3.Text;
Qry5.FieldByName('оплата_за_месяц').AsString:=dblkcbb4.Text;
Qry5.FieldByName('оплата_с_дата').AsString:=edt3.Text;
Qry5.FieldByName('оплата_до_дата').AsString:=edt4.Text;
Qry5.FieldByName('дата_выезда').AsDatetime:=dtp1.Datetime;
Qry5.FieldByName('дата_въезда').AsDatetime:=dtp2.Datetime;
Qry5.Post;
Что не так, что сделать?
Помогите пожалуйста!
tema654 вне форума Ответить с цитированием
Старый 25.12.2011, 17:40   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Как минимум не знает куда писать в таблицы въезд_выезд и платежи. Что бы сильно не морочить голову из каждой таблицы тяните инфу в отдельный ADOQuery
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.12.2011, 17:49   #3
tema654
Пользователь
 
Регистрация: 11.10.2010
Сообщений: 49
По умолчанию

у меня будет 3 ADOquery =3 таблицы. но данные нужно редактировть в Qry5.
Кстати insert работает. а вот edit не хочет (
tema654 вне форума Ответить с цитированием
Старый 25.12.2011, 18:03   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

При вставке автоинкриментное поле автоматически создается. А когда редактируете, то в вашем запросе не данных об ключах таблиц въезд_выезд и платежи. Кстати каким макаром в этих таблицах оно тоже автоинкриментное? Оно же одновременно является полем для связи с таблицей Владелец_и_авто. Наверняка может быть несколько платежей, о въезде и выезде вообще молчу
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.12.2011, 18:11   #5
tema654
Пользователь
 
Регистрация: 11.10.2010
Сообщений: 49
По умолчанию

И что мне делать ??(
tema654 вне форума Ответить с цитированием
Старый 25.12.2011, 18:38   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Разобраться со структурой таблиц и связей между ними, возможно пересмотреть
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.12.2011, 18:44   #7
tema654
Пользователь
 
Регистрация: 11.10.2010
Сообщений: 49
По умолчанию

я сделал таким образом:
Сделал как вы сказали 3 query с 3-мя source соеденил. )
и редактировал каждый Qry. Дальше чудил это
Qry5.active:=false;
Qry5.active:=true;

Спасибо !
tema654 вне форума Ответить с цитированием
Старый 02.06.2016, 17:27   #8
[AMATOR]
Новичок
Джуниор
 
Регистрация: 02.06.2016
Сообщений: 1
По умолчанию

Всем привет, у меня такая же ошибка, но ситуация другая: есть ADOQuery, в нем данные из двох ADOTable+ вычисляемое поле Age. На главной форме есть радиобатон "на декущую дату" и DateTimePicker. При смене даты в пикере нужно обновить запрос, данные обновляются но появляется ета ошибка. Подскажите как ее исправить
Изображения
Тип файла: jpg Безымянный.jpg (38.1 Кб, 146 просмотров)
Тип файла: jpg 2.jpg (39.7 Кб, 155 просмотров)

Последний раз редактировалось [AMATOR]; 02.06.2016 в 17:30.
[AMATOR] вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для обновления чего-либо snake91135 Софт 0 29.01.2011 15:27
SP3 пакет обновления, для windows xp VintProg Windows 7 16.12.2010 00:05
Недостаточные или не полные сведения о ключе Lotus_erlan БД в Delphi 6 13.03.2010 11:20
Маленькая программа для обновления чего-либо dolphin64rus Помощь студентам 0 29.01.2010 22:14
недостаточно сведений ключевого поля для обновления sashaslam БД в Delphi 1 23.09.2009 17:26