Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[54.145.82.104] |
|
Страницы: (5) 1 [2] 3 4 ... Последняя » все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
я же говорил чтобы ты почитал чтонибудь насчет базы данных. без разницы на какую, возьми хотябы на Access (просто с ней работать будет проще так как на XP и выше она идет на борту)
и там будет расказано как работать с данными и тд. просто не охотя цытировать тут данные которые ты можеш найти в любой книге. |
Сообщ.
#18
,
|
|
|
Да кстате имеенно эту справку скачал откудото из нета осваиваю... и ещё какието...
Но у меня такой вопрос, у меня есть дбгрид в котором я выделяю строки целиком, как сделать чтоб при нажатие на энтер или при двойном щелчке мыши на выделенной строке происходило некое действие, к примеру открывалось новое окно и туда передавались в переменных данные текущей строки из базы. Я так понимаю это работа с базой из кода, но как узнать на какой строке стоит курсор дбгрида? Как вообще активировать на строке дбгрида мыш и энтер? И ситуация зеркальная, рядом с дбгридом есть кнопка, при нажатии на которую необходимо менять в первой колонке в выделенной курсором строке 1 на ноль или обратно в зависимости от имеющегося значения. Как узнать при нажатии на эту кнопкцу на какой строке стоит курсор дбгрида. |
Сообщ.
#19
,
|
|
|
Цитата qivi @ Да кстате имеенно эту справку скачал откудото из нета осваиваю... и ещё какието... Но у меня такой вопрос, у меня есть дбгрид в котором я выделяю строки целиком, как сделать чтоб при нажатие на энтер или при двойном щелчке мыши на выделенной строке происходило некое действие, к примеру открывалось новое окно и туда передавались в переменных данные текущей строки из базы. Я так понимаю это работа с базой из кода, но как узнать на какой строке стоит курсор дбгрида? Как вообще активировать на строке дбгрида мыш и энтер? И ситуация зеркальная, рядом с дбгридом есть кнопка, при нажатии на которую необходимо менять в первой колонке в выделенной курсором строке 1 на ноль или обратно в зависимости от имеющегося значения. Как узнать при нажатии на эту кнопкцу на какой строке стоит курсор дбгрида. Елементарно ватсон. Выделяеш в гриде нужную строку мышей а потом по нажатию на кнопку либо по двойному клику мышей выдираеш из VolgaTable1 VolgaTable1.fields[0].AsBoolean := not VolgaTable1.fields[0].AsBoolean; // манипулирует с 1 и 0 DBGrid сам активизирует нужную запись в таблице во время выделения ее в гриде. |
Сообщ.
#20
,
|
|
|
Пожалуйста можно немного поподробнее.
Что значит эта строка? Как активировать мыш и энтер? Как использовать внешнюю кнопку? |
Сообщ.
#21
,
|
|
|
Цитата qivi @ Просто кусок кода ))Что значит эта строка? Цитата qivi @ в DBGrid-е есть собития для миши и кнопокКак активировать мыш и энтер? Цитата qivi @ обычно как и всегда.Как использовать внешнюю кнопку? просто когда ты выделяеш строку в гриде то онаже автоматически выделяется в таблице (грид сам ее выделяет для тебя) тебе достаточно обратится к записям и получить их или изменить (точно также как и при создании записи) только для того чтобы изменить запись тебе нужно ее открыть на редактирования а потом сохранить после редактирования. на чтение этого всего делать не нужно только получать данные и все |
Сообщ.
#22
,
|
|
|
if IBV.fields[0].AsInteger=0 then IBV.fields[0].AsInteger:=1 else IBV.fields[0].AsInteger:=0; IBV.Post; При нажатии на кнопку с этим кодом выдаёт сообщение об ошибке такого содержания: IBV: Table is not in edit or insert mode. Правильно ли я понимаю что это связанно с тем что в дбгриде отключено редактирование? Как сделать чтоб в дбгриде редактировать было нельзя а из кода можно. И ещё такой момент, после запуска программы в дбгриде невыделено ни одной строки, при нажатии этой кнопки прогу напроч перекорячивает, как сделать чтоб первая строка по умолчанию была выделена при запуске? |
Сообщ.
#23
,
|
|
|
канешно будет ругатся. ну вот почему люди такие не внимательные. ведь я четко написал
Цитата ViktorXP @ тоесть только для того чтобы изменить запись тебе нужно ее открыть на редактирования а потом сохранить после редактирования. IBV.Edit; // делаеш изминения IBV.Post; Цитата qivi @ как сделать чтоб первая строка по умолчанию была выделена при запуске? после запуска программы зделай IBV.First; Добавлено вабще настройки грида не влияют на таблицу. он вабще идет как показ того что есть в таблице. и програмно всегда топай в таблицу а не в грид ибо лезть в грид и чтото там менять в данных есть плохой тон программирования |
Сообщ.
#24
,
|
|
|
IBV.Edit; if IBV.fields[0].AsInteger=0 then IBV.fields[0].AsInteger:=1 else IBV.fields[0].AsInteger:=0; IBV.Post; IBV.SaveToFile('IBV.b'); ТОКА В ФАЙЛЕ НЕ СОХРАНЯЕТСЯ?!! Хотя в гриде изменения отображаються. Ой блин разобрался... скопировал из примера выше по форуму... расширение не b а d |
Сообщ.
#25
,
|
|
|
Дошол в своих изысканиях с базой до фильтрации и поиска... Как можно дбгрид заставить отображать только строки соответствующие определённым харрактеристикам? Как заставить дбгрид вывести базу не в порядке существующих в ней записей, а скаджем объединяя строки по некому признаку, допустим по однотипному (нескольких видов) содержимому колонки раздел?
|
Сообщ.
#26
,
|
|
|
читай книги. поищи библию программиста. там офигенно все написано.
|
Сообщ.
#27
,
|
|
|
Установил на форму компонент VolgaQvery, в свойстве MasterSource выставил значение VolgaIBV (так называеться мой TVolgaDBGrid). Далее по мативом вышеупомянутой книги я попытался изобразить следующее:
with Form1.VQ do begin SQL.Clear; SQL.Add('SELECT Pole1,Pole2,Pole3,Pole4,Pole5'); SQL.Add('FROM "IBV.d"'); SQL.Add('WHERE'); SQL.Add('(Pole1=1)'); SQL.Add('ORDER BY Pole2,Pole3'); Open; end; Заложив этот код под кнопку... компилируеться но при нажатии соответствующе кнопки выдаёт сообщение об ошибке. Что не так??? |
Сообщ.
#28
,
|
|
|
Ошибку в студию!!!
Цитата qivi @ with Form1.VQ do begin SQL.Clear; SQL.Add('SELECT Pole1,Pole2,Pole3,Pole4,Pole5'); SQL.Add('FROM "IBV.d"'); SQL.Add('WHERE'); SQL.Add('(Pole1=1)'); SQL.Add('ORDER BY Pole2,Pole3'); Open; end; Надо наверно так close; SQL.Clear; SQL.Add('SELECT Pole1,Pole2,Pole3,Pole4,Pole5 FROM "IBV.d" WHERE Pole1="1" ORDER BY Pole2,Pole3'); open; Добавлено Да и значения в запрос лучше передавать через параметр. В данном случаи через параметр передать "1". |
Сообщ.
#29
,
|
|
|
Цитата qivi @ но при нажатии соответствующе кнопки выдаёт сообщение об ошибке На "кофейной гуще" гадать будем? |
Сообщ.
#30
,
|
|
|
close; SQL.Clear; SQL.Add('SELECT Pole1,Pole2,Pole3,Pole4,Pole5 FROM "IBV.d" WHERE Pole1="1" ORDER BY Pole2,Pole3'); open; Сообщение об ошибке: "Error in comparison expression" (ошибка в выражении сравнения) Нет суть в чём то другом... Может он к базе не подключется или ещё что... Как создать запрос именно с Волговскими компонентами? |