Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.008 c
3-10137
cjiohobaji
2003-07-15 11:33
2003.08.04
получение данных с базы данных?


14-10367
VEG
2003-07-16 13:16
2003.08.04
Проблема с объявлением оператора для var[idx] = val;


1-10289
Ivolg
2003-07-21 13:40
2003.08.04
Анимация


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


14-10356
Igorek
2003-07-18 19:03
2003.08.04
Есть идея - online application development





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