кто работал С БД, подскажите
1) у меня есть бд в формате access, я е подключаю через ADOTable1,DataSource1,DBGrid1, вся бд отображается в гриде, но как эту бд засунуть в listview и оттуда её изменять.
2)У меня получилось проочитать только произвольно выделенную строчку и ее же изменить, а можно ли получить содержимое указанной строчки(т.е номер строки я ввожу в ручную)
Но если очень надо, то придется в цикле вручную перебирать все записи таблицы БД и переносить их (опять же вручную) в ListView.
Далее при редактировании какой-либо строчки в ListView, тебе надо будет искать соответствующую ей запись в таблице БД и переносить новые данные в БД.
Скажи честно, оно тебе это все надо? :)
1) у меня есть бд в формате access, я е подключаю через ADOTable1,DataSource1,DBGrid1, вся бд отображается в гриде, но как эту бд засунуть в listview и оттуда её изменять.
2)У меня получилось проочитать только произвольно выделенную строчку и ее же изменить, а можно ли получить содержимое указанной строчки(т.е номер строки я ввожу в ручную)
Используй компоненты с вкладки DataControls, если не хочешь изменять запись в DBGrid. Будешь выделять строку в DBGrid - у тебя будет отображаться в компоненте значение соответствующего поля этой строки(если ты, конечно, к одному DataSet цепанешь).
То что ты придумал, во-первых гемор, а, во-вторых, некорректно! Что, к примеру, значит 20 строка из DBGrid? Если сделаем сортировку, то 20 строка уже будет другая. Строку можно искать либо по ключевому полю, либо по набору условий для полей!!
Если тебе нужно визуальное отображение данных одного поля из таблицы, к примеру, в раскрывающемся списке - используй компонент DBComboBox с вкладки DataControls.
Если тебе нужно, к примеру записать данные в массив, список и т.д., тебе вообще не нужно использовать компоненты для отображения данных:
ADOTable1->First();
while (!ADOTable1->EOF)
{
your_data_container->Add(ADOTable1->FieldByName("FieldName")->AsString);
ADOTable1->Next();
}
, где your_data_container - твой 'контейнер' для хранения данных.
А когда данные нужно сохранить, нужно таким же макаром всю таблицу проходить и записывать данные? Я прав?
ADOTable1->Fields->Fields->DisplayLabel
ADOTable1->Fields->Fields->Name
и т.д. См. C++ Builder Help.
ADOTable1->Edit();
ADOTable1->FieldByName("Номер")->AsInteger=3;
компиль пишет, что не може тмодифицировать, что написать?
ADOTable1->FieldByName("Номер")->AsString="j;";
все работает стабильно, а integer не хочет, может то что первый столбик?
P.S. Хотя весьма странно, у меня и поля типа Integer, всегда срабатывали так как у тебя написано...
P.S. Хотя весьма странно, у меня и поля типа Integer, всегда срабатывали так как у тебя написано...
у меня так и было написано но для другого поля, которое имеет тип string, но как только дело доходит до этой строки, компиль пишет:raised exception class EDatabaseError with message Field 'Номер' cannot be modified
А что за Identity? Мона поподробнее
Если даш ссылку на книгу, прочту обязательно, если там есть то, что нужно.
По своему вопросу подумал, я не могу присвоить значение полю потому, что оно ключивое и значение ему access присваивает автоматически.
В заключении: многи посмотрев эту тему смогут хотябы простенькую но задать прогу
Именно это и имел в виду kot_:
Вывод: читай-таки книгу, учи матчасть.
Как можно програмно поменять местами записи в бд access?
Очень нужно!
Зачем???????
Имеется отчет, сделанный в QuickReport'e, хочу распечатать строки бд в определенном порядке, через QuickReport пробовал, но не получилось.
А вообще можно или только полностью бд очистить и заполнить как нужно????
Добавлено:
Что у тебя за 'БД' такая огромная, что ты ее собрался полностью очищать, а потом заполнять только лишь из-за порядка следования записей :D
Добавлено:
Что у тебя за 'БД' такая огромная, что ты ее собрался полностью очищать, а потом заполнять только лишь из-за порядка следования записей :D
1)
Мне нужно распечатать записи бд access в определенном мною порядке, через QuickReport не получилось, подскажите как это можно сделать?
2)
Моя бд занесена в ListView может оттуда ее можно как либо распечатать?
Мне нужно распечатать записи бд access в определенном мною порядке, через QuickReport не получилось, подскажите как это можно сделать?
2)
Моя бд занесена в ListView может оттуда ее можно как либо распечатать?
Я еще раз тебе повторяю - прежде чем задавать вопросы, получи хотябы минимум базовых знаний, тогда многие бредовые идеи тебя, возможно, покинут.
В языке SQL существует специальный оператор ORDER BY который позволяет вывести набор данных практически в любом нужном порядке - а записи в самой базе хранятся неупорядочено.