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

Вниз

HELP!!! DataSet при Insert ругается, что база read-only.   Найти похожие ветки 

 
Muzzy   (2006-06-01 08:17) [0]

Ругается на строке с
FieldByName("npp").AsInteger:=StrToInt(edNpp.Text);

говорит следующее:
Cannnot modify  a read-only  dataset.

Что это такое? Я все проверил на 1024 раза. Может что в real-time нужно делать? И в IB настройки смотрел.

Делаю все по книжке вот так:

       with IBDataSetJOTKL do
       begin
         IBDataSetJOTKL.Active:=True;
         try
         Insert;
         FieldByName("npp").AsInteger:=StrToInt(edNpp.Text);
         FieldByName("fidname").AsString:=edFidname.Text;
         FieldByName("dateotkl").AsDateTime:=edDateotkl.Date;
         FieldByName("timeotkl").AsDateTime:=edTimeotkl.Time;
         FieldByName("datevkl").AsDateTime:=edDatevkl.Date;
         FieldByName("timevkl").AsDateTime:=edTimevkl.Time;
         FieldByName("lengthotkl").AsDateTime:=edLengthotkl.Time;
         FieldByName("priotkl").AsString:=edPriotkl.Text;
         FieldByName("npo").AsString:=edNpo.Text;
         FieldByName("katpotr").AsString:=edKatpotr.Text;
         FieldByName("klassif").AsInteger:=StrToInt(edKlassif.Text);
         FieldByName("nedootp").AsInteger:=StrToInt(edNedootp.Text);
         FieldByName("datepered").AsDateTime:=edDatepered.Date;
         FieldByName("timepered").AsDateTime:=edTimepered.Time;
         FieldByName("peredkomu").AsString:=edPeredkomu.Text;
         FieldByName("commentmemo").AsString:=edCommentmemo.Text;
         Post;
         finally
         IBDataSetJOTKL.Active:=False;
         end;
       end;

В чем проблема?


 
ANB ©   (2006-06-01 08:28) [1]

Заполни свойство InsertSQL


 
dolmat   (2006-06-01 09:03) [2]


> Ругается на строке с
> FieldByName("npp").AsInteger:=StrToInt(edNpp.Text);

Возможно для этого лучше генератор привязать


 
Sergey13 ©   (2006-06-01 09:05) [3]

>Делаю все по книжке вот так:
Выкинь такую книжку или почитай внимательнее. ИМХО.
Зачем открывать датасет только для того что бы вставить одну запись!


 
Muzzy   (2006-06-01 11:39) [4]

>> Заполни свойство InsertSQL
А что там написать-то?
INSERT и иже с ним? А зачем тогда FieldByName ?


 
Sergey13 ©   (2006-06-01 11:41) [5]

2 [4] Muzzy   (01.06.06 11:39)
>А что там написать-то?
Похоже, прежде чем написать что то, тебе придется еще многое прочитать. ИМХО.


 
Muzzy   (2006-06-01 12:03) [6]

> Похоже, прежде чем написать что то, тебе придется еще многое прочитать. ИМХО.
Да читал я. Тогда уж проще через IBSQL. Но хотелось-то попроще, через DataSet. Ну подскажите че написать-то поля-то в коде есть. И вопрос-то в другом. Почему недает вставить запись? Ладно если другая ошибка, дело-то в этом.


 
Muzzy   (2006-06-01 12:07) [7]

Ну подскажите идиоту где еще порыть. Прогу срочно делать надо. Простая ведь. Того и надо, что записи вствлять.
Вот и база:

CREATE TABLE "JOTKL"
(
 "npp" INTEGER,
 "fidname" VARCHAR(64),
 "dateotkl" DATE,
 "timeotkl" TIME,
 "datevkl" DATE,
 "timevkl" TIME,
 "lengthotkl" TIME,
 "priotkl" VARCHAR(254),
 "npo" VARCHAR(254),
 "katpotr" VARCHAR(12),
 "klassif" SMALLINT,
 "nedootp" SMALLINT,
 "datepered" DATE,
 "timepered" TIME,
 "peredkomu" VARCHAR(64),
 "commentmemo" VARCHAR(254)
);


 
Сергей М. ©   (2006-06-01 12:11) [8]

Замени IBDataset на IBTable и не мучайся.


 
Muzzy   (2006-06-01 12:11) [9]

Было в FAQ, но что это и куда пихать???

http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988623447&n=14


 
Sergey13 ©   (2006-06-01 12:12) [10]

2[6] Muzzy   (01.06.06 12:03)
> Да читал я.
Да ладно заливать то. 8-)

>Ну подскажите че написать-то
В данном случае ничего и писать то не надо. Надо кликнуть правой кнопкой на датасете и в редакторе правильно указать ключевые и обновляемые поля, после чего сгенерировать (кнопку нажать) модифицирующие запросы.


 
Muzzy   (2006-06-01 12:15) [11]


> В данном случае ничего и писать то не надо. Надо кликнуть
> правой кнопкой на датасете и в редакторе правильно указать
> ключевые и обновляемые поля, после чего сгенерировать (кнопку
> нажать) модифицирующие запросы.

Блин! А про это в книжке не сказано!


 
Muzzy   (2006-06-01 13:38) [12]


> В данном случае ничего и писать то не надо. Надо кликнуть
> правой кнопкой на датасете и в редакторе правильно указать
> ключевые и обновляемые поля, после чего сгенерировать (кнопку
> нажать) модифицирующие запросы.

Ну сгенерил, вот что получилось:

insert into JOTKL
 (npp, fidname, dateotkl, timeotkl, datevkl, timevkl, lengthotkl, priotkl,
  npo, katpotr, klassif, nedootp, datepered, timepered, peredkomu, commentmemo)
values
 (:npp, :fidname, :dateotkl, :timeotkl, :datevkl, :timevkl, :lengthotkl,
  :priotkl, :npo, :katpotr, :klassif, :nedootp, :datepered, :timepered,
  :peredkomu, :commentmemo)

Выдает:
Column unknow NPP"
SQL error code = -206.

И что дальше?


 
Desdechado ©   (2006-06-01 13:41) [13]

судя по скрипту таблицы - БД в 3-м диалекте
а в нем важен регистр символов для имен, если они стоят в кавычках
поэтому нет поля NPP, но есть "npp"
подправь INSERT кавычками для полей


 
dolmat   (2006-06-02 09:30) [14]

Возможно свойство Fieds не заполнено
Щелкнуть по IBDataset правой кнопкой мышки, выбрать Fiels editor, потом тойже кнопкой мышки Add All ..



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

Текущий архив: 2006.08.06;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.066 c
6-1143130382
RusGl
2006-03-23 19:13
2006.08.06
idHTTP, SSL и Connection Closed Gracefully


15-1152509704
Ega23
2006-07-10 09:35
2006.08.06
С Днём рождения! 8 июля


2-1152879718
Начинающий 5
2006-07-14 16:21
2006.08.06
Форма


2-1153136297
webpauk
2006-07-17 15:38
2006.08.06
InputBox


2-1152963606
Fantos
2006-07-15 15:40
2006.08.06
динамические объектам