Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.27;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.056 c
14-1107467635
Гость
2005-02-04 00:53
2005.02.27
Чем чистить линзу на сидюке


1-1108328817
netmouse
2005-02-14 00:06
2005.02.27
DLL В проекте


14-1107719241
Fin
2005-02-06 22:47
2005.02.27
Мгновенная связь


14-1107512563
Иксик2
2005-02-04 13:22
2005.02.27
Хочу отсканнировать пару учебников по мат. анализу


4-1105353032
Universe
2005-01-10 13:30
2005.02.27
Отключение девайсов в Windows NT/XP





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский