Форум: "Базы";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];
ВнизНе могу вносить данные в НД Найти похожие ветки
← →
Spawn (2003-07-13 07:38) [0]Есть три таблицы, соединенные как "один ко многим", каждая из них подключена к отдельной DBGrid. Проблема в том, что при подключении к серверу я не могу редактировать данные гридов. То есть фокус ячейка получает, но реакции на внесение данных ни какой. Хотя в еще одной таблице, находящейся на другом TabSheet, все ок .В чем может быть дело? Заранее спасибо.
← →
Alexandr (2003-07-13 08:47) [1]в запросах на изменение
← →
Spawn (2003-07-13 09:07) [2]Я вообще не могу вводить данные в сетку. Фокус ячейки получают но реакции на ввод данных ни какой. Как будто в OnKeyDown Key сьавится в 0.
← →
Alexandr (2003-07-13 09:33) [3]ну нельзя редактировать DataSet
почему?
1) через какие компоненты работаешь?
2) запросы на изменение прописал? Правильно?
и прочее...
ну не может оно само.
← →
Spawn (2003-07-13 10:04) [4]Использую InterBase(компоненты IBDataBase+IBTransaction+IBDataSet+DataSource, для связанных таблиц свои IBDataSet и DataSource. В IBDataSet-ах сылки на DataSource связанных таблиц). Запросы сгенерированны IBDataSet.
← →
VID (2003-07-14 00:57) [5]варианты:
рид онли полей
рид онли грида
наличие update-sql у всех датасетов
свойство AutoEdit у датасоурсов
... пока что в голову больше ничего не пришло ...
← →
Spawn (2003-07-14 12:23) [6]Ни как не могу понять в чем проблема :((.
Вот так построена гланая таблица
/* Table: EQUAL, Owner: SYSDBA */
CREATE TABLE "EQUAL"
(
"ID" INTEGER NOT NULL,
"NAME" VARCHAR(100) CHARACTER SET WIN1251,
"TYPES" VARCHAR(100) CHARACTER SET WIN1251,
"PICTURE" BLOB SUB_TYPE 0 SEGMENT SIZE 80,
"MNAME" VARCHAR(100) CHARACTER SET WIN1251,
"MFORM" CHAR(50) CHARACTER SET WIN1251,
"MSITY" CHAR(50) CHARACTER SET WIN1251,
"SUPPLER" VARCHAR(100) CHARACTER SET WIN1251,
"SERTIF" VARCHAR(100) CHARACTER SET WIN1251,
"INTTYPE" BLOB SUB_TYPE 0 SEGMENT SIZE 80,
"PASPORT" BLOB SUB_TYPE 0 SEGMENT SIZE 80,
"METHOD" BLOB SUB_TYPE 0 SEGMENT SIZE 80,
"OBJECT" VARCHAR(150) CHARACTER SET WIN1251,
"MVI" CHAR(50) CHARACTER SET WIN1251,
"PWORK" BLOB SUB_TYPE 0 SEGMENT SIZE 80,
"SIZES" CHAR(50) CHARACTER SET WIN1251,
"CHECKINERV" CHAR(100) CHARACTER SET WIN1251,
"CHECKING" CHAR(50) CHARACTER SET WIN1251,
"MONEY" CHAR(50) CHARACTER SET WIN1251,
PRIMARY KEY ("ID")
);
С ней связана Params:
/* Table: PARAMS, Owner: SYSDBA */
CREATE TABLE "PARAMS"
(
"PID" INTEGER NOT NULL,
"ID" INTEGER NOT NULL,
"PARAM" CHAR(50) CHARACTER SET WIN1251,
"DIAPASONS" CHAR(50) CHARACTER SET WIN1251,
"ERROR" CHAR(50) CHARACTER SET WIN1251,
PRIMARY KEY ("PID")
);
ALTER TABLE "PARAMS" ADD FOREIGN KEY ("ID") REFERENCES EQUAL ("ID") ON UPDATE CASCADE ON DELETE NO ACTION;
C этой таблицей связана SubDiapasons:
/* Table: SUBDIAPASONS, Owner: SYSDBA */
CREATE TABLE "SUBDIAPASONS"
(
"SUBID" INTEGER NOT NULL,
"DIAPASONS" CHAR(50) CHARACTER SET WIN1251,
"SUBERROR" CHAR(50) CHARACTER SET WIN1251,
"ESOURCE" CHAR(50) CHARACTER SET WIN1251,
"ESIZE" CHAR(50) CHARACTER SET WIN1251
);
ALTER TABLE "SUBDIAPASONS" ADD FOREIGN KEY ("SUBID") REFERENCES PARAMS ("PID") ON UPDATE CASCADE ON DELETE NO ACTION;
Для них добавляю три DBGrid-а, IBDataSet-а, DataSource-а. В IBDataSet2.DataSource>DataSource1. В IBDataSet3.DataSource>DataSource2. Для всех IBDataSet-ов генерирую запросы Editor-ом для соответствующих таблиц (Equal, Params, SubDiapasons). Во всех DBGrid-ах ReadOnly стоит в False, в Options.dgEditing=True. Свойство AutoEdit у DataSource-ов в True. Для Гридов созданы колумны. У всех ReadOnly=False;
При всех этих данных я не могу редактировать данные в DBGrid. Причем, делал такую проверку - подключал лишь первую таблицу - тот же еффект. В чем может быть дело?
← →
Spawn (2003-07-14 12:24) [7]Ни как не могу понять в чем проблема :((.
Вот так построена гланая таблица
/* Table: EQUAL, Owner: SYSDBA */
CREATE TABLE "EQUAL"
(
"ID" INTEGER NOT NULL,
"NAME" VARCHAR(100) CHARACTER SET WIN1251,
"TYPES" VARCHAR(100) CHARACTER SET WIN1251,
"PICTURE" BLOB SUB_TYPE 0 SEGMENT SIZE 80,
"MNAME" VARCHAR(100) CHARACTER SET WIN1251,
"MFORM" CHAR(50) CHARACTER SET WIN1251,
"MSITY" CHAR(50) CHARACTER SET WIN1251,
"SUPPLER" VARCHAR(100) CHARACTER SET WIN1251,
"SERTIF" VARCHAR(100) CHARACTER SET WIN1251,
"INTTYPE" BLOB SUB_TYPE 0 SEGMENT SIZE 80,
"PASPORT" BLOB SUB_TYPE 0 SEGMENT SIZE 80,
"METHOD" BLOB SUB_TYPE 0 SEGMENT SIZE 80,
"OBJECT" VARCHAR(150) CHARACTER SET WIN1251,
"MVI" CHAR(50) CHARACTER SET WIN1251,
"PWORK" BLOB SUB_TYPE 0 SEGMENT SIZE 80,
"SIZES" CHAR(50) CHARACTER SET WIN1251,
"CHECKINERV" CHAR(100) CHARACTER SET WIN1251,
"CHECKING" CHAR(50) CHARACTER SET WIN1251,
"MONEY" CHAR(50) CHARACTER SET WIN1251,
PRIMARY KEY ("ID")
);
С ней связана Params:
/* Table: PARAMS, Owner: SYSDBA */
CREATE TABLE "PARAMS"
(
"PID" INTEGER NOT NULL,
"ID" INTEGER NOT NULL,
"PARAM" CHAR(50) CHARACTER SET WIN1251,
"DIAPASONS" CHAR(50) CHARACTER SET WIN1251,
"ERROR" CHAR(50) CHARACTER SET WIN1251,
PRIMARY KEY ("PID")
);
ALTER TABLE "PARAMS" ADD FOREIGN KEY ("ID") REFERENCES EQUAL ("ID") ON UPDATE CASCADE ON DELETE NO ACTION;
C этой таблицей связана SubDiapasons:
/* Table: SUBDIAPASONS, Owner: SYSDBA */
CREATE TABLE "SUBDIAPASONS"
(
"SUBID" INTEGER NOT NULL,
"DIAPASONS" CHAR(50) CHARACTER SET WIN1251,
"SUBERROR" CHAR(50) CHARACTER SET WIN1251,
"ESOURCE" CHAR(50) CHARACTER SET WIN1251,
"ESIZE" CHAR(50) CHARACTER SET WIN1251
);
ALTER TABLE "SUBDIAPASONS" ADD FOREIGN KEY ("SUBID") REFERENCES PARAMS ("PID") ON UPDATE CASCADE ON DELETE NO ACTION;
Для них добавляю три DBGrid-а, IBDataSet-а, DataSource-а. В IBDataSet2.DataSource>DataSource1. В IBDataSet3.DataSource>DataSource2. Для всех IBDataSet-ов генерирую запросы Editor-ом для соответствующих таблиц (Equal, Params, SubDiapasons). Во всех DBGrid-ах ReadOnly стоит в False, в Options.dgEditing=True. Свойство AutoEdit у DataSource-ов в True. Для Гридов созданы колумны. У всех ReadOnly=False;
При всех этих данных я не могу редактировать данные в DBGrid. Причем, делал такую проверку - подключал лишь первую таблицу - тот же еффект. В чем может быть дело?
← →
Spawn (2003-07-14 12:24) [8]Блин (( Сорри. Из за глюка експлорера 2 раза запостил.
← →
MsGuns (2003-07-14 13:09) [9]Для того, чтобы изменения в гридах были доступны, надо прописать в датасетах запросы на удаление-вставку-изменение. Во всех ! При этом для того, чтобы при удалении записи из мастера удалялись все ее "детки", надо либо определить соотв.триггер или каскадное удаление-изменение.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.08.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.022 c