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

Вниз

Псевдонимы БД   Найти похожие ветки 

 
Alex7   (2004-10-12 09:03) [0]

Создал псевдоним для БД из Visual Foxpro на базе соответствующего драйвера ODBC. При активизации БД, независимо
от существования пароля, выдается запрос на него (диалог "DataBase Login"). Можно ли избежать холостую выдачу этого диалогового окна ?


 
Nikolay M. ©   (2004-10-12 09:08) [1]

Ты, конечно, думаешь, что у тебя одного такой вопрос? Или что ты первый решил задать его на этом форуме?
http://www.delphimaster.ru/cgi-bin/forum.pl?n=1&search=login


 
Alex7   (2004-10-12 16:54) [2]

Спасибо за подсказку, но после того, как специально добавил
компонент Database при LoginPrompt=False, - все равно выдается
запрос. Больше того, на введенный пароль(любая абракадабра)тоже не реагирует. Все проходит. Чувствую, что где-то ошибаюсь. Но где?


 
sniknik ©   (2004-10-12 17:24) [3]

> Чувствую, что где-то ошибаюсь.
17-ю строку смотри, адназначно!


 
Nikolay M. ©   (2004-10-12 22:28) [4]

1. Что значит "не реагирует"?
2. Как вводится пароль и чему равно Database.Params непосредственно перед установкой коннекта?


 
sniknik ©   (2004-10-12 23:42) [5]

> 1. Что значит "не реагирует"?
рискну ответить вместо него. ;о)
накак не реагирует, база то фоксовая, какие там пароли могут быть? тем более подключил он не базу а разрозненные файлы (скорее всего)  а раз пароля на базе нет то и авторизации не требует(игнорируется движком), а это значит любая чуш введенная вместо пароля приводит к открытию базы.


 
Alex7   (2004-10-13 08:10) [6]

Не реагирует, значит после клика "OK" в запросе база активизируется при любом значении пароля (даже пустом).
А DataBase.Params я ввожу ввожу произвольно или убираю
вовсе. Там же устанавливаю LoginPrompt=False.
Но зто второй вопрос. Главное запрос выдается, немотря ни на что.


 
sniknik ©   (2004-10-13 08:17) [7]

> Главное запрос выдается, немотря ни на что.
???
> Там же устанавливаю LoginPrompt=False
еще раз ???

не, адназназначно 17 строка виновата.


 
Alex7   (2004-10-13 11:14) [8]

Правильно! Запрос выдается при LoginPrompt=False.
Прошу прощения за свою темноту. Но я не понимаю, что такое
17 строка.


 
sniknik ©   (2004-10-13 11:26) [9]

http://podgoretsky.com/ftp/Language/nps/idioms.html


 
Alex7   (2004-10-13 20:15) [10]

Идиомы посмотрел. Спасибо за науку. Я новичок, так что думаю мне простительно. А теперь по существу.
Никакого кода практически нет. Есть БД(не файл, а БД), форма с 4-мя компонентами плюс  Database1.LoginPrompt := False; натыканные в разных местах (и в инспекторе тоже) и все.
Так называемый код привожу.

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, DB, DBTables, Grids, DBGrids;

type
 TForm1 = class(TForm)
   DBGrid1: TDBGrid;
   DataSource1: TDataSource;
   Table1: TTable;
   Database1: TDatabase;
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure Database1BeforeConnect(Sender: TObject);
   procedure Database1Login(Database: TDatabase; LoginParams: TStrings);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Database1.LoginPrompt := False;
Table1.Active := True;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
Table1.Active := False;
end;

procedure TForm1.Database1BeforeConnect(Sender: TObject);
begin
Database1.LoginPrompt := False;
end;

procedure TForm1.Database1Login(Database: TDatabase;
 LoginParams: TStrings);
begin
Database1.LoginPrompt := False;
end;

end.


 
sniknik ©   (2004-10-13 20:54) [11]

> Database1.LoginPrompt := False;
> Table1.Active := True;
и вот при этом возникает диалог ввода пароля?
тогда все элементарно, у тебя таблица Table1 приконекчена не к Database1 а напрямую к алиасу/пути/чему угодно но только не к Database1.

или 2 вариант тоже простой, диалог возникает до него, это значит таблица открыта в режиме разработки, и в той же разработке (в самом компомпоненте) стоит Database1.LoginPrompt = true; тогда дельфи генерит код с открытием таблици до твоего кода, когда еще не сработал твой первый Database1.LoginPrompt := False;.

> Идиомы посмотрел. Спасибо за науку.
кстати не обязательно весь код выкладывать, достаточно существенные для вопроса места. вот этом случае
достаточно было бы
"при трассировке на коде
procedure TForm1.FormCreate(Sender: TObject);
begin
Database1.LoginPrompt := False;
Table1.Active := True;
end;
при открытии таблици, вызывается диалог ввода пароля, хотя и не должон..."
и все. все понятно. трассировка делается по F7 F8 (пригодится ;)


 
Alex7   (2004-10-14 09:15) [12]

Еще раз спасибо за соучастие в проблеме,но вопросы к сожалению
остаются.
По 1 варианту:
  Как связать Table1 c Database1 ?  Путем тыка я в Database1
в свойстве DatabaseName указал псевдоним (вместо имени БД). И
все пошло. Запрос исчез. Но как оказалось, "Ура!" кричать рано.
Теперь он не появляется и при "LoginPrompt = True". Вернее, он
появляется, но только при открытии Unit и при Table1.Acttive = True. А на правильность пароля вообще не реагирует. После OK БД
активизируется всегда.
 По 2 варианту: Действительно заапрос вылезает на на команде
Table1.Active := True;, независимо от наличия в коде Database1.LoginPrompt := False;. Ну и что. а как исправить
ситуацию.


 
sniknik ©   (2004-10-14 11:16) [13]

не пойму, у тебя то какие варианты? я пытаюсь предположить что у тебя может быть у меня варианты есть, а у тебя все на месте ты делаеш только в одном и предполагать не нужно просто посмотри как сделано и выбери из 2х что подходит.

> А на правильность пароля вообще не реагирует.
а вот ответы нужно не только просматривать их еще желательно вдумчиво прочитывать.
перечитай [5] еще раз. и сразу, это не исправляется, если база пороль не поддерживает то это значит бери другую если он тебе необходим.



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

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

Наверх




Память: 0.48 MB
Время: 0.042 c
14-1098796698
oldman
2004-10-26 17:18
2004.11.14
Вот нашел такую задачку :)))


14-1098884123
peypivo
2004-10-27 17:35
2004.11.14
Как завсегдатаи форума умудряются работать?


14-1098961180
Jaxtor
2004-10-28 14:59
2004.11.14
Удаление GUID a из реестра


3-1097573274
Санёк
2004-10-12 13:27
2004.11.14
MSSQL и SQLTimeStamp


1-1099056568
Сергей Г
2004-10-29 17:29
2004.11.14
Доступ к файлу Excel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский