Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

кто работал С БД, подскажите

1.8K
18 марта 2007 года
Evgeni
188 / / 14.06.2006
здравствуйте,
1) у меня есть бд в формате access, я е подключаю через ADOTable1,DataSource1,DBGrid1, вся бд отображается в гриде, но как эту бд засунуть в listview и оттуда её изменять.
2)У меня получилось проочитать только произвольно выделенную строчку и ее же изменить, а можно ли получить содержимое указанной строчки(т.е номер строки я ввожу в ручную)
9.5K
18 марта 2007 года
Borgir
97 / / 20.12.2006
А чем DBGrid не устраивает?
Но если очень надо, то придется в цикле вручную перебирать все записи таблицы БД и переносить их (опять же вручную) в ListView.
Далее при редактировании какой-либо строчки в ListView, тебе надо будет искать соответствующую ей запись в таблице БД и переносить новые данные в БД.
Скажи честно, оно тебе это все надо? :)
263
18 марта 2007 года
koltaviy
816 / / 16.12.2004
Цитата: Evgeni
здравствуйте,
1) у меня есть бд в формате access, я е подключаю через ADOTable1,DataSource1,DBGrid1, вся бд отображается в гриде, но как эту бд засунуть в listview и оттуда её изменять.
2)У меня получилось проочитать только произвольно выделенную строчку и ее же изменить, а можно ли получить содержимое указанной строчки(т.е номер строки я ввожу в ручную)


Используй компоненты с вкладки DataControls, если не хочешь изменять запись в DBGrid. Будешь выделять строку в DBGrid - у тебя будет отображаться в компоненте значение соответствующего поля этой строки(если ты, конечно, к одному DataSet цепанешь).
То что ты придумал, во-первых гемор, а, во-вторых, некорректно! Что, к примеру, значит 20 строка из DBGrid? Если сделаем сортировку, то 20 строка уже будет другая. Строку можно искать либо по ключевому полю, либо по набору условий для полей!!

1.8K
18 марта 2007 года
Evgeni
188 / / 14.06.2006
спасибо за советы, я думал, что возможно как то по другому считать значение ячеек из бд, приэтом вообще без участия dbgrid. Или это тоже невозможно?
263
18 марта 2007 года
koltaviy
816 / / 16.12.2004
Цитата: Evgeni
спасибо за советы, я думал, что возможно как то по другому считать значение ячеек из бд, приэтом вообще без участия dbgrid. Или это тоже невозможно?


Если тебе нужно визуальное отображение данных одного поля из таблицы, к примеру, в раскрывающемся списке - используй компонент DBComboBox с вкладки DataControls.
Если тебе нужно, к примеру записать данные в массив, список и т.д., тебе вообще не нужно использовать компоненты для отображения данных:

 
Код:
your_data_container->Clear();
ADOTable1->First();
while (!ADOTable1->EOF)
{
    your_data_container->Add(ADOTable1->FieldByName("FieldName")->AsString);
    ADOTable1->Next();
}

, где your_data_container - твой 'контейнер' для хранения данных.
1.8K
18 марта 2007 года
Evgeni
188 / / 14.06.2006
Koltaviy, ваще нормально объяснил, а я то голову ломал!!!!!!!(т.е отлично объяснил)
А когда данные нужно сохранить, нужно таким же макаром всю таблицу проходить и записывать данные? Я прав?
1.8K
19 марта 2007 года
Evgeni
188 / / 14.06.2006
а как получить названия колонок в таблице и их тип, зная их только номер колонки?
294
19 марта 2007 года
Plisteron
982 / / 29.08.2003
Цитата: Evgeni
а как получить названия колонок в таблице и их тип, зная их только номер колонки?


ADOTable1->Fields->Fields->DisplayLabel
ADOTable1->Fields->Fields->Name
и т.д. См. C++ Builder Help.

1.8K
20 марта 2007 года
Evgeni
188 / / 14.06.2006
есть довольно глупый вопрос, пишу так:
ADOTable1->Edit();
ADOTable1->FieldByName("Номер")->AsInteger=3;

компиль пишет, что не може тмодифицировать, что написать?
1
21 марта 2007 года
kot_
7.3K / / 20.01.2000
Мы работу с базами будем по форуму изучать - или все же дадим себе труд и хотябы с книжкой архангельского ознакомимся? Я все понимаю - но вопросы которые могут быть решены простым заглядыванием в хелп или примеры - лучше там же и смотреть.
1.8K
21 марта 2007 года
Evgeni
188 / / 14.06.2006
так интересно, что если поле другого типа
ADOTable1->FieldByName("Номер")->AsString="j;";
все работает стабильно, а integer не хочет, может то что первый столбик?
9.5K
21 марта 2007 года
Borgir
97 / / 20.12.2006
Напиши тогда:
 
Код:
ADOTable1->FieldByName("Номер")->AsInteger=3;


P.S. Хотя весьма странно, у меня и поля типа Integer, всегда срабатывали так как у тебя написано...
1.8K
22 марта 2007 года
Evgeni
188 / / 14.06.2006
Цитата: Borgir
Напиши тогда:
 
Код:
ADOTable1->FieldByName("Номер")->AsInteger=3;


P.S. Хотя весьма странно, у меня и поля типа Integer, всегда срабатывали так как у тебя написано...



у меня так и было написано но для другого поля, которое имеет тип string, но как только дело доходит до этой строки, компиль пишет:raised exception class EDatabaseError with message Field 'Номер' cannot be modified

9.5K
22 марта 2007 года
Borgir
97 / / 20.12.2006
Он английским языком пишет, что не может изменить значение поля. Проверь, где-то у тебя Read-only стоит.
1
22 марта 2007 года
kot_
7.3K / / 20.01.2000
Или же поле имеет свойство Identity
1.8K
22 марта 2007 года
Evgeni
188 / / 14.06.2006
так прикол в том, что если я эту строчку удаляю, а заполняю оставшиеся столбцы, то все работает, свойство ReadOnly=false;
А что за Identity? Мона поподробнее
263
22 марта 2007 года
koltaviy
816 / / 16.12.2004
Тебе же уже сказали:
Цитата: kot_
Мы работу с базами будем по форуму изучать - или все же дадим себе труд и хотябы с книжкой архангельского ознакомимся? Я все понимаю - но вопросы которые могут быть решены простым заглядыванием в хелп или примеры - лучше там же и смотреть.

1.8K
23 марта 2007 года
Evgeni
188 / / 14.06.2006
я конечно согласен, что изучать надо книгу, но у меня по этому заданию курсач, поэтому времени на изчение мало.
Если даш ссылку на книгу, прочту обязательно, если там есть то, что нужно.

По своему вопросу подумал, я не могу присвоить значение полю потому, что оно ключивое и значение ему access присваивает автоматически.

В заключении: многи посмотрев эту тему смогут хотябы простенькую но задать прогу
294
24 марта 2007 года
Plisteron
982 / / 29.08.2003
Цитата: Evgeni
По своему вопросу подумал, я не могу присвоить значение полю потому, что оно ключивое и значение ему access присваивает автоматически.


Именно это и имел в виду kot_:

Цитата: kot_
Или же поле имеет свойство Identity


Вывод: читай-таки книгу, учи матчасть.

1
24 марта 2007 года
kot_
7.3K / / 20.01.2000
Тля особо талантливых объясняю - если модератор удаляет сообщение - это не значит что надо попытаться создать новое. Надо прочесть ЛС - и сделать так как там сказано. Не доходит? Получи нарушение в 10 баллов.
1.8K
29 марта 2007 года
Evgeni
188 / / 14.06.2006
Доброго времени суток!
Как можно програмно поменять местами записи в бд access?
Очень нужно!
294
29 марта 2007 года
Plisteron
982 / / 29.08.2003
Цитата: Evgeni
Как можно програмно поменять местами записи в бд access?


Зачем???????

1.8K
29 марта 2007 года
Evgeni
188 / / 14.06.2006
Цитата: Plisteron
Зачем???????



Имеется отчет, сделанный в QuickReport'e, хочу распечатать строки бд в определенном порядке, через QuickReport пробовал, но не получилось.

А вообще можно или только полностью бд очистить и заполнить как нужно????

263
29 марта 2007 года
koltaviy
816 / / 16.12.2004
Если тебе нужен действительно какой-то нереальный порядок, что не обойдешься сортировкой - создай дополнительное поле - его изменяй, а потом по нему сортируй.
Добавлено:
Что у тебя за 'БД' такая огромная, что ты ее собрался полностью очищать, а потом заполнять только лишь из-за порядка следования записей :D
1.8K
29 марта 2007 года
Evgeni
188 / / 14.06.2006
Цитата: koltaviy
Если тебе нужен действительно какой-то нереальный порядок, что не обойдешься сортировкой - создай дополнительное поле - его изменяй, а потом по нему сортируй.
Добавлено:
Что у тебя за 'БД' такая огромная, что ты ее собрался полностью очищать, а потом заполнять только лишь из-за порядка следования записей :D



1)
Мне нужно распечатать записи бд access в определенном мною порядке, через QuickReport не получилось, подскажите как это можно сделать?
2)
Моя бд занесена в ListView может оттуда ее можно как либо распечатать?

1
30 марта 2007 года
kot_
7.3K / / 20.01.2000
Цитата: Evgeni
1)
Мне нужно распечатать записи бд access в определенном мною порядке, через QuickReport не получилось, подскажите как это можно сделать?
2)
Моя бд занесена в ListView может оттуда ее можно как либо распечатать?


Я еще раз тебе повторяю - прежде чем задавать вопросы, получи хотябы минимум базовых знаний, тогда многие бредовые идеи тебя, возможно, покинут.
В языке SQL существует специальный оператор ORDER BY который позволяет вывести набор данных практически в любом нужном порядке - а записи в самой базе хранятся неупорядочено.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог