Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Вниз

Ошибка при записи   Найти похожие ветки 

 
paule   (2005-01-25 12:57) [0]

Есть 3 ADOTAble1,2 и 4. Связаны связью Master -Detail по ключевому полю

ADOTAble - master  и остальные 2 подчинены!

procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin

ADOTable1.First;
ADOTable4.Open;
for i:=1 to ADOTable1.RecordCount do
 begin
    ADOTable1.Edit;
    ADOTable1.FieldByName("Kodrab").AsString :="ÍÐ";
    ADOTable1.FieldByName("ter_usl").AsString :="ÌÊÑ";
    ADOTable1.FieldByName("FCData_RB").AsDateTime := StrToDate("01.04.2004");
    ADOTable1.FieldByName("FCData_UV").AsDateTime :=StrToDate("31.12.2004");
    if ADOTable2.FieldByName("cexs").AsInteger < 20 then
       ADOTable1.FieldByName("koeff").AsFloat   := 1.4
    else
       ADOTable1.FieldByName("koeff").AsFloat  := 1.6;
    ADOTable1.Post;

    ADOTable4.Edit;
    ADOTable4.First;
    ADOTable4.FieldByName("L_adres").AsBoolean :=true;
    ADOTable4.Post;
   
    ADOTable1.Next;
 end;

end;


Все вроде просто, но при работе дельфи выпадает с ошибкой и говорит. что ADOTable4: DataDet not in edit or insert mode.

Подскажите в чем проблема


 
Johnmen ©   (2005-01-25 13:23) [1]

1. Где ADOTable2.Open ?
2. >for i:=1 to ADOTable1.RecordCount do обходят не так.
3. >ADOTable4.Edit;... а если нет записей в нем ?

И, наконец, ошибка.
ADOTable4.Edit;
ADOTable4.First;

Вызов фёрста приведет к выходу из режима редактирования. Ку?
Т.е. местами поменять...


 
paule   (2005-01-25 13:30) [2]

если так сделать,
 ADOTable4.First;
 ADOTable4.Edit;
   ADOTable4.FieldByName("L_adres").AsBoolean :=true;
   ADOTable4.post;

ADOTable1.Next;

то
при втором выполнении (ну тоесть один раз срабатывает нормально) ADOTable1.Next;
вылетает ошибка

Не удается найти строку для обновления. Некоторые значения могли быть изменены со времени её последнего чтения


 
Johnmen ©   (2005-01-25 13:42) [3]

Видимо изменяешь значение ключевого поля ADOTable1, то, по которому связка...


 
paule   (2005-01-26 03:14) [4]

нет..

ну программно точно не изменяю.


 
Paule   (2005-01-26 10:26) [5]

Сейчас сделал по другому:

В один запрос ADOQuery свел две таблицы:
 
select * from spisok inner join  svd on spisok.kl_pens = svd.kl_pens

и к ADOQuery цепляю таблицу ADOTable.

Вот код:


if ADOQuery1.Active = true then ADOQuery1.Close;
ADOQuery1.Open;

if ADOTable2.Active = true then ADOTable2.Close;
ADOTable2.Open;

for i:=1 to ADOQuery1.RecordCount do
   begin
    ADOQuery1.Edit;
    ADOQuery1.FieldByName("Kodrab").AsString :="&#205;&#208;";
    ADOQuery1.FieldByName("ter_usl").AsString :="&#204;&#202;&#209;";
    ADOQuery1.FieldByName("FCData_RB").AsDateTime := ADOTable2.FieldByName("one_date").AsDateTime;
    ADOQuery1.FieldByName("FCData_UV").AsDateTime :=StrToDate("31.12.2004");
    if ADOTable2.FieldByName("cexs").AsInteger < 20 then
       ADOQuery1.FieldByName("koeff").AsFloat   := 1.4
    else
       ADOQuery1.FieldByName("koeff").AsFloat  := 1.6;

    ADOQuery1.FieldByName("L_adres").AsBoolean :=true;

    ADOQuery1.Post;
   end;



поле L_adres из таблицы svd остальные из spisok.

В итоге на команде Post - выпадает с ошибкой:

"Недостаточно сведений ключевого поля для обновления"

Посоветуйте чтонибудь пожалуйста!



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.052 c
14-1107762736
Alex_Petr
2005-02-07 10:52
2005.02.27
Директива: Stop On Delphi Exceptions


14-1107877125
juice
2005-02-08 18:38
2005.02.27
Установка BCB 6


14-1107504610
Тульский
2005-02-04 11:10
2005.02.27
Хасавьюрт-2


1-1108028890
Mouserx
2005-02-10 12:48
2005.02.27
Использование функций из модулей


14-1107419422
Форумописатель
2005-02-03 11:30
2005.02.27
Код Форума





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский