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

Вниз

Не могу получить данные записи для редактирования   Найти похожие ветки 

 
Fuelfire   (2003-05-14 07:14) [0]

Уважаемые! Помогите разобраться. На главной форме есть DBGrid, ComboBox, Query и DataSource. Они понятно завязаны друг на друге для того, чтобы по выбору значения из выпадающего списка в гриде показывались выбранные по LIKE значения. По двойному клику на ячейке грида осуществляется переход на форму редактирования. Обе формы используют один и тот же датасоурс. Так вот у меня при переходе на форму редактирования выдаются пустые поля. Может нужно явно передавать номер записи?


 
Виталий Панасенко   (2003-05-14 08:35) [1]

А DBEdit"ы связаны с соответствующими полями ?


 
Fuelfire   (2003-05-14 08:45) [2]

Да...В FildName всех полей выбираю поля, которые есть в Query..


 
Sergey13 ©   (2003-05-14 09:05) [3]

2Fuelfire (14.05.03 08:45)
ИМХО, надо смотреть нет ли где какого то переоткрытия датасета при вызове/создании/показе формы редактирования.


 
Соловьев ©   (2003-05-14 09:55) [4]

используй DataModule.


 
Fuelfire   (2003-05-14 11:14) [5]

Да, использую DataModule и ссылаюсь на его ДатаСоурс..Мне кажется, что я накосячил в самом запросе..Сегодня загоню его в ISQL и проверю дома. Но в любом случае спасибо за советы, ребята...


 
Fuelfire   (2003-05-15 10:17) [6]

И снова я...Изучение BDE затянулось на создании обычного справочника...Свой SQL-запрос проверил..Все работает чин-чинарем:
SELECT Games.ID, Games.Name, Games.GenreID, Games.Played, Games.Publishier, Games.Developer, Games.GameYear, Games.Net, Games.Playability, Games.Graphics, Games.Sound, Games.Solution, Games.Cheat, Genres.GenreName, Firms.FirmName, Articles.GameID, Articles.Info
FROM "Games.DB" Games LEFT OUTER JOIN "Firms.DB" Firms on (Games.Developer = Firms.ID) LEFT OUTER JOIN "Genres.DB" Genres ON (Games.GenreID = Genres.ID)
LEFT OUTER JOIN "Articles.DB" Articles ON (Games.ID = Articles.GameID) WHERE (Name LIKE :Name_param)

В Name_param подставляю значение выбранного Node в TreeView:
Query1.Close;
If TreeView1.Items[0].Selected = true then
begin
par:="%"
end else
par:=String(TreeView1.Selected.Text) + "%";
Query1.ParamByName("Name_param").AsString := par;
Query1.Open

При переходе по двойному клику на форму редактирования Form7.ShowModal; получаю пустую форму.. Все поля завязаны через DataSource: DataModule2.SourceQuery. Может и на форме редактирования запросу нужно повторно скармливать параметр?


 
Наталия ©   (2003-05-15 10:21) [7]

На форме редактирования какие компоненты расположены? Как связаны с DataSource?


 
Соловьев ©   (2003-05-15 10:22) [8]


> При переходе по двойному клику на форму редактирования Form7.ShowModal;
> получаю пустую форму

кажется догнал.. когда ты дважды кликаешь у тебя нвреное НД переходит в режим редактирования... сделай у грида ReadOnly=true.
Или попробуй при активации формы проверять, что если
нд.State in [dsEdit], то
нд.Post;
нд.Edit;


 
Fuelfire   (2003-05-15 10:26) [9]

На форме редактирования расположено 6 DBEditBox... DataSource - DataModule2.SourceQuery, DataField - соответствующие поля из Query...2 ДБчекбокса (завязаны также) и 2 DBMemo (Blob), связанных аналогично...Ну и кнопка "Сохранить"...


 
Fuelfire   (2003-05-15 10:31) [10]

У Грида изначально задумывалось ReadOnly=True...У Грида В событии DblClick одна строка Form7.ShowModal; Ну и еще я пробовал вытащить номер записи n:=Query1.RecNo;


 
Соловьев ©   (2003-05-15 10:34) [11]


