Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

EDBEngineError [D7, MSSQL]


Страницы:   1 2

vajo ©   (2003-05-28 12:35:00) 

Сделал консольное приложение, кот. формирует вэб страницу. Хочу выводить на ней базу из SQL Server 2000. База настроена в BDE. В пректе имею DataModul1, в кот. находится TQuery, настроеный на базу SQL.
При запуске проекта выходит ошибка:
"Project Pr.exe raised exception class EDBEngineError with message "Unknown user name or password.
Login failed for user "maa".
Login incorrect.
Alias: test". Process stopped."


Как реализовать коннект с базой?
Если использовать в обычном приложении (не консольном), то база подключается без проблем. Перед запуском она сама спрашивает имя и пароль, а как быть в консольном.
Если использовать локальные базы, например, из алиаса DBDEMO, то все работает.

Вот код:
program CgiDate;

{$APPTYPE CONSOLE}
uses
SysUtils,
Unit1 in "Unit1.pas" {DataModule1: TDataModule},

var

begin
DataModule1:=TDataModule1.Create(nil);// здесь останавливается
writeln ("CONTENT-TYPE: TEXT/HTML");
writeln;
writeln ("<HTML><HEAD>");
writeln ("<TITLE>Cgidate</TITLE>");
writeln ("</HEAD><BODY>>");
writeln ("<H1>Пример</H1>");
writeln ("<input type="submit" name="Submit" value="Sub">");
DataModule1.QueryLogAccount.Active:=True;
DataModule1.Destroy;
writeln ("</BODY>>");
end.


Unit Unit1;

interface

uses
SysUtils, Classes, DB, DBTables;

type
TDataModule1 = class(TDataModule)
QueryLogAccount: TQuery;
private
{ Private declarations }
public
{ Public declarations }
end;

var
DataModule1: TDataModule1;

implementation

{$R *.dfm}

end.


Quest   (2003-06-03 11:33:00) [1]

Open("user","Vgvgyjeh");- это имя и пароль на доступ к БД


Quest   (2003-06-03 11:30:00) [2]

>>vajo
Вот примерчик с ADO, думаю разберёшся:
program telephone;
{$APPTYPE CONSOLE}
uses
SysUtils,ADODB,ActiveX,Windows,Classes;
{$E cgi}
const
QUERY_STRING = "QUERY_STRING";
var
Connect : TADOConnection;
ADOQuery1 : TADOQuery;

begin
CoInitialize(Nil);
try
Connect := TADOConnection.Create(Nil);
try
Connect.ConnectionString :="Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Initial Catalog=UNIDELL;Data Source=SQLBase_NAME";
with Connect do begin
Open("user","Vgvgyjeh");
if Connected then Begin
ADOQuery1 := TADOQuery.Create(Nil);
Try
ADOQuery1.connection := Connect;
ADOQuery1.sql.add("select * from telephon ");
ADOQuery1.Active:=true;
ADOQuery1.Open;
Writeln(ADOQuery1.FieldByName("NAME").AsString);
finally
ADOQuery1.Close;
ADOQuery1.Free;
End;
END;
Finally
Connect.Close;
Connect.Free;
End;
finally
CoUninitialize();
end;
end.


BlackKing   (2003-06-02 23:22:00) [3]

A ja bral komponenti s zakladki BDE
TDataBAse u kotorogo LoginPrompt:=False;
a v parametri vpisal
USER NAME = zzz
password = xxx

jesli rabotajesh cherez Apache to neobhodimo al"jas sozdavat" v ODBC Administratore v razdele SYSTEM DNS.

I bez problem.

Jesli sho, pishite na milo.


sniknik   (2003-06-02 12:32:00) [4]

зато есть у TADOConnection, через который и надо в принципе работать.


vajo   (2003-06-02 12:00:00) [5]

> sniknik ©
У кого? У TADOQuery нет свойства LoginPrompt.


sniknik   (2003-06-02 11:45:00) [6]

так поставь LoginPrompt=false


vajo   (2003-06-02 11:41:00) [7]

Я вот еще одного никак не пойму.
В ConnectionString у TADOQuery указано как подключаться (тест подключения проходит), а при запуске проекта ругается, что имя или пароль неверны. В обычном (не консольном) проекте это работает.
От чего это может быть?


sniknik   (2003-06-02 08:42:00) [8]

это по vajo (28.05.03 13:33)
> Попробовал использовать TADOQuery - там можно указать имя и пароль, но теперь он при запуске ругается
"Project Pr.exe raised exception class EOleSysError with message "не бал произведен вызов CoInitialize". Alias: test". Process stopped."
> Что это CoInitializeи что с этим делать?


sniknik   (2003-06-02 08:40:00) [9]

vajo (02.06.03 08:33)
см
MOA © (30.05.03 14:28)

begin
CoInitialize(nil);
DataModule1:=TDataModule1.Create(nil); // здесь останавливатся не будет
writeln ("CONTENT-TYPE: TEXT/HTML");
writeln;
writeln ("<HTML><HEAD>");
writeln ("<TITLE>Cgidate</TITLE>");
writeln ("</HEAD><BODY>>");
writeln ("<H1>Пример</H1>");
writeln ("<input type="submit" name="Submit" value="Sub">");
DataModule1.QueryLogAccount.Active:=True;
DataModule1.Destroy;
writeln ("</BODY>>");
CoUninitialize();
end.


еще модуль ActiveX в uses добавь


vajo   (2003-06-02 08:33:00) [10]

>Соловьев
Вот код:
program CgiDate;

{$APPTYPE CONSOLE}
uses
SysUtils,
Unit1 in "Unit1.pas" {DataModule1: TDataModule},

begin
DataModule1:=TDataModule1.Create(nil); // здесь останавливается
writeln ("CONTENT-TYPE: TEXT/HTML");
writeln;
writeln ("<HTML><HEAD>");
writeln ("<TITLE>Cgidate</TITLE>");
writeln ("</HEAD><BODY>>");
writeln ("<H1>Пример</H1>");
writeln ("<input type="submit" name="Submit" value="Sub">");
DataModule1.QueryLogAccount.Active:=True;
DataModule1.Destroy;
writeln ("</BODY>>");
end.


Unit Unit1;

interface

uses
SysUtils, Classes, DB, DBTables, ADODB;

type
TDataModule1 = class(TDataModule)
QueryLogAccount: TADOQuery;
private
{ Private declarations }
public
{ Public declarations }
end;

var
DataModule1: TDataModule1;

implementation

{$R *.dfm}

end.


С этим кодом такое сообщение:
"Project Pr.exe raised exception class EOleSysError with message "не бал произведен вызов CoInitialize". Alias: test". Process stopped."


MOA   (2003-05-30 14:28:00) [11]

>Что это CoInitialize
Это вызов для инициалмизации OLE - Вы ведь пользуетесь ADO? Тогда при старте:
CoInitialize(nil);
Соответственно, при завершении
CoUninitialize();

Хотя Ваша проблема в другом. Пути решения:
1. Установить в соответствующем объекта (TDatabase? TADOConnectiomn) св-во LoginPrompt в False
и:
2.1 Если Вы пользуетесь Windows autentification - оставьте поля имени пароля пустыми (рекомендуется)
2.2 Если SQL autentification - то пропишите имя и пароль (не рекомендуется, светите логин в базу)
Удачи!


Соловьев   (2003-05-30 14:25:00) [12]


> var
>
> begin

что это еще за var?
и приведи код.


vajo   (2003-05-30 14:22:00) [13]

дописал в uses forms.
uses
SysUtils,Forms


Ругается:
Undeclared idetifier "Application"

Чего-то не хватает


Соловьев   (2003-05-30 14:14:00) [14]

uses + Form


vajo   (2003-05-30 14:07:00) [15]

Ругается:
Undeclared idetifier "Application"


Соловьев   (2003-05-30 14:03:00) [16]


> DataModule1 создается в первом коде и Application.Initialize
> там не напишешь.

Вот те три строчки вместо этой
DataModule1:=TDataModule1.Create(nil); // здесь останавливается


vajo   (2003-05-30 14:00:00) [17]

>Соловьев
А где это дописать?
DataModule1 создается в первом коде и Application.Initialize там не напишешь.


Соловьев   (2003-05-30 09:49:00) [18]

добавь :
Application.Initialize;
Application.CreateForm(TDataModule1, DataModule1);
Application.Run;


vajo   (2003-05-30 08:09:00) [19]

>Соловьев Меня просто временно не было у интернета.

С Соловбевым я согласен - это удобней. Зачем все создавать вручную, если можно просто бросить компанент.

Но мне всё ещё не понятно, что делать с вопросом
от (28.05.03 13:33) "Что это CoInitialize и что с этим делать?"

Может есть др. способы подключения к MSSQL?


Max Zyuzin   (2003-05-28 15:21:00) [20]

>Соловьев © (28.05.03 15:18)
Так часто бывает... :-) в общем хорошо подискутировали...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо