|
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 55
|
|
Добавление новой строки11.12.2014, 10:23. Показов 6572. Ответов 20
Метки нет (Все метки)
Помогите я добавляю данные на делфи через навигатор в дбгрид. там много строк. Я хочу добавить новую строку например на 10-й строке(это примерно, строка там много) я нажимаю + на навигаторе и добавляю данные и нажимаю кнопку готово на навигаторе. После нажатии кнопку готово этот новая строка спускается вниз на последний. Как надо добвить новую строку чтобы она оставалось на том месте где я нажал кнопку +. В SQL Servere попробовал но не получается.Если в Sql Servere возможно тогда подскажите. Наверное понял у меня русский язык не очень)))
0
|
|
| 11.12.2014, 10:23 | |
|
Ответы с готовыми решениями:
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 [ТС] | |
|
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
|
|
| 15.12.2014, 09:06 | |
|
Помогаю со студенческими работами здесь
20
Добавление новой записи Добавление новой записи добавление новой запись в начало добавление новой записи в DBGrid Корректное добавление новой записи в БД ... Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
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 .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|