![]() |
|
|
![]()
|
|
| Bugmaker |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Проблема в слудующем:
Допустим есть база 1.mdb, в ней есть таблица users. Как отобразить это в программе на с++ ? 1) как подключиться к базе 2) как создать форму с нужным для отображения элементом 3) как вытащить данные из access в приложение. Делал аналогичное на делфи билдере там все просто ADOconnection-AdoQuery-DBgrid если мне не изменяет память, сейчас понадобилось сделать на c++ аналогично, но есть только Dev c++. Был бы очень признателен за ссылку на пример, либо литературу конкретно про access и с++(не визуал и не борланд билдер). Заранее спасибо всем кто отзовется, и извините если уже была такая тема, поиском пользовался всего что нужно не нашёл. |
|||
|
||||
| Palladin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: 3 Всего: 17 |
http://forum.vingrad.ru/articles/topic-214921.html
и http://forum.vingrad.ru/articles/topic-215624.html -------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
|||
|
||||
| Bugmaker |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Вопрос по сортировке. Хочу сделтаь сортировку по клику на заголовке dbgrida.
На событие OnTitleClick пишу ADOTable1->IndexFieldNames=Column->FieldName; Сделать чтобы при повторном клике сортировалось по убванию не получается Пробовал так int i=0; i++; if (i/2==abs(i/2)) ADOTable1->IndexFieldNames=Column->FieldName; else ADOTable1->IndexFieldNames=Column->FieldName+"DESC"; Подскажите в чем ошибка и как реализовать?? по моим наблюдениям повторный клик просто не обрабатывается.. |
|||
|
||||
| Bugmaker |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Перешёл на ADOQuery, но ответ все равно был бы интересен.
|
|||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: нет Всего: 95 |
Библиотека msado15.dll (обычно лежит по пути c:\Program Files\Common Files\System\ADO) предоставляет достаточно удобный интерфейс IADORecordBinding. Пример его использования можно посмотреть в разделе MSDN VC++ Extensions
Ввиду того, чтопридется изучать WinAPI, работать с CreateWindow и полностью создавать GUI на нём -------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| Bugmaker |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Спасибо ama_kid, но ввиду того, что долго никто не отвечал а сам я ниасилил, было принято решение скачать bcb и делать на нем.. думаю не прогадал, насколько я понимаю GUI на winapi я бы просекал очень долго..
Интересует вопрос с сортировкой, описаный выше. |
|||
|
||||
| ama_kid |
|
||||||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: нет Всего: 95 |
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
||||||
|
|||||||
| Bugmaker |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Сортировку в ADOQuery сделал.. есть небольшой опыт, правда пришлось вспоминать..
Есть проблема, при первом нажатии сортирует как надо, при втором вылетает с ошибкой код на OnTitleClick такой ADOQuery1->Active=false; ADOQuery1->SQL->Add("Order by"); ADOQuery1->SQL->Add(Column->FieldName); ADOQuery1->Active=true; Насколько я понимаю вылетает из-за того, что второй раз прибавляет Order by к запросу.. Как этого избежать? а еще лучше вместо этого заставить осртироваться по убыванию. |
|||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: нет Всего: 95 |
Надо формировать запрос заново, а не добавлять к нему строку...
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| Palladin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: 3 Всего: 17 |
Что-то мне подсказывает, что здесь:
int i=0; не глобальная, тогда конечно работать не будет Измени и поидее все заработает, или сделай как ama_kid, сказал -------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
|||
|
||||
| Bugmaker |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Сори за тупой вопрос но он прозвучит =)
Как обьявить глобальную переменную. И есть ли аналог ADOQuery->SQL->ADD(); только на удаление некоторого выражения. И еще можно ли сохранить текст запроса ADOQuery->SQL->Text чтобы потом его снова присвоить запросу?? Вернее я знаю что можно, подскажите как.. вчера пытался, получилось с трудом и как-то коряво.. И еще 1 вопрос.. даже не знаю как сформулировать... допустим есть 2 таблицы в базе table1 table2 id name id age 1 ivan 1 22 2 jora 2 25 3 sasha 3 26 Можно ли через ADOQuery к таблице 2 получить возраст ivan'a ?? ну типа ADOQuery->SQL->ADD(Select * from table 2 where id=(id ivana iz table1). Вобщем сделать выборку на основе условия из другой таблицы? З.Ы. Спасибо что помогаете сам бы ковырялся наверн оеще неделю ) Это сообщение отредактировал(а) Bugmaker - 1.7.2008, 10:16 |
|||
|
||||
| ama_kid |
|
||||||||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: нет Всего: 95 |
Вполне:
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
||||||||
|
|||||||||
| Bugmaker |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Ухты.. не думал что можно использовать Select в Selecte =) спасибо огромное сегодня попробую.
String s = ADOQuery1->SQL->Text; так помоему пробовал.. полуил ошибку чтото-типа не могу запихнуть объект Tstring в String? но попробую еще раз. Все еще жду ответа на тупой вопрос, где объявить глобальную переменную-) З.Ы. ama_kid подпись козырная у тебя =) Это сообщение отредактировал(а) Bugmaker - 1.7.2008, 11:49 |
|||
|
||||
| ama_kid |
|
|||
![]() АСУТП-кодер ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1460 Регистрация: 5.3.2007 Где: Москва Репутация: нет Всего: 95 |
-------------------- самурай без меча подобен самураю с мечом, но только без меча |
|||
|
||||
| Bugmaker |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Еще вопрос
есть запрос: ADOQuery1->SQL->Text = "SELECT * FROM table1 WHERE [sid]=(Select id from table2 where [name]='kakoetoimya')"; Как сделать чтобы вместо kakoetoimya подставить значение ComboBox1 Решил примерно так ADOQuery1->SQL->Add ("SELECT * FROM table1 WHERE [sid]=(Select id from table2 where [name]='"+ComboBox2->Text+"')"); Но вопросы думаю еще появятся =) Это сообщение отредактировал(а) Bugmaker - 1.7.2008, 21:18 |
|||
|
||||
![]()
|
| Правила форума "C++: Базы данных" | |
|
|
Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах. Благодарим за понимание. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Базы данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |