Консоль + БД
Приложение консольное, в проекте создал модуль данных и там расположил все компоненты для работы с БД (использовал АДО). Но при первом же обращении к компоненту TADOConnetion падает Access violation. Подозреваю, что это из-за использования компонентов в консольном приложние. Так ли это?
И можно ли вообще организовать работу с БД в консоли?
Код:
ADOConnection1 := TADOConnection.Create(self)
Ну и соотвественно после использования удален.
Компонент к тому моменту уже создан. Он расположен в Data Module и создается автоматически
Цитата: webGreezlee
Компонент к тому моменту уже создан. Он расположен в Data Module и создается автоматически
Это утверждение рекомендуется проверить. Приложение ведь консольное, а значит не происходит вызова методов класса Application при запуске программы.
Код:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils,
Unit1 in 'Unit1.pas' {DataModule1: TDataModule};
begin
{ TODO -oUser -cConsole Main : Insert code here }
DataModule1:=TDataModule1.Create(nil);
try
// начало твоего кода
// конец твоего кода
finally
DataModule1.Free;
end;
end.
{$APPTYPE CONSOLE}
uses
SysUtils,
Unit1 in 'Unit1.pas' {DataModule1: TDataModule};
begin
{ TODO -oUser -cConsole Main : Insert code here }
DataModule1:=TDataModule1.Create(nil);
try
// начало твоего кода
// конец твоего кода
finally
DataModule1.Free;
end;
end.
Цитата:
И можно ли вообще организовать работу с БД в консоли?
В консоли можно делать всё (или почти всё) то-же что и в обычном приложении (про окна не знаю...). Просто важно понять, что консольное приложение - это то-же полноценное виндовое приложение, просто с интерфейсом через консоль, а там хоть с БД работай, хоть в сеть лезь, хоть 3D графику запускай:). Просто в файле программы (не модулей) всё вручную писать надо.
OleInitialize(nil) перед использование ADO в консоле
ну а окна в консоли по идее через вызов функций ВинАПИ мона создать.
Всем громадное спасибо:) Действительно объект не создавался автоматически:)