![]() |
|
![]() ![]() ![]() |
|
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
Использую Ado компоненты
Этим кодом добавляю строку в базу
и она появляется в dbGrid-e в низу Как можно вставить строку например между 2 и 3 строками? ![]() ![]() ![]() -------------------- Ни цего не понимаю |
|||
|
||||
Teran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 590 Регистрация: 9.9.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
Другими словами нужно чтоб по кнопке выделенная строка перемещалась либо в верх либо в низ в Datagrid-e
![]() ![]() ![]() -------------------- Ни цего не понимаю |
|||
|
||||
Droll |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 10.11.2004 Репутация: нет Всего: 3 |
Можно, например, так:
добавляете новое поле (Num, например). В этом поле храните номер по порядку. Для просмотра используйте сортировку по этому полю. При вставке "прочесываете" всю базу с конца к началу (при учете сортировки) и заменяете значения этого поля на "значение + 1", пока не доберетесь до записи с номером вставляемой строки (ей также присваиваете номер +1). После этого, вставляете свою строку и указываете ей нужный номер. Далее дело за сортировкой. Удачи! |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 2 Всего: 50 |
Teran,
В любой БД ты не сможешь физически добавить запись в середину(за исключением некоторых экзотических). Сформулируй вопрос точнее. -------------------- |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Просто помнить в что в базе данных нет сортировки по умолчанию. Чтобы она добавлялась в определённое место тогда должна быть указана соортировка, а чтобы ещё и грид отображал как надо, то его обновлять после вставки надо...
PS. Когда уже народ перестанет DBGrid пользоваться, чтобы смочь понять логику баз данных? -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Foley |
|
|||
![]() Фсемба Яцца ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 31.1.2006 Где: Россия, Арх.обл Репутация: нет Всего: 7 |
а что ты предлагаешь? как еще можно лучше отобразить табличные данные? конечно, если ты не имел ввиду использование DB-компонент типа DBEdit и пр. и переходить по записям с помощью кнопок... Это сообщение отредактировал(а) Foley - 23.5.2006, 23:32 |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
Foley, берёшь DrawGrid... Сам заполняешь, сам управляешь... Делаешь, что хочешь... И тогда - переставляй, сортируй, выделяй... Например, чтоб отсортировать данные по значению вовсе не обязательно добавлять в запрос "ORDER BY" и опять гнать 10 Мб данных по дохлому диал-апу... Можно запихнуть данные в массив, извратиться над ними, а потом - отрисовать в гриде...
|
|||
|
||||
DimassS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 12.4.2006 Где: Россия, Иркустк Репутация: 1 Всего: 2 |
Да, хотелось бы не пользоваться, но не могу найти один компонентик, называется FlexGrid, позволяет делать с собой всё что душе угодно, вплоть до объединения ячеек внутри... может слышали, не поможете найти? ![]() |
|||
|
||||
Foley |
|
|||
![]() Фсемба Яцца ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 31.1.2006 Где: Россия, Арх.обл Репутация: нет Всего: 7 |
skyboy, я не это имел ввиду, просто некоторые думают, что работают не стаблицей непосредственно, а с гридом (т.е. фактически считают что грид-драйвер БД) поэтому появляются вопросы не "как вставить запись в табличку", а "как вставить запись в грид"
|
|||
|
||||
lexsedrex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 25.5.2006 Репутация: нет Всего: нет |
сделай после нажатия кнопки обновление дб грид, а еще лучше заполняй дб грид через адоквери типа так
adoQuery1.Close; adoQuery1.SQL.Clear; adoQuery1.SQL.Text:='select * from tab '; adoQuery1.open; тогда у тибе будет проще заполнять дбгрид, и данные будут вставлятся нормально. еще б советовал делать вставку в базу так adoQuery1.Close; adoQuery1.SQL.Clear; memo2.Lines.Clear; memo2.Lines.Add('insert into tab (hvoryj, doctor, grupa_krovi, zrist,' +' diagnoz, vaga, rik_narodzenna, pryvyvky, istoria, ' +'viddilenna) values ('+QuotedStr(edit1.Text)+','+QuotedStr(edit2.Text)+',' +' '+QuotedStr(edit3.Text)+','+QuotedStr(edit4.Text)+','+QuotedStr(edit5.Text)+',' +' '+QuotedStr(edit6.Text)+','+QuotedStr(edit7.Text)+',' +' '+QuotedStr(memo3.Text)+','+QuotedStr(memo1.Text)+',' +' '+QuotedStr(combobox2.Items.Strings[combobox2.itemindex])+')'); adoQuery1.SQL.Text:=Memo2.Text; adoQuery1.execsql; верхний пример конечно грязный, но суть понятна |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |