Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
 Аватар для Neo_AVE
89 / 36 / 5
Регистрация: 04.05.2011
Сообщений: 239

ADOConnection c Access

04.05.2011, 18:22. Показов 2543. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При компилировании ошибка не возникает, а при запуске вот такое сообщение появляется(см рисунок).
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
AnsiString path = ExtractFileDir(_argv[0]);
AnsiString filename=path + "\\Machine.mdb";
void __fastcall TFrmMain::FormCreate(TObject *Sender)
{
/*All ADO variables*/
TADOConnection* ADOConn;
TADOTable* ADOTEksk;
TADOTable* ADOTSam;
TADOTable* ADOTMach;
TDataSource* DSEksk;
TDataSource* DSSam;
TDataSource* DSMach;
 
//TParameter* Param;
ADOConn = new TADOConnection(this);
ADOConn->LoginPrompt=False;
if(!FileExists(ExtractFilePath(Appl ication->ExeName)+filename))
{
AnsiString ds = "В корневом каталоге отсутствует файл с именем \n\n\t"+
filename;
if(Application->MessageBox(ds.c_str(),"Предупрежде ние",MB_OK +
MB_TOPMOST+ MB_ICONWARNING)==IDOK)
{
Application->Terminate();
}
}
else
{
 
String WayToBase=ExtractFilePath(Applicati on->ExeName)+filename;
ADOConn->ConnectionString="Provider=Microso ft.Jet.OLEDB.4.0;Data Source="+
WayToBase+";Persist Security Info=True";
ADOConn->Connected=true;
ADOTEksk->ConnectionString=ADOConn->ConnectionString;
ADOTSam->ConnectionString=ADOConn->ConnectionString;
ADOTMach->ConnectionString=ADOConn->ConnectionString;
ADOTEksk->TableName="Ekskavator";
ADOTEksk->Active=true;
ADOTSam->TableName="Samosval";
ADOTSam->Active=true;
ADOTMach->TableName="Machine_for_compac";
}
try
{
ADOConn->Connected=true;
}
catch(EADOError *e)
{
MessageDlg("Error while connecting", mtError,
TMsgDlgButtons()<<mbOK, 0);
return;
}
/*Create the table*/
ADOTEksk = new TADOTable(this);
ADOTSam = new TADOTable(this);
ADOTMach = new TADOTable(this);
//ADOTable->Connection=ADOConn;
//ADOTable->Active=true;
/*Create the data source*/
DSEksk = new TDataSource(this);
DSSam = new TDataSource(this);
DSMach = new TDataSource(this);
DSEksk->DataSet = ADOTEksk;
DSSam->DataSet = ADOTSam;
DSMach->DataSet = ADOTMach;
DSEksk->Enabled=true;
DSSam->Enabled=true;
DSMach->Enabled=true;
}
Миниатюры
ADOConnection c Access  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.05.2011, 18:22
Ответы с готовыми решениями:

Работа с текстом. Связь MS Access через ADOConnection
Помогите пожалуйста, я новичок в с++ Условия задачи: В программе предусмотреть сохранение вводимых данных в файле и возможность...

Сумирование по столбцу БД Access с помощью компонентов DBGrid,ADOConnection,ADODataSet
Ребят уже 3 часа я ищу как это сделать и не могу найти , нахожу чтото типо такого Query1-&gt;SQL-&gt;Text = &quot;SELECT SUM(sum) FROM...

Путь в ADOConnection
Как прописать путь в ADOConnection программно к БД Access?

6
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
05.05.2011, 09:51
Очевидно, ошибка в строке подключения ConnectionString.
Там пробел в серединке мелкософта - эта очепятка ?

Образцы строки подключения к акцесу в
http://www.connectionstrings.com/access
0
 Аватар для Neo_AVE
89 / 36 / 5
Регистрация: 04.05.2011
Сообщений: 239
11.05.2011, 09:53  [ТС]
Теперь другая ошибка во время запуска программы.
Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
TADOConnection* ADOConnection1;
       if(!FileExists(ExtractFilePath(Application->ExeName)+filename)){
           AnsiString ds = "в корневом каталоге нет файла\n\n\t"+
              filename;
              if(Application->MessageBox(ds.c_str(),"Предупреэжение",MB_OK+MB_TOPMOST+
               MB_ICONWARNING)==IDOK){
                 Application->Terminate();
             }
        }
        else{
           AnsiString WayToBase=ExtractFilePath(Application->ExeName)+filename;
           ADOConnection1->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+
             WayToBase+";Persist Security Info=False";
           ADOConnection1->Connected=true;
        }
         try
         {
                ADOConnection1->Connected=true;
         }
         catch(EADOError *e)
         {
                MessageDlg("Error while connecting", mtError,
                                TMsgDlgButtons()<<mbOK, 0);
                return;
         }
Вот форум, ответ так и не получила: Подключение базы данных через Access. Прошу, как избавиться от этого окошка.
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
11.05.2011, 10:09
Вы уверены, что код в блоке else исполняется ?
Похоже, что у Вас в дизайне выставлены параметры коннекшна и стоит Connected = true.
Вот и вылазит ошибка. Снимите этот флажок и запустите проект

Добавлено через 3 минуты
Ошибка говорит, что программа при подключении использует метод ODBC, в то время как в приведенном Вами коде - OLE DB.
Мой Холмс говорит мне, что либо проект перекочевал на Ваш комп с другого компа, либо на Вашем ПК были сделаны системные изменение, например переустановили винду. В результате источник данных, используемый проектом, приказал долго жить.
0
 Аватар для Neo_AVE
89 / 36 / 5
Регистрация: 04.05.2011
Сообщений: 239
11.05.2011, 10:56  [ТС]
Спасибо, но всё равно без изменений. Я думаю, что где-то утечка памяти(.
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
11.05.2011, 11:40
Я задал вопрос, на который не получил ответ. Тема исчерпана ?
0
 Аватар для Neo_AVE
89 / 36 / 5
Регистрация: 04.05.2011
Сообщений: 239
11.05.2011, 16:14  [ТС]
Думаю, что не нужен else, убрала его. Но всё равно так и не выходит

Решила вопрос! Тема закрыта
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.05.2011, 16:14
Помогаю со студенческими работами здесь

Активация ADOConnection
Всем доброго времени суток. Столкнулся с проблемой подключения ADOConnection, если подключаться через строку подключения, то все...

1 ADOConnection и 2 ADOTable
Всем доброго времени суток. Есть две связанные таблицы (1-1), первая основная, вторая хранилище картинок. На форме ADOConnection, ADOTable...

Coinitialize и ADOConnection;
Всем доброго дня! Одну вещь не понимаю, в Form Create делаю CoInitialize(NULL), все нормально проходит. Но как только кладу в форму...

ADOConnection + try {}. как ?
При подключении к БД может возникнуть ошибка &quot;Ошибка входа пользователя '...' &quot; Как сделать чтобы он не выдавал это окошко? пробую: ...

Работа с ADOConnection
Можно ли динамически во время выполнения программы вывести форму подключения в БД, как при редактировании строки ConnectionString? Или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru