Главная страница
    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.041 c
3-1097655075
Submarine
2004-10-13 12:11
2004.11.14
Работа с SQL 2000 server


14-1099059159
Kerk
2004-10-29 18:12
2004.11.14
США могут повторить судьбу СССР


4-1097041381
Суслик
2004-10-06 09:43
2004.11.14
Шрифт


6-1094571193
Klopan
2004-09-07 19:33
2004.11.14
Порт


1-1099264502
Garfunkel
2004-11-01 02:15
2004.11.14
Динамическое создание компонент





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