как избавиться от диалога
В C++Builder сиквелом через odbc нужно залезть в oracle сервер. При этом всегда запрашивается пароль и логин. Эти штуки известны, но прога работает по ночам в автомате и вводить пароль некому. Как можно обойтись без диалога ввода пароля? В доках прописано, что можно в sql->database отключить диалог. Отключаю и прописываю в параметрах password и sid. Коннекта нету??? Вот здесь - труба. Кому не в лом подскажите?
Вот все могу, а это не могу?
В C++Builder сиквелом через odbc нужно залезть в oracle сервер. При этом всегда запрашивается пароль и логин. Эти штуки известны, но прога работает по ночам в автомате и вводить пароль некому. Как можно обойтись без диалога ввода пароля? В доках прописано, что можно в sql->database отключить диалог. Отключаю и прописываю в параметрах password и sid. Коннекта нету??? Вот здесь - труба. Кому не в лом подскажите?
LoginPrompt = false;
Аналогичная проблема, тока просто пароль вводить надоело.
В BDE Administrator создал псевдоним для Access и каждый раз таккая же проблема.
sqltst->Database->LoginPrompt = false;
sqltst->SQL->Clear();
sqltst->SQL->Text = "select count(*) from population";
и т.д.
но уже на первой строке access violation 0xFFFFFF. Я так понимаю, что объект sqltst->Database создается где-то в районе sqltst->Open
и пароли там задавать уже поздно. А здесь еще рано. Опять - труба.
Вот так я делаю
sqltst->Database->LoginPrompt = false;
sqltst->SQL->Clear();
sqltst->SQL->Text = "select count(*) from population";
и т.д.
но уже на первой строке access violation 0xFFFFFF. Я так понимаю, что объект sqltst->Database создается где-то в районе sqltst->Open
и пароли там задавать уже поздно. А здесь еще рано. Опять - труба.
Надо что-то типа:
Database->LoginPrompt = false;
Database->Params->Add("UserName = sysdba");
Database->Params->Add("password = masterkey");
Database->Open();
sqltst->DataBase = Database;
Да забыл сказать:
Database - объект класса TDataBase, соответствующий компонент на вкладке Data Access
sqltst->SQL->Clear();
sqltst->SQL->Text = "select count(*) from population";
Попробуй=)))
Надо что-то типа:
Database->LoginPrompt = false;
Database->Params->Add("UserName = sysdba");
Database->Params->Add("password = masterkey");
Database->Open();
sqltst->DataBase = Database;
Позволю себе ответить.
Выдаётся всё та-же ошибка, т.к. sqltst->DataBase недоступен по причине его недоступности :).
Assign тоже не помогает.
Позволю себе ответить.
Выдаётся всё та-же ошибка, т.к. sqltst->DataBase недоступен по причине его недоступности :).
Assign тоже не помогает.
для BDE
1. Находишь в палитре компонентов компонент
ТDatabase и кладеш его на форму
он на закладке Data Access в BCB 5 и ниже а
в 6-ом он на закладке BDE.
2. В инспекторе объектов меняешь у него свойства
AliasName - выбери свой Алиас в списке
DatabaseName - пишешь чтонибудь типа "MyBase1"
LoginPrompt - false
3. в своем TQuery (TTable) меняешь свойствo
DatabaseName - a именно выбираешь из списка
"MyBase1"
4. Database1->Open();
Query1->Open();
для BDE
.........
Ты бы действительно изменил мир.
Спасибо
Мдя, толи читать люди не умеют, толи с первого раза не понимают, я вроде все тоже самое описал. Даже про закладку, ан нет не поняли=)))
Я же просил разжевать, а тут попробуй разберись...
:)))
Я просто недогнал сначала как DataBase прилепить к sqltst.
Но безусловно ты тоже был прав.
Про закладки можно было и не писать. А вот почему это не работает, если Database открыть через new, а не с закладки достать.
это работает примерно вот так
TTable* Table = new TTable(Form1);
try
{
//............
Database->DatabaseName="ALI";
Database->LoginPrompt=false;
Table->DatabaseName="ALI";
Database->Open();
Table->TableName="ALI.TEST";
Table->Open();
Table->Close();
Database->Close();
}__finally
{
delete Database;
delete Table;
}
если посмотреть help
TDBDataSet::Database
__property TDatabase Database = {read=FDatabase};
т.е. read only