| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > как в dbgrid удалить строку с известным номером |
| Автор: blackDancer 29.4.2009, 21:09 | ||
как в dbgrid удалить строку с известным номером?
не работает |
| Автор: Alca 29.4.2009, 23:38 |
| давай больше кода |
| Автор: Данкинг 29.4.2009, 23:43 |
В DBGrid- никак. Почему не работает? Этот код должен удалять ту строку, которая активна в Dataset. |
| Автор: blackDancer 29.4.2009, 23:44 | ||
Какой нафик код. Как удалить в dbgrid строку с известным номером? Какой тут может быть код я просто привёл пример что так не работает. Есть dbgrid в нём что то есть надо удалить например третью строку и всё. Как? |
| Автор: Alca 29.4.2009, 23:49 |
| а DBNavigator удаляет? |
| Автор: Alca 29.4.2009, 23:50 |
| Если надо удалять неактивную запись, то надо юзать SQL. Добавлено через 1 минуту и 7 секунд Либо бегать по датасету |
| Автор: Dmi3ev 30.4.2009, 00:41 | ||
У тебя тоже самое! Но это удалит ту запись, на которой, в данный момент бегунок... |
| Автор: SAnatoliy 30.4.2009, 10:09 |
| У меня работает так. при выделении строк/и. if(DBGrid1->SelectedRows) { DBGrid1->SelectedRows->Delete(); } else { ShowMessage("Выделите запись"); } |
| Автор: blackDancer 30.4.2009, 11:14 | ||
Делаю вот так при вызове данной функции прога виснет? |
| Автор: Alca 30.4.2009, 11:22 |
| |
| Автор: Лапоть 30.4.2009, 11:28 |
| Блин! Ну когда ж этот перец (да и не только он) поймёт, что в гриде данные только отображаются! |
| Автор: Данкинг 30.4.2009, 11:34 | ||||
Это вопрос? Отвечаю: да, виснет.
(в синтаксисе Билдера могу ошибаться, но суть такая) Но вообще-то боюсь, что при больших объёмах такой код сильно замедлит работу программы. И лучше использовать запрос (delete from ...).
Когда-нибудь: мы же верим в лучшее! |
| Автор: blackDancer 30.4.2009, 11:43 | ||||||||
Так не работает вообше даже не запускается, и какая разница что так как ты предложил и я сделал нет разницы только первый вариант сто пудов работает:
Это пример его использования вот. |
| Автор: Dmi3ev 30.4.2009, 11:50 |
| blackDancer, мы тебе все вот че пытаемся объяснить: Вот упрощенная схема (без разбора конкретных технологий и тд и тп) ________ твоя БД | ________| Таблица1|-------------------->Table1-------------->DataSource1------------->DBGrid1 ________| | Таблица2| |----------------->DataSource2------------->DBGrid2 ________| попробуй при таком раскладе удалять все в DBGrid1! в DBGrid2 ничего не изменится... потому как DBGrid - это компонент для визуально отображения данных... Понимаешь??? в БД при этом ничего не случится!!! Для того чтобы удалять данные в БД, в данном случае, надо работать с методами Table1... |
| Автор: blackDancer 30.4.2009, 11:52 |
| Короче так раз вы говорите что из DBGrid нельзя удалить то как мне сделать вот что? Задумка этого в том что: 1) на одной форме делается поиск по базе 2) затем юзер нажимает кнопку перейти на другую форму для графического представления всего того что он нашёл 3) нажимает отобразить, отображаются все объекты на карте 4) и наконец то из за чего я уже всех зае..... я указываю радиус (круг для выделения) и все объекты которые попали в этот радиус я должен оставить на карте а остальные удалить. Как я хотел это сделать пройди по DBGrid брать значения для пересчёта(это я знаю как сделать), поставить условие если не выполняется удалить строгу в Гриде если выполняется то оставить, затем взять данные из ДБГрида и заново их отрисовать.ВОТ! Что скажете? |
| Автор: Dmi3ev 30.4.2009, 11:52 |
| ЗЫ, а если тебе действительно надо удалять данные из DBGrid и никакой БД не существует, то есть StringGrid ))) |
| Автор: blackDancer 30.4.2009, 11:56 | ||||
Блин мне не нужно что то удалить из базы, если бы я хотел что сделать с базой я бы это сделал дахе не стал ничего писать вам. Добавлено через 2 минуты и 5 секунд
Блин мне не нужно что то удалить из базы, если бы я хотел что сделать с базой я бы это сделал дахе не стал ничего писать вам. |
| Автор: Dmi3ev 30.4.2009, 11:59 | ||
проделай тоже самое (раз знаешь как), но только не с гридом, а с Table, Query или где у тебя данные... я хз... Грид оставь в покое... Забудь про него... Не знаю уже как объяснить! Допустим, ты открыл фотошоп и хочешь что-то там нарисовать... Ты берешь маркер и начинаешь на мониторе фигачить (сейчас ты именно так делаешь)... но монитор для отображения служит, а не для рисования... Для рисования есть мышка или другие устройства ... Хз, если и так непонятно... то... |
| Автор: blackDancer 30.4.2009, 11:59 | ||
Блин мне не надо из базы нихера удалять, если я бы хотел сделать это то даже не стал бы вас ни о чем спрашивать. |
| Автор: Dmi3ev 30.4.2009, 12:00 | ||
ок, тогда тебе нужен запрос, которые выберет тебе записи которые удовлетворяют условию... а потом его результат отображать в Гриде |
| Автор: blackDancer 30.4.2009, 12:05 | ||
Если писать запрос то ко всей базе, а мне надо из того что уже выбрали и ОТОБРАЗИЛИ в гриде. Надо обработать данные которые отображаются в ГРИДЕ. КАК? |
| Автор: Dmi3ev 30.4.2009, 12:26 |
| blackDancer, ты сам пойми, что тебе надо |
| Автор: Лапоть 30.4.2009, 14:30 | ||
drop database ![]() |
| Автор: Данкинг 30.4.2009, 14:34 |
Сам определись, что тебе нужно, а потом другим мозги компостируй. |
| Автор: Alca 30.4.2009, 14:37 |
| |