Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пароль на таблице, где его вводить? 
:(
    Опции темы
useless
Дата 1.12.2004, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 18.5.2004

Репутация: нет
Всего: 1



Есть некий алиас BDE, в нём есть некая Paradox-таблица. Делаем:
Код
........
var
  table: TTable;
begin
  table := TTable.Create(nil);
  table.DatabaseName := 'alias';
  table.TableName := 'table.db';
  table.Active := true;
.......................
end;
и вот в строке table.Active := true; вылетает окошко и просит ввести пароль. Пароль известен. Где в программе нужно его ввести, чтобы во время работы не вылетало окошко.
--------------------
Лучше день потерять, потом за 5 минут долететь !!!
PM MAIL ICQ   Вверх
Dimich
Дата 1.12.2004, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 3
Всего: 7



Вот при использовании ADO в ADOConnection есть ConnectionString и LoginPrompt, при использовании ODAC в OraSession есть ConnectString и ConnectPrompt а вот для BDE затрудняюсь ответить. Однако может я натолкнул Вас на путь решения?
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
useless
Дата 1.12.2004, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 18.5.2004

Репутация: нет
Всего: 1



Dimich, тогда если не трудно пример ADO ConnectionString для подключения к BDE.
--------------------
Лучше день потерять, потом за 5 минут долететь !!!
PM MAIL ICQ   Вверх
useless
Дата 1.12.2004, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 18.5.2004

Репутация: нет
Всего: 1



ConnectionString для ADO я нашёл, но так долго подключается, что я отказываюсь использовать ADO для доступа к Paradox.

Посему вопрос в первом посте остаётся открытым: Где в программе вводить пароль?
--------------------
Лучше день потерять, потом за 5 минут долететь !!!
PM MAIL ICQ   Вверх
Vit
Дата 1.12.2004, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Компонент - Database


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
useless
Дата 2.12.2004, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 18.5.2004

Репутация: нет
Всего: 1



ОК. Используем TDatabase.
Вот мой код:
Код
..........................
var
       db: TDatabase;
       table: TTable;
       str: string;
begin
    db := TDatabase.Create(nil);
    db.AliasName := 'TOOLS';
    db.DatabaseName := 'tools';
    db.LoginPrompt := false;
    db.Params.Add('PASSWORD=syskma');
    db.Connected := true;

    table := TTable.Create(nil);
    table.DatabaseName := 'tools';
    table.TableName := 'main.db';
    table.Active := true;
...............................................
end;
Когда делаю table.Active := true один хрен вылетает окно с запросом пароля. Где тут ошибка?

Это сообщение отредактировал(а) useless - 2.12.2004, 10:58
--------------------
Лучше день потерять, потом за 5 минут долететь !!!
PM MAIL ICQ   Вверх
RNS
Дата 2.12.2004, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 3.2.2004
Где: Орск

Репутация: нет
Всего: нет



Сними выделение с Login Promt компоненты TDatabase...
PM MAIL   Вверх
useless
Дата 2.12.2004, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 18.5.2004

Репутация: нет
Всего: 1



Непонял, как снять выделение?
--------------------
Лучше день потерять, потом за 5 минут долететь !!!
PM MAIL ICQ   Вверх
Vit
Дата 2.12.2004, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Database1.LoginPromt:=False


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Dayana
Дата 2.12.2004, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 352
Регистрация: 6.10.2002
Где: Тель-Авив

Репутация: 1
Всего: 4



Код

db.AliasName := 'TOOLS'


а вот db.DataBase должно быть отличное от AliasName, свое название

Код

db.DatabaseName := 'mytools'


и тогда

Код

table.DatabaseName := 'mytools'


иначе table снова напрямую обращается к алиасу в BDE...

Это сообщение отредактировал(а) Dayana - 2.12.2004, 17:13
PM MAIL ICQ   Вверх
useless
Дата 3.12.2004, 07:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 18.5.2004

Репутация: нет
Всего: 1



Люди, подправил код как советуете:
Код
...........................
var
    db: TDatabase;
    table: TTable;
begin
    db := TDatabase.Create(nil);
    db.AliasName := 'TOOLS';
    db.DatabaseName := 'mytools';
    db.LoginPrompt := False;
    db.Params.Add('Password=syskma');
    db.Connected := true;

    table := TTable.Create(nil);
    table.DatabaseName := 'mytools';
    table.TableName := 'main.db';
    table.Active := true;
...........................................
end;
Не работает - хоть ты тресни. Пароль теперь не спрашивает, но выдаёт ошибку "Insufficient table rights for operation. Password required." В Database Explorer попробовал открыть эту таблицу с паролем "syskma" - открывает без проблем.

Помогите разобраться!
--------------------
Лучше день потерять, потом за 5 минут долететь !!!
PM MAIL ICQ   Вверх
useless
Дата 4.12.2004, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 18.5.2004

Репутация: нет
Всего: 1



Неужели, я так никогда и не смогу достучаться до запароленой таблицы !!!!
smile
--------------------
Лучше день потерять, потом за 5 минут долететь !!!
PM MAIL ICQ   Вверх
Dimich
Дата 6.12.2004, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 3
Всего: 7



Как временный вариант, можно попробовать использовать функцию keybd_event () для заполнения поля с username и password в окошке ConnectDialogа.
Однако я знаю, что сейчас на меня обрушится гора критики от Вас, и Вы будете правы. Это не выход, а всего лишь один из вариантов временного решения проблемы.
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
useless
Дата 6.12.2004, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 18.5.2004

Репутация: нет
Всего: 1



Да я уже и на такой вариант согласен, если по-хорошему не получается. smile Можно по-подробнее об этом варианте, я новичок в Delphi.
--------------------
Лучше день потерять, потом за 5 минут долететь !!!
PM MAIL ICQ   Вверх
Dimich
Дата 6.12.2004, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 3
Всего: 7



Вот такой корявый примерчик:
Код
Const
 UserName = 'USERNAME';
 Password = 'MYPASSWORD';
var
 i : Integer;
begin
 // поместим в буфер клавы username,Tab,password,Tab,Enter
 // симулируем ввод username
 for i := 1 to Length (UserName) do
   keybd_event(Byte (UserName [i]), 0, 0, 0);
 // клавиша Tab
 keybd_event(9, 0, 0, 0);
 // симулируем ввод password
 for i := 1 to Length (Password) do
   keybd_event(Byte (Password [i]), 0, 0, 0);
 // клавиша Tab
 keybd_event(9, 0, 0, 0);
 // клавиша Enter
 keybd_event(13, 0, 0, 0);
 // Теперь пытаемся получить доступ к таблице, чтобы выскочило окошко ConnectDialogа
 // ....................
end;

--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1044 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.