C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
DataModule, Консольное приложение, работа с IB
Syfer
Отправлено: 10.12.2003, 14:40


Ученик-кочегар

Группа: Участник
Сообщений: 10



Добрый день. У меня есть один вопрос который меня очень интересует:
Как правильно использовать DataModule в консольном приложении?

Это консольное приложение должно связаться с базой данных через InterBase. Вот например: cоздал DataModule и положил три компонента IBDatabase, IBTransaction и IBQuery. Сделал все необходимые связи и добавил в проект DataModule.
Попытался его использовать в консоли:

CODE

#include <vcl.h>
#pragma hdrstop
#include "DataModul.h"

#pragma argsused
int main(int argc, char* argv[])
{
 DataMod->IBQuery1->Open();
 ................................
}


И при обращении к стоке DataMod->IBQuery1->Open(); ошибка: "Acceess Violation....".

Я порылся в Архиве форума в надежде найти ответ, и нашел другое решение проблемы, которое мне не нравиться.

CODE

#include <Db.hpp>
#include <IBCustomDataSet.hpp>
#include <IBDatabase.hpp>
#include <IBQuery.hpp>

TIBDatabase *Base=new TIBDatabase(NULL);
 TIBQuery *MyQuery=new TIBQuery(NULL);
 TIBTransaction *Trans=new TIBTransaction(NULL);

 Base->DefaultTransaction=Trans;
 Base->DatabaseName="rating:c:\databases\repadib.fdb";
 Base->Params->Add("user_name=adrep");
 Base->Params->Add("password=***");
 Base->Params->Add("lc_ctype=WIN1251");
 Base->LoginPrompt=false;
 Trans->DefaultAction=TARollback;
 Trans->DefaultDatabase=Base;
 MyQuery->Database=Base;
 MyQuery->Transaction=Trans;
 MyQuery->SQL->Add("select * from  MAINREPLICATE");
...........

И это только для одной базы.... wink.gif
Мне конечно не лень прописать также и на осальные, но если же есть DataModule, почему бы его не использовать?
Объяните мне пожалуйста, что нужно сделать, чтобы можно использовать DataModule в консольном приложении?

Заранее Большое спасибо. smile.gif

Вернуться в Вопросы программирования в C++Builder