Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Базы данных и репортинг > Удаление выделенной строки из DBGrid БЕЗ Ado |
Автор: Solominka 18.12.2009, 18:33 | ||
Здравствуйте, уже битый день сижу над проблемой удаления выделенной строки из Базы Данных в Delphi через компонент DBGrid. Написала код для очищения всей таблицы, а нужно чтобы удаляло только выделенную строку после нажатия кнопки. Перерыла пол интернета, но везде какие-то ADO-компоненты,а у меня обычные Query... Подскажите пожалуйста, что нужно исправить, чтобы удаляло одну строку? Вот код, удаляющий все записи в таблице и БД:
|
Автор: Solominka 18.12.2009, 19:24 |
Эмм... Если честно ответов на ваши вопросы я не знаю... У меня нет никаких ADO в программе... НИ ЕДИНОГО НЕТ... И с ними НИЧЕГО не работает в моей программе Вот исходники... Интересует форма 3... Там есть кнопка "Удалить заказ", в от к ней надо написать код этого самого удаления строки из таблицы и БД... http://www.sendspace.com/file/kmzd2p Чтобы работало нужно просто скопировать извлечённую папку на диск С. Программа была написана по тому же принципу, что и делались лабораторные работы, поэтому там и нет этих ADO и я не знаю что это такое.... |
Автор: Данкинг 18.12.2009, 20:11 | ||
И какая СУБД не знаешь? ![]() ![]() ![]() ![]() Добавлено @ 20:13
Да, нам это о многом говорит. ![]() |
Автор: Solominka 18.12.2009, 20:19 |
Способ доступа - BDE... База данных Microsoft SQL Server 2005 кажется... К сведению, я заочница и нам вообще ничего не объясняют, а читать умные книжки, в которых всё заумным языком написано и ничерта не понятно - у меня нет времени. Программа НАПИСАНА, просто нужно исправить пару вещей которые РАБОТАЮТ, просто не совсем так как хотелось бы... |
Автор: Данкинг 18.12.2009, 20:26 | ||||
Извиняюсь за. ![]() ![]() А в примере - Парадокс. ![]() Ах, ничего не объясняют, только спрашивают. Ужас. ![]()
А зачем тебе высшее образование, если ты не только ничего не знаешь, но и не стремишься к знаниям?
"Если не можешь исправить вещи - измени своё отношение к ним". ![]() |
Автор: Solominka 18.12.2009, 20:28 |
С этими двумя ошибками я сижу уже двое суток... Данкинг, вижу что вам весело, вы только стебётесь, вместо того чтобы хотя бы попытаться помочь... Рада за Вас... |
Автор: Данкинг 18.12.2009, 20:30 |
А с семью ошибками бы недельку посидела? ![]() Да я бы рад попытаться, кабы знал, в чём. |
Автор: Solominka 18.12.2009, 20:46 |
Данкинг, я и с двумя ошибками могу сидеть неделю... Программу тем не менее я писала сама всю... А что, проблема описана вполне подробно... А то, что вы не юзаете Прадокс и у вас нет Диска С, это уже другой вопрос... |
Автор: chip_and_dayl 18.12.2009, 21:33 | ||
Добавлено через 2 минуты и 1 секунду в кнопке удалить ставишь этот код, свой удаляй |
Автор: Solominka 18.12.2009, 21:41 | ||
chip_and_dayl, благодарю! Всё подогнала под свою БД, всё работает! Очень рада! Зы: я уже сама всё поменяла, что где надо))) p.S. С меня 2 торта ![]() А можно ещё маленький, наверное оочень глупый, но всё же вопрос, касающийся прошлой задачи... вот там мне надо чтобы сумма при удалении из строки в StringGrid пересчитывалась, т.е. отнималась та сумма, ячейки которая удаляется... Как правильно то сделать? Я наивно полагала, что можно сделать так:
Но оно как-то не так считает :( |
Автор: chip_and_dayl 18.12.2009, 21:50 |
ну да, удалять нужно сумму, которая убирается со СтрингГрид, а не ДбГрид st:=st-StringGrid1.Cells[номер столбика где сумма]; Edit1.Text:=IntToStr(st)+' руб.' |
Автор: Данкинг 18.12.2009, 21:50 | ||
Ну-ну.
По поводу парадокса - согласен, а по поводу диска C: - нет. Если ты напишешь программу, принесёшь её клиенту, а там выяснится, что диска С или нет, или нет прав на запись на него (часто системный диск защищают от глупых юзверей), то что ответишь на вопрос "почему ваша программа не работает"? В идеале, должен существовать конфигурационный файл, в котором прописан путь к БД. Добавлено через 1 минуту и 40 секунд Кстати, тема " Удаление выделенной строки из DBGrid БЕЗ Ado " - это тоже круть. ![]() |
Автор: chip_and_dayl 18.12.2009, 21:56 |
Я всегда прописываю так путь к базе GetCurrecyDir+'\имябазы'. И никаких проблем нету ![]() По поводу темы да, я сам было подумал, что нужно удалить с отображения строку, но не с базы |
Автор: Solominka 18.12.2009, 21:57 | ||
chip_and_dayl, написала ему:
Жалуется на типы данных по-моему... Данкинг, к счастью программы на заказ я не пишу... ![]() Чего не умеем, того не умеем пока, к сожалению... |
Автор: chip_and_dayl 18.12.2009, 22:09 | ||
|
Автор: Solominka 18.12.2009, 22:11 |
chip_and_dayl, пишет Incompatible types: 'Integer' and 'Extended' :( |
Автор: chip_and_dayl 18.12.2009, 22:13 | ||
ооо..так у тебя походу целое число. А куда копейки деваем?)
|
Автор: Solominka 18.12.2009, 22:14 |
chip_and_dayl, хороший вопрос... =__= не знаю... что-то я перепутала по-моему... Пишет мне теперь, что is not a valid integer value... И что с этим делать? |
Автор: Данкинг 18.12.2009, 22:16 | ||
Ну правильно, а база лежит в каталоге с программой. Значит, переменной, объявленной как целое число (integer) ты пытаешься присвоить дробное значение (extended). |
Автор: chip_and_dayl 18.12.2009, 22:18 | ||
кстати, только дошло, вместо StringGrid1.Cells[w,4] нужно StringGrid1.Row ПО поводу ошибки сейчас исходник гляну Добавлено через 1 минуту и 14 секунд если быть правильным то Ст должен быть float Добавлено через 7 минут и 24 секунды
Только не могу понять где з. Ы. Спс за сам знаешь что :) |
Автор: Solominka 18.12.2009, 22:26 |
chip_and_dayl, сплошь ошибки... на st:float в var вообще жалуется, что неопознанный идетификатор... На остальное Array type required |
Автор: chip_and_dayl 18.12.2009, 22:29 |
ой, с С++ перепутал. Вместо float real А ошибки потому что вместо StrToInt где показывает ошибку нужно StrToFloat или FloatToStr если написано IntToSTr |
Автор: Solominka 18.12.2009, 22:34 | ||
chip_and_dayl, написала ему:
Жалуется, что: Array type required |
Автор: chip_and_dayl 18.12.2009, 22:35 |
st:=st-StrToInt(StringGrid1.Row); Добавлено через 31 секунду и если Ст real, то нужно писать StrToFloat |
Автор: Solominka 18.12.2009, 22:41 | ||
chip_and_dayl, чёто вообще фигня какая-то получается:
|
Автор: chip_and_dayl 18.12.2009, 22:43 | ||||
Добавлено через 5 минут и 38 секунд
|
Автор: Solominka 18.12.2009, 22:48 |
chip_and_dayl, выдают ошибку: There is no overloaded version of 'StrToFloat' that can be called with these arguments П.С. St как real я объявила... |
Автор: chip_and_dayl 18.12.2009, 22:49 |
FloatToStr - число с плавающей запятой преобразовать в строку StrToFloat - строку преобразовать в число с плав. запятой |
Автор: Данкинг 18.12.2009, 22:50 |
Я же добрый! ![]() |
Автор: chip_and_dayl 18.12.2009, 22:50 |
смотри выше поправку |
Автор: Solominka 18.12.2009, 23:03 |
chip_and_dayl, он продолжает жаловаться... Я уже не знаю, что мне делать ((( Пишет: There is no overloaded version of 'StrToFloat' that can be called with these arguments |
Автор: chip_and_dayl 18.12.2009, 23:10 |
Прикрепи исходник |
Автор: Solominka 18.12.2009, 23:15 |
Прикрепила |
Автор: chip_and_dayl 18.12.2009, 23:31 |
ПОра мне уже спать, а то тупить начал А ты молодец, сначала удаляешь запись, а потом обращаешься к строке, которой нету) |
Автор: Solominka 18.12.2009, 23:38 |
chip_and_dayl, ой.... даже стыдно как-то стало... Безмерно вам благодарна! ![]() Замучала я вас наверное сегодня... Выслала бы я вам тортики, да только до Украины они месяц будут идти и стухнут :( |
Автор: Данкинг 19.12.2009, 00:00 | ||
![]()
Ты как-то плохо думаешь о Почте России. ![]() |
Автор: vovk 19.12.2009, 20:33 |
А не подскажете на кого учитесь? |