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

Вниз

Не могу вносить данные в НД   Найти похожие ветки 

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

Наверх




Память: 0.49 MB
Время: 0.016 c
14-10358
shark
2003-07-17 21:01
2003.08.04
online RPG


1-10254
Still Swamp
2003-07-21 10:09
2003.08.04
Как преобразовать адрес процедуры


1-10263
aaa3aaa
2003-07-21 09:51
2003.08.04
Печать отчета на подложке


1-10293
Nick2000
2003-07-22 11:04
2003.08.04
Как добавить текст к изображению.


1-10210
furious_gnom
2003-07-22 20:10
2003.08.04
Строки в прототипах функций OLE объекта