Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Нужна помощь Delphi + Access!

7.6K
14 июня 2006 года
Dick_H
56 / / 20.02.2006
Вообщем проблема с обновлениями записи в таблице Access.
У меня есть две таблицы Org и Certif обе в Access, в таблице Certif есть поле id_s это поле содержит такие же данные как и в Org (соответственно оно также и называеться)... таблица Certif содержит данные об аттестации организации, эта аттестация идёт по двум показателям качество и деловая репутация (значения kach_rez и delrep_rez), в таблице Org также есть эти два поля... нужно сделать так, чтобы происходило обновление таблицы Org по показателям качества и репутации, которые были присвоены организации в аттестации...
Пробовать стандартными методами ADOTable не стал (просто не разобрался)... т.к. больше знаком с SQL, решил сделать обновление записи через запрос...

UpdateQuery - компонент запроса ADOQuery
kachestvo - тип integer, вычисляется по ходу выполнения проги
reputaciya - тип integer, вычисляется по ходу выполнения проги
DBEdit1.Text - в это поле заносяться данные из id_s

Обновление делаю следующим образом:

UpdateQuery.SQL.Add('UPDATE org SET kach_rez=kachestvo,delrep_rez=reputaciya WHERE id_s=DBEdit1.Text');

При компиляции прога выдаёт ошибку, что параметр kachestvo\reputaciya не являеться значением по умолчанию.... Я уже просто не знаю, что и делать... :(
Может кто подскажет и посоветует, как можно решить данный вопрос?
339
14 июня 2006 года
verybadbug
619 / / 12.09.2005
на форме ADOQuery1, ADOQuery2 соединения которых настроены на твою базу...
Edit1, содержащий id_s организации, данные которой обновить надо...
Код:
ADOQuery1.SQL.Text := 'SELECT * FROM Certif WHERE (id_s = ' + IntToStr(Edit1.Text) + ')';
  ADOQuery1.Open;
  if not ADOQuery1.Eof then begin
    ADOQuery2.SQL.Text := 'SELECT * FROM Org WHERE (id_s = ' + IntToStr(Edit1.Text) + ')';
    ADOQuery2.Open;
    if not ADOQuery2.Eof then begin
      ADOQuery2.Edit;
      ADOQuery2['kach_rez'] := ADOQuery1['kach_rez'];
      ADOQuery2['delrep_rez'] := ADOQuery1['delrep_rez']
      ADOQuery2.Post;
    end;
    ADOQuery2.Close;
  end;
  ADOQuery1.Close;
7.6K
14 июня 2006 года
Dick_H
56 / / 20.02.2006
Ну а теперь прога ругаеться, на строку:

.....(id_s = ' + IntToStr(Edit1.Text) + ')';

а именно на параметр IntToStr... :(
7.6K
14 июня 2006 года
Dick_H
56 / / 20.02.2006
Не много переделал:

var
x:integer;
begin
x:=StrToInt(DBEdit1.Text);
.......
....(id_s = ' + IntToStr(x) + ')';

Теперь на IntToStr, не ругаеться (знаю, был мой косяк)... но проблема осталась....
так и выводит, что "Параметр id_s не имеет значение по умолчанию"...
что это вообще может значить???
да и ещё, когда значения которые нужно обновить прописываешь в ручную....

UpdateQuery.SQL.Add('UPDATE org SET kach_rez=3,delrep_rez=3 WHERE id_s=1');

То выдаёт ошибку, что "Текущий проводник не поддерживает возврат нескольких наборов записей в результате одной операции".
Я уже просто запутался... :(
339
19 июня 2006 года
verybadbug
619 / / 12.09.2005
добавь это...
 
Код:
...
      ADOQuery2.Edit;
      ADOQuery2['id_s'] := ADOQuery1['id_s'];
      ADOQuery2['kach_rez'] := ADOQuery1['kach_rez'];
      ADOQuery2['delrep_rez'] := ADOQuery1['delrep_rez'];
      ADOQuery2.Post;
...
7.6K
19 июня 2006 года
Dick_H
56 / / 20.02.2006
С этим разобрался, спасибо за помощь!!!!
Все обновляет на Ура.. :)
339
20 июня 2006 года
verybadbug
619 / / 12.09.2005
)))).... ну, блин... одобрил бы тогда сообщение чтоли.... :)
7.6K
21 июня 2006 года
Dick_H
56 / / 20.02.2006
В смысле???
Я говорю, спасибо за помощь!!... :)
339
21 июня 2006 года
verybadbug
619 / / 12.09.2005
под картинкой пользователя есть такая иконка.... на весы похожая... )))
7.6K
22 июня 2006 года
Dick_H
56 / / 20.02.2006
Не вопрос.... Одобрил :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог