Форум: "Базы";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.012 c