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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.03.2013, 15:28
std25 std25 вне форума
Прохожий
 
Регистрация: 05.12.2012
Сообщения: 6
Репутация: 10
По умолчанию ADOQuery.Edit проблемы с редактированием

здравствуйте. база данных состоит из 5 таблиц, в главной таблице поле "табельный номер" ключ, связано с остальными связью один ко многим.при помощи ADOQuery все поля таблиц выводятся в dbgrid,чтобы по щелчку на запись вся инфа заносилась в edit.добавление записи происходит без проблем,а вот с редактированием проблемы. т.е. после того как все данные поместились в edit,некоторые из них редактируются и по нажатию на кнопку сохранить

form2.adoquery1.edit;
adoquery1.fieldbyname('dfhv').asstring:=edit1.text ;
....перечисляем поля из всех таблиц
...
form2.adoquery1.post;

вылетает ошибка "недостаточно сведений о ключевом столбце для обновления"
т.е. если правильно думаю, проблема в ключах,но тогда почему работает добавление. посоветуйте,что делать??
Ответить с цитированием
  #2  
Старый 29.03.2013, 15:46
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

Код:
   ADOQuery.close;
   ADOQuery.SQL.Clear;
   ADOQuery.SQL.Add('INSERT INTO tabl (pole1, pole2) VALUES (' + QuotedStr(edit1.text) + ', ' + QuotedStr(edit2.text) + ')');
    try 
       dm.ADOQuery.ExecSQL;
    except
     begin 
          messageDlg('Ошибка вставки записи SQL', mtError, [mbOK], 0); 
          exit; 
     end;
    end;
но это для вставки записи, тебе нужен UPDATE, сам разберешься?)
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")

Последний раз редактировалось Mrak, 29.03.2013 в 15:49.
Ответить с цитированием
  #3  
Старый 29.03.2013, 16:00
std25 std25 вне форума
Прохожий
 
Регистрация: 05.12.2012
Сообщения: 6
Репутация: 10
По умолчанию

ADOQuery.SQL.Add('INSERT INTO tabl (pole1, pole2) VALUES (' + QuotedStr(edit1.text) + ', ' + QuotedStr(edit2.text) + ')');

получается в моем случае,через запятую перечисляются все таблицы,а потом все столбцы??
Ответить с цитированием
  #4  
Старый 29.03.2013, 16:05
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Я запутался. Давай сначала! У тебя таблицы связаны один ко многим.

Информация из Столбца ГЛАВНОЙ таблицы попадает в Edit? и ты хочешь её изменять?
Ответить с цитированием
  #5  
Старый 29.03.2013, 16:11
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

Цитата:
Сообщение от std25
ADOQuery.SQL.Add('INSERT INTO tabl (pole1, pole2) VALUES (' + QuotedStr(edit1.text) + ', ' + QuotedStr(edit2.text) + ')');

получается в моем случае,через запятую перечисляются все таблицы,а потом все столбцы??
ВСТАВИТЬ В ТАБЛИЦУ <имя таблицы>(<имя столбца1>, <имя столбца2>) ЗНАЧЕНИЯ (<значение1>, <значение2>)
http://www.mysql.ru/docs/ в помощь
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
  #6  
Старый 29.03.2013, 16:20
std25 std25 вне форума
Прохожий
 
Регистрация: 05.12.2012
Сообщения: 6
Репутация: 10
По умолчанию

5 таблиц связаны,я нажимаю на строку dbgrid, в которой содержится вся информация о сотруднике со всех 5 таблиц.получается, что все данные заносятся в editЫ. редактирую некоторые из них,ну и ошибка описана выше((
Ответить с цитированием
  #7  
Старый 29.03.2013, 16:26
Аватар для Mrak
Mrak Mrak вне форума
Местный
 
Регистрация: 26.01.2013
Адрес: МО
Сообщения: 438
Версия Delphi: XE2
Репутация: 17
По умолчанию

Цитата:
Сообщение от std25
5 таблиц связаны,я нажимаю на строку dbgrid, в которой содержится вся информация о сотруднике со всех 5 таблиц.получается, что все данные заносятся в editЫ. редактирую некоторые из них,ну и ошибка описана выше((
а чего, сразу в гриде не редактируется?
__________________
Я за здоровый экстрим!
Спасибо за "спасибо")
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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