> Fuelfire (15.05.03 10:31

просто по нажатии кнопки попробуй.


 
Fuelfire   (2003-05-15 10:39) [12]

Добавил кнопку на главную форму, навесил событие - тоже самое...Похоже проблема не в этом...С помощью дерева я могу выбрать записи в Гриде на нужную букву...А вот как их редактировать? Пока еще не пойму..С формой - ботва какая-то получается..


 
Соловьев ©   (2003-05-15 10:40) [13]


> Добавил кнопку на главную форму, навесил событие - тоже
> самое...

нд в каком состоянии?


 
Fuelfire   (2003-05-15 10:58) [14]

Если под НД понимать набор данных (я просто недавно на форуме и недавно соответственно ковыряюсь в Делфи), то у DataSource свойство Enable = True...У Query Active=True


 
Соловьев ©   (2003-05-15 11:10) [15]

состояние, я имею в виду - dsInsert, dsEdit и тому подобное...


 
Fuelfire   (2003-05-15 11:14) [16]

Все....Догнал в чем бага...К сожалению, не знаю Вашего имени тов. Соловьев...Но - большое человеческое спасибо..


 
Соловьев ©   (2003-05-15 11:18) [17]


> Все....Догнал в чем бага...

ну и вчем?


 
Fuelfire   (2003-05-15 11:23) [18]

Не смейтесь сильно....На форме редактирования то я ссылался на DataModule, где лежат Query1 и SourceQuery...А на главной - на Query1 и SourceQuery, абсолютно идентичные, но расположенные на форме...Вот тут и была собака зарыта...


 
Соловьев ©   (2003-05-15 11:25) [19]


> Не смейтесь сильно....

сам таким был... ну ничего главное что догнал...


 
Fuelfire   (2003-05-15 13:13) [20]

Еще один вопросик: на форме редактирования выдаются данные по запросу...Столкнулся с тем, что в них ничего не введешь...Что в этом случае можно сделать?


 
Соловьев ©   (2003-05-15 13:17) [21]


> SELECT Games.ID, Games.Name, Games.GenreID, Games.Played,
> Games.Publishier, Games.Developer, Games.GameYear, Games.Net,
> Games.Playability, Games.Graphics, Games.Sound, Games.Solution,
> Games.Cheat, Genres.GenreName, Firms.FirmName, Articles.GameID,
> Articles.Info
> FROM "Games.DB" Games LEFT OUTER JOIN "Firms.DB" Firms on
> (Games.Developer = Firms.ID) LEFT OUTER JOIN "Genres.DB"
> Genres ON (Games.GenreID = Genres.ID)
> LEFT OUTER JOIN "Articles.DB" Articles ON (Games.ID = Articles.GameID)
> WHERE (Name LIKE :Name_param)

этот?
TUpdateSQL


 
Fuelfire   (2003-05-15 13:24) [22]

Можно подробнее объяснить? Назначить Query1 тип TUpdateSQL? Мне кажется я не так понял...


 
Соловьев ©   (2003-05-15 13:25) [23]

TBDEDataSet.UpdateObject


 
Fuelfire   (2003-05-15 13:45) [24]

Ругается при компиляции на строку DataModule2.Query1.UpdateObject;
"Statement expected, but expression of type "TDataSetUpdateObject" found"


 
Fuelfire   (2003-05-15 14:17) [25]

Попробовал еще так:
DataModule2.Query1.CanModify:=true;
Ругается, что невозможно применить к ReadOnly свойству.


 
Соловьев ©   (2003-05-15 14:51) [26]


> Ругается при компиляции на строку DataModule2.Query1.UpdateObject;

в дизайн-тайме надо выставить это свойство у query


 
Fuelfire   (2003-05-15 14:57) [27]

Так вот в том и дело, что я не знаю как его выставить...В хэлпе написано, что в это свойство загоняется название запроса....


 
Соловьев ©   (2003-05-15 15:00) [28]


> Так вот в том и дело, что я не знаю как его выставить...

мышкой, предварительно положив на форму TUpdateSQL...


 
Fuelfire   (2003-05-15 15:04) [29]

Сделал...А какое из свойств заполнять для UpdateSQL? Modify? Delete? Insert? И самое главное что туда нужно занести?


 
Соловьев ©   (2003-05-15 15:08) [30]


> Fuelfire (15.05.03 15:04)

двойной клик на TUpdateSQL...



 
Fuelfire   (2003-05-16 07:11) [31]

Поначалу ничего не произошло... А после изменения на истинное свойства CachedUpdate - все заработало...Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2003.06.05;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.015 c
14-13442
zeratul_pr
2003-05-20 01:13
2003.06.05
ищем чистый ДОС


1-13247
Felixx
2003-05-22 13:21
2003.06.05
TPopupActionBar


1-13222
veb
2003-05-27 11:36
2003.06.05
И снова о свойствах формы


14-13394
nevalex
2003-05-13 15:41
2003.06.05
Как сделать чтоб работала моя процедура


3-13002
Lion
2003-05-18 23:35
2003.06.05
Select Into ?