Форум: "Базы";
Текущий архив: 2003.06.05;
Скачать: [xml.tar.bz2];
ВнизНе могу получить данные записи для редактирования Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.01 c