Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];

Вниз

Консольное приложение и DataModule с ADO????   Найти похожие ветки 

 
vikser   (2003-01-31 17:02) [0]

Есть консольное приложение, и есть DataModule с компонентами ADO... Любое обращение к ADO-компонентам вызывает "неустранимую ошибку". При обращении к другим функциям из DataModule, не связанными с ADO все проходит нормально... В чем у меня беда?


 
sniknik   (2003-01-31 17:59) [1]

в обшем случае, и чаще всего не сделано
CoInitialize(nil);
....
незабывать завершение
CoUnInitialize();


 
vikser   (2003-01-31 18:10) [2]

Я к сожалению не знаю, куда это нужно вставить...
вот мой DataModule:
unit ado_con;
interface
uses
SysUtils, Classes, DB, ADODB;
type
TDM = class(TDataModule)
my_ado_con: TADOConnection;
my_ado_query: TADOQuery;
private
{ Private declarations }
public
{ Public declarations }
function MySqlResult(dir,pc,f,tn : string) : string;
end;
var
DM: TDM;
implementation

{$R *.dfm}

function TDm.MySqlResult(dir,pc,f,tn : string) : string;
begin
dm.my_ado_con.ConnectionString:="FILE NAME="+dir+"\toinet.udl";
dm.my_ado_query.connection:=dm.my_ado_con;
my_ado_query.SQL.Clear;
my_ado_query.SQL.Text:="SELECT NameAdress FROM internet WHERE ((PostCode="+pc+") AND (Filial="+f+") AND (TN="+tn+"))";
try // Подключение к базе данных
dm.my_ado_con.Open;
try // Открытие запроса
dm.my_ado_query.open;
try // Переход на первую запись
dm.my_ado_query.First;

if dm.my_ado_query.RecordCount=0
then result:="nill"
else result:=dm.my_ado_query.Fields[0].AsString;

except else
begin
end
end;

try
dm.my_ado_query.Close;
except else
begin
end;
end;

except else // Открытие запроса - ИС
begin // Открытие запроса - ИС
end; // Открытие запроса - ИС
end; // Открытие запроса - конец

try // Отключение от базы данных
dm.my_ado_con.Close;
except else // Отключение от базы данных ИС
begin // Отключение от базы данных ИС
end // Отключение от базы данных ИС
end; // Отключение от базы данных

except else // Подключение к базе данных ИС
begin // Подключение к базе данных ИС
end // Подключение к базе данных ИС
end; // Подключение к базе данных
end;
end.


Вот консольное приложение:


{$APPTYPE CONSOLE}

uses
SysUtils,
Classes,
IniFiles,
ado_con in "ado_con.pas" {DM: TDataModule};

type
TToInet = class (TObject)
***
// ----- Процедура выполняет запрос к базе данных ---------------
function TToInet.get_ado_lines(pc,f,tn : string) : string;
begin
writeln(ado_con.DM.MySqlResult(main_path,"10","11","12"));
end;
***


 
vikser   (2003-01-31 18:11) [3]

И при вызове этой функции возникает ошибка :(


 
sniknik   (2003-01-31 18:18) [4]

можно сюда

{$APPTYPE CONSOLE}

uses
SysUtils,
ActiveX,
Classes,
IniFiles,
ado_con in "ado_con.pas" {DM: TDataModule};

type
TToInet = class (TObject)
***
begin
CoInitialize(nil);
***
CoUnInitialize();
end.

можно в какой нибудь модуль, на инициализацию / финализацию, главное до вызовов ADO и после вызовов снять. Для устраниния ошибки ActiveX в uses.



 
vikser   (2003-01-31 18:23) [5]

Не работает...


 
sniknik   (2003-01-31 18:36) [6]

ну значит дело в другом, вам надо к доктору :-)).

опиши конкретнее как что происходит. или попробуй, простейший пример, точно работает.

program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils, ADODB, ActiveX;

var
ADOConnection: TADOConnection;
ADOCommand: TADOCommand;

begin
CoInitialize(nil);
ADOConnection:= TADOConnection.Create(nil);
ADOCommand:= TADOCommand.Create(nil);
ADOConnection.ConnectionString:= "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Northwind";
ADOConnection.LoginPrompt:= false;
ADOCommand.Connection:= ADOConnection;
ADOCommand.CommandText:= "CREATE TABLE TestTable (TestField Char(10))";
ADOCommand.Execute;
ADOCommand.Free;
ADOConnection.Free;
coUnInitialize();
end.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
1-52863
Blondin
2003-02-07 17:58
2003.02.17
Сравнение двух файлов


1-52897
race1
2003-02-08 10:58
2003.02.17
простой вопрос


1-53099
AALLEEXX
2003-02-07 06:39
2003.02.17
MDI и MDIchild


1-53088
Chlavik
2003-02-07 01:17
2003.02.17
Указатели


1-52916
_Student_
2003-02-08 17:56
2003.02.17
Помогите с заменой слова в строке.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский