Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/34: Рейтинг темы: голосов - 34, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55

Добавление новой строки

11.12.2014, 10:23. Показов 6572. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите я добавляю данные на делфи через навигатор в дбгрид. там много строк. Я хочу добавить новую строку например на 10-й строке(это примерно, строка там много) я нажимаю + на навигаторе и добавляю данные и нажимаю кнопку готово на навигаторе. После нажатии кнопку готово этот новая строка спускается вниз на последний. Как надо добвить новую строку чтобы она оставалось на том месте где я нажал кнопку +. В SQL Servere попробовал но не получается.Если в Sql Servere возможно тогда подскажите. Наверное понял у меня русский язык не очень)))
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.12.2014, 10:23
Ответы с готовыми решениями:

Работа с DataSet и DBGrid: осуществить добавление новой строки
Ребята,помогите. работаю в delphi и с базой firebirds. проблема такая: нужно осуществить добавление новой строки. при открытии формы курсор...

Добавление новой записи
Всем привет! В delphi совсем начинающий, поэтому прошу совета. Столкнулся с такой проблемой. У меня есть форма для добавления новой...

Добавление новой записи
Уважаемые форумчане! Есть вопрос: программа работает с бд mysql, после авторизации пользователя ему доступны к просмотру только те записи,...

20
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
11.12.2014, 10:55
В реляционных БД нет понятия "порядок строк". В какое место физически сервер добавляет строку - это его личное дело. Порядок строк при выводе задается кляузой ORDER BY оператора SELECT. Если очень хочется, чтобы визуально строка осталась там, где курсор, то надо запомнить эту строку (например, ее id) и после перечитывания таблицы переместить курсор на эту строку.
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
11.12.2014, 11:16  [ТС]
Grossmeister, Я хочу вручную добавить новую строку и водить туда данные т.е я должен выбирать любую строку и создавать туда новую строку. В sql servere выбираю любую строку и нажимаю кнопку new а она создает новую строку в последнюю строчку. А мне надо создавать на любой строке новую строку и водить туда данные
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
11.12.2014, 12:27
Для добавления пустой строки в любое место грида, нужно выделить строку, перед которой нужно вставить строку и нажать клавишу Insert.
Делается это без навигатора. В навигаторе такой кнопки нет.
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
11.12.2014, 12:57  [ТС]
Скандербег, Пробовал твою версию выбирал любую строку и нажал кнопку Insert создалась новая строка. Потом водил новые данные туда и нажал на кнопку готово(символ птичка, короче окей) в навигаторе. после нажатии кнопку готово этот строка спускается вниз на последнюю строку
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
11.12.2014, 13:00  [ТС]
Вот такая форма у меня
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
11.12.2014, 13:13
Здесь без специальной сортировки не обойтись.
Как справедливо заметил Grossmeister, все вновь добавленные строки хранятся в таблицах БД как попало и
только сортировка может привести в нужный порядок данные, которые показываются в гриде.
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
11.12.2014, 13:35  [ТС]
Скандербег, А че вручную никак да как я понимаю?
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
11.12.2014, 14:21
А "вручную" - это как?
Есть данные в таблицах, а есть те же данные, которые пользователь может видеть в каких-либо компонентах в приложениях. Чаще всего, в гридах.
Данные в БД и в гриде одни и те же, только представление их в приложении может быть разное.
Только и всего.
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
12.12.2014, 06:08  [ТС]
Скандербег, в гридах же можно добавить, удалить. Вот я хочу добавить строку на любом месте грида
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
12.12.2014, 08:56
Это общенациональное заблуждение. Грид только отображает данные.
Навигатор, как будто, тоже может удалять, добавлять данные, но никому в голову не приходит, что строки хранятся в навигаторе (неужели только потому что там их негде увидеть).
Повторимся с коллегами. Все добавляемые строки уходят в базу, а датасет, к которому через Datasource, подключен грид, перечитывает их заново после добавления строки и может показывать эту новую строку в гриде (или не показывать - зависит от задачи).
DataSet - это компонент для доступа к данным, как для записи в БД, так и для чтения из БД, и разный для разных типов СУБД.
Например, для баз Аксесса используют ADOTable или ADOQuery или какой-либо еще компонент с закладки ADO (для Дельфи ранних версий).

И как в этом датасете данные расположились после чтения из базы, так они и показываются в гриде.
Поэтому задачу ставят не в виде "как добавить строку в любом месте грида", которая пренципиально невозможна, а в нужном расположении строк в датасете.
Такое расположение достигается ТОЛЬКО СОРТИРОВКОЙ (и/или фильтрацией) данных.
В зависимости от СУБД сортировку делают либо на стороне сервера, либо и в приложении после получения данных из базы. Этим занимается все тот же датасет (не не грид).
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
12.12.2014, 11:01  [ТС]
Цитата Сообщение от Скандербег Посмотреть сообщение
Такое расположение достигается ТОЛЬКО СОРТИРОВКОЙ (и/или фильтрацией) данных.
с фильтрацией наверное сложновато да? Подскажите как надо сортировать тогда?
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
12.12.2014, 11:22
Про сортировку можно подсказать, если бы знать тип используемой СУБД и компонентов, через который происходит доступ к данным базы.
Так же нужно знать структуру таблиц БД и критериях (условиях) сортировки.
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
12.12.2014, 13:34  [ТС]
Вот таблица которая хранится на базе Sql Server 2000. имя таблицы jd.
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
12.12.2014, 13:58
Допустим.
И теперь надо "вставить" пустую строку в какое-то место этой таблицы (таблицы БД).
В какое? По каким признакам такая строка определяется?
По номеру строки нельзя, т.к. никаких номеров у строк нет.
По значениям в поле por_str?

Если таким образом из вас вытягивать инфу, то с сортировкой мы не закончим и к новому году.
Нужно для более эффективной помощи:
- скрипт создания таблицы и данных.
- объяснение какое поле за что отвечает (только для тех поля, которые существенны для этой задачи);
- какие условия (значения полей) должны иметь строки, между которыми нужно видеть вставляемую новую строку.
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
15.12.2014, 05:46  [ТС]
Скандербег, по значечениям por_str сделаем? Там как бы нумерауия идет
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
15.12.2014, 07:00  [ТС]
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
15.12.2014, 08:21
Судя по картинке сортировка в датасете уже есть и делается по этому полю.
Поэтому достаточно добавлять новую строку, где значение поля por_str будет "0000138" и строка встанет куда надо.
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
15.12.2014, 08:48  [ТС]
Скандербег, Можешь показать или рассказать по подробнее потому что я раньше с датасетем не работал
0
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
15.12.2014, 09:06
Не могу рассказать.
Получается, что ты хочешь научится программировать базы данных с помощью форума, а это путь в никуда.
Здесь научится этому нельзя. Либо заказывай работу, либо изучай все что нужно для работы в Дельфи с SQL Server и DBF файлами.
На форуме тебе могут только подсказывать, но не учить всему что нужно для твоей работы.
Просто сам пойми, что это нереально.

А с датасетами ты работаешь. Я уже говорил что такое датасет:
> DataSet - это компонент для доступа к данным и разный для разных типов СУБД. Например, для баз Аксесс или SQL server используют ADOTable или ADOQuery.
И в посте Копирование данных на delphi ты приводишь свой код, где упоминается ADOQuery1.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.12.2014, 09:06
Помогаю со студенческими работами здесь

Добавление новой записи
Помогите плиз, нужно добавить новую запись в таблицу, она добавляется, но только при вводе в Edit числовых значений, в Edit1 должно...

Добавление новой записи
Добрый вечер, пишу чат на основе бд и для регистрации пользователя требуется создание новой записи с его данными в таблице бд. Собственно в...

добавление новой запись в начало
Как сделать чтобы при добавлении новой записи в таблицу она добавлялась в начало списка а не в конец? (бд Access) КОД ДОБАВЛЕНИЯ ...

добавление новой записи в DBGrid
нажимаю на кнопку "Новая запись" далее код procedure Tform_disciplina.Button1Click(Sender: TObject); begin ...

Корректное добавление новой записи в БД ...
Всем привет. У меня вот такая проблема, сделал в своем проекте кнопку добавить новую запись в Таблицу, но когда на нее нажимаешь, новая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru