Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DBGrid не входит в режим редактирования 
V
    Опции темы
ksili
Дата 27.3.2008, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Связка
Код

DataSet1->Database = Database1
DataSource1->DataSet = DataSet1
DBGrid1->DataSource = DataSource1
настроена нормально. Таблица отображается как надо. Но почему-то не редактируется, хотя
Код

DataSource1->AutoEdit = true
DBGrid1->ReadOnly = false
DataSet1->AutoCommit = true
DBGrid1->Options->dgEditing = true
DBGrid1->Options->dgAlwaysShowEditor = true

Никаких исключений не просходит, просто не редактируется


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
korian
Дата 27.3.2008, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



update sql заполнен?
PM   Вверх
ksili
Дата 27.3.2008, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Вот сейчас начал заполнять. И редактирование появилось!!! Заполняю так:
Код

update AuthOut set LOGIN=:P_LOGIN, OUTPHONE=:P_OUTPHONE

Причем вот эти =:P_LOGIN и :P_OUTPHONE от фонаря, потому что где то так видел. из-за этого после перехода на другую строку происходит исключение. Что именно надо писать вместо этих параметров?



--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
korian
Дата 27.3.2008, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



ммм, я не знаю как оно там у вас, под FireBird'ом примерно так:
Код

UPDATE VIEW_GENERAL
SET 
    DATA = :DATA,
    COMMENT = :COMMENT,
WHERE
    ID_KEY = :OLD_ID_KEY

я так понимаю, что :DATA - это название FieldName в программе с ":"


Это сообщение отредактировал(а) korian - 27.3.2008, 14:35
PM   Вверх
ksili
Дата 27.3.2008, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Я тоже под FireBird'ом.
Нашёл, что можно прописать в 
DataSet1->AutoUpdateOptions->ParamsToFieldLinks = 
Код

LOGIN=P_LOGIN
PASSWORD=P_PASSWORD
OUTPHONE=P_OUTPHONE

Исключения уже не происходит, но при изменении какого-нибудь поля LOGIN, логины всех записей в таблице просто заnullяются.
при указании KeyField что-то ругается при компиляции, что не может сгенерировать RefreshSQL, т.к. нет полей для таблицы AuthOut

Это сообщение отредактировал(а) ksili - 27.3.2008, 15:14


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
korian
Дата 27.3.2008, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



если под FireBird'ом, то там вообще проблем нету, он сам может генерировать Update, Delete, Refresh запросыы по Select запросу.
в большинстве случаев, их чутка подправить (а иногда и править не надо) и все.

PM   Вверх
ksili
Дата 27.3.2008, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Я пытался вызвать GenerateSQLs(), но возникает исключение

Добавлено через 3 минуты и 32 секунды
пишет
unable to generate DeleteSQL because fields for "AuthOut" do not exists in dataset, хотя в датасет добавлены все поля таблицы и ещё два поля lookup

Вообще здесь играет роль регистр, а то я привык, что в sql регистр неважен?


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
korian
Дата 27.3.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



Цитата(ksili @  27.3.2008,  13:48 Найти цитируемый пост)
Вообще здесь играет роль регистр, а то я привык, что в sql регистр неважен? 

это от базы зависит и от настроек, по уполчанию регистр не важен.

Цитата(ksili @  27.3.2008,  13:48 Найти цитируемый пост)
unable to generate DeleteSQL because fields for "AuthOut" do not exists in dataset

запрос DeleteSQL пуст перед генерацией?
и покажите чтоли Select запрос и как таблица в базе выглядит.
PM   Вверх
ksili
Дата 27.3.2008, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



SelectSQL:
Код

select * from AuthOut

таблица
Код

CREATE TABLE AUTHOUT (
    AUTHID       INTEGER NOT NULL,
    LOGIN        VARCHAR(80),
    "PASSWORD"   VARCHAR(80),
    OUTPHONE     INTEGER NOT NULL,
    OUTANI       INTEGER NOT NULL,
    MAXCHAN      INTEGER,
    DESCRIPTION  VARCHAR(50)
);

CREATE GENERATOR GEN_AUTHOUT_ID;

ALTER TABLE AUTHOUT ADD CONSTRAINT PK_AUTHOUT PRIMARY KEY (AUTHID);

ALTER TABLE AUTHOUT ADD CONSTRAINT FK_AUTHOUT_1 FOREIGN KEY (OUTPHONE) REFERENCES TRANSFORMRULES (TRANSFORMID);
ALTER TABLE AUTHOUT ADD CONSTRAINT FK_AUTHOUT_2 FOREIGN KEY (OUTANI) REFERENCES TRANSFORMRULES (TRANSFORMID);


Поле AUTHID в таблице не отображаю, вместо OUTPHONE и OUTANI пытаюсь приделать lookup'ы

Это сообщение отредактировал(а) ksili - 27.3.2008, 15:01


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
korian
Дата 27.3.2008, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



я так понимаю надо полный SQL запрос писать (* - не катит).
а лучше выбрать нужную таблицу и нажать Generate SQL
потом переходим на TAB Generate modify SQLs, выбираем ID, выбираем изменяемые поля и Generate SQLs

Добавлено через 2 минуты и 18 секунд
хотя у меня генерирует и со *...

Добавлено через 4 минуты и 30 секунд
Цитата(ksili @  27.3.2008,  14:01 Найти цитируемый пост)
Поле AUTHID в таблице не отображаю

это вы делаете по средствам DBGrid'а?
если по средствам DataSet - тогда все правильно, что нифига не работает  smile 
PM   Вверх
ksili
Дата 27.3.2008, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Везде пишут нажать GenerateSQLs ))) Но я чота не нашёл такой кнопки  smile  Где эта магическая кнопка?

Пока вручную пишу UpdateSQL:
Код

update AuthOut set 
LOGIN=:P_LOGIN,
"PASSWORD"=:P_PASSWORD

where AUTHID=:P_AUTHID

предварительно прописав пееменные в DataSet1->AutoUpdateOptions->ParamsToFieldLinks. Исключений уже нету. Но в базе почему то не сохраняется, хотя в гриде сохраняется.


Цитата(korian @  27.3.2008,  19:09 Найти цитируемый пост)
я так понимаю надо полный SQL запрос писать (* - не катит).

попробую все поля прописать

Добавлено через 4 минуты и 32 секунды
сделал селект без звёздочки. Программно вызываю GenerateSQLs, теперь не взникает исключения (что он там генерит не проверял). Но в базе пока всё равно не сохраняется


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
korian
Дата 27.3.2008, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



магическая кнопка на рисунке  smile 

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  3.JPG 40,13 Kb
PM   Вверх
korian
Дата 27.3.2008, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



и еще одна магическая кнопка

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  4.JPG 39,61 Kb
PM   Вверх
ksili
Дата 27.3.2008, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



У меня такого окошка нигде нету. Наверно это фича Делфи

Добавлено через 8 минут и 21 секунду
После моего программного GenerateSQLs UpdateSQL не изменяется (свойства AutoRewriteSQLs и CanChangeSQLs установлены). Наверно это из-за того, что я не указал KeyFields. Но если его указать, то при GenerateSQLs возникает все та же ошибка unable to generate RefreshSQL because fields for "AuthOut" do not exists in dataset


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
ksili
Дата 27.3.2008, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



Стал сохранять, когда имя таблицы во всех местах привёл  верхнему регистру  smile 


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0847 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.