Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» dbExpress SQLConnection

Автор: kadm worker
Дата сообщения: 09.09.2005 11:31
Использую два компонента палитры dbExpress: SQLConnection, SQLDataSet.

С их помощью осуществляю выборку из MySQL-базы.
Всё бы ничего, но при каждом коннекте приходиться в ручную вводить пароль. Это утомляет.
Как можно реализовать неявный (скрытый от пользователя) ввод пароля для соединения с сервером?

Спасибо.
Автор: hog
Дата сообщения: 09.09.2005 11:43
да. прописать пароль в свойствах SQLConnection и выставить свойство LoginPrompt в false.
Автор: kadm worker
Дата сообщения: 09.09.2005 12:01
hog

Хех )))
Спасибо.
Ну, не судите строго, я только-только начал разбираться с dbExpress )))
Автор: DroN_S
Дата сообщения: 09.09.2005 18:52
hog
А как сделать тоже самое только с Query?
Автор: EAS
Дата сообщения: 10.09.2005 14:28
в TQuery прописать Database, в которой и указывать логин/пароль.
Автор: DroN_S
Дата сообщения: 10.09.2005 15:02
EAS
я сделал вот так, я написал Session.AddPassword('35345');
Только одно не то, почему то для ввода пороля можно использовать только цифры, буквы не прокатывают. С чем это связано?
Автор: hog
Дата сообщения: 10.09.2005 15:36
DroN_S
Подразумеваем, что "Query" = TQuery, а значит BDE

Цитата:
я сделал вот так, я написал Session.AddPassword('35345');

а зачем? этот метод нежен для открытия запароленной таблицы. тебе же сказали использовать TDatabase, где в свойстве Params прописывать пароль и ставить .LoginPrompt = false. и подключать все свои TQuery и TTable к этому TDataBase, вернее к созданному им временному alias'у.
Автор: DroN_S
Дата сообщения: 10.09.2005 19:38
hog
Делаю всё как ты написал, но всё-равно он требует ввести пароль...


Цитата:
этот метод нежен для открытия запароленной таблицы

как это понять, "нежен"..
Автор: hog
Дата сообщения: 10.09.2005 22:23
ну ласковый такой метод.... нУжен

Добавлено:

Цитата:
Делаю всё как ты написал, но всё-равно он требует ввести пароль...

ну эта.. код в студию

Добавлено:
достаточно выделить компоненты TDatabase и TQuery, нажать Ctrl-C и Ctrl-V сюда
Автор: DroN_S
Дата сообщения: 11.09.2005 13:47
hog

Цитата:
код в студию

Какой код если всё делается визуально...
Автор: hog
Дата сообщения: 11.09.2005 13:52
DroN_S

Цитата:
достаточно выделить компоненты TDatabase и TQuery, нажать Ctrl-C и Ctrl-V сюда

Автор: DroN_S
Дата сообщения: 11.09.2005 16:24
hog
вот код...

Код:
// code for TDataBase
object Database1: TDatabase
AliasName = 'City'
Connected = True
DatabaseName = 'Dron'
LoginPrompt = False
Params.Strings = (
'0123456879=0123456789')
SessionName = 'Default'
Left = 48
Top = 160
end

// code for TQuery
object QGoroda: TQuery
Active = True
DatabaseName = 'Dron'
SQL.Strings = (
'SELECT * FROM City')
Left = 16
Top = 8
object QGorodaTown_Name: TStringField
DisplayWidth = 38
FieldName = 'Town_Name'
Size = 40
end
object QGorodaKod: TStringField
DisplayWidth = 7
FieldName = 'Kod'
Size = 6
end
end
Автор: EAS
Дата сообщения: 11.09.2005 17:43

Цитата:
'0123456879=0123456789'

Это не есть правильно.
Должно быть вот так

Код: object Database1: TDatabase
AliasName = 'DBDEMOS'
Connected = False
DatabaseName = 'MAST'
Params.Strings = (
'USER NAME=SYSDBA'
'PASSWORD=masterkey')

SessionName = 'Default'
Left = 72
Top = 160
end
object Query1: TQuery
DatabaseName = 'MAST'
SQL.Strings = (
'select * from employee')
Left = 72
Top = 200
end
Автор: DroN_S
Дата сообщения: 11.09.2005 17:57
EAS
теперь у меня вот так

Код:
object Database1: TDatabase
AliasName = 'City'
Connected = True
DatabaseName = 'Dron'
LoginPrompt = False
Params.Strings = (
'USER NAME=0123456789'
'PASSWORD=0123456789')
SessionName = 'Default'
Left = 48
Top = 160
end
object QGoroda: TQuery
Active = True
DatabaseName = 'Dron'
SQL.Strings = (
'SELECT * FROM City')
Left = 16
Top = 8
end
Автор: hog
Дата сообщения: 11.09.2005 23:35
ну либо действительно ошибка в .params, либо странный глюк.
попробуй убрать из Database упоминания об alias (правой кнопкой, database editor) - стираешь значение "alias name", выбираешь нужный "driver name", жмешь "defaults" и заполняешь все "parameter overrides". из плюсов получишь отсутствие необходимости создавать алиас "City" на машине клиента.
Автор: DroN_S
Дата сообщения: 12.09.2005 00:12
hog

Цитата:
стираешь значение "alias name",

А как без псевданима будет происходить открытие базы?


Цитата:
выбираешь нужный "driver name", жмешь "defaults" и заполняешь все "parameter overrides".

Пробывал, ничего не получилось...
Автор: hog
Дата сообщения: 12.09.2005 00:16
DroN_S

Цитата:
А как без псевданима будет происходить открытие базы?

TDatabase создает временный алиас на время работы программы.

Цитата:
Пробывал, ничего не получилось...

не получилось подконнектится или все равно выдает окно с логином?
Автор: DroN_S
Дата сообщения: 12.09.2005 01:43
hog
неудалось коннектится...
Автор: hog
Дата сообщения: 12.09.2005 02:01
DroN_S

Цитата:
неудалось коннектится.

ага, значит ашипка в .params! код в студию
Автор: DroN_S
Дата сообщения: 12.09.2005 02:48
hog
вот он

Код:
object Database1: TDatabase
DatabaseName = 'Dron'
DriverName = 'STANDARD'
LoginPrompt = False
Params.Strings = (
'PATH='
'DEFAULT DRIVER=PARADOX'
'ENABLE BCD=FALSE'
'USERNAME=0123456789'
'PASSWORD=0123456789')
SessionName = 'Default'
Left = 48
Top = 160
end
Автор: hog
Дата сообщения: 12.09.2005 20:25
DroN_S

Цитата:
подозрительно, то что PATH пустой...

ну так! напиши туда путь к таблицам

Цитата:
PATH=c:\data


Добавлено:
а еще лучше в каком-нить oncreate что-то типа

Цитата:
Params.Strings[0] := 'PATH=' + ExtractFilePath(Application.Exename) + 'data';

или загрузку из реестра/.ini файла
Автор: DroN_S
Дата сообщения: 13.09.2005 10:48
написал вот так

Код:
object Database1: TDatabase
Connected = True
DatabaseName = 'Dron'
DriverName = 'STANDARD'
LoginPrompt = False
Params.Strings = (
'PATH=e:\2222'
'DEFAULT DRIVER=PARADOX'
'ENABLE BCD=FALSE'
'PASSWORD=555')
SessionName = 'Default'
Left = 48
Top = 160
end


object QGoroda: TQuery
Active = True
DatabaseName = 'Dron'
SQL.Strings = (
'SELECT * FROM City')
Left = 16
Top = 8
end
Автор: hog
Дата сообщения: 13.09.2005 12:40
эээ так стоп!! а зачем парадоксу пароль??? если оставить только одну tdatabase? создай новое приложение, на пустой форме:

Код:
object Database1: TDatabase
Connected = False
DatabaseName = 'test'
DriverName = 'STANDARD'
LoginPrompt = False
Params.Strings = (
'PATH=e:\2222'
'DEFAULT DRIVER=PARADOX'
'ENABLE BCD=FALSE')
SessionName = 'Default'
Left = 48
Top = 160
end
Автор: DroN_S
Дата сообщения: 13.09.2005 13:16
hog
если один TDataBase то при свойсве Connected=True окно не вылазит..
Ну а что толку от этого?
Автор: hog
Дата сообщения: 13.09.2005 15:33
DroN_S

Цитата:
окно не вылазит

о! разбираемся дальше.. когда начинает появляться окно? при добавлении tquery? окно появляется в ide или во время работы программы.
Автор: DroN_S
Дата сообщения: 13.09.2005 16:35
hog
поя вляется в ide
Автор: hog
Дата сообщения: 13.09.2005 17:19

Цитата:
когда начинает появляться окно?
Автор: DroN_S
Дата сообщения: 13.09.2005 19:50
hog
когда в TQuery ставишь Action = True
Автор: hog
Дата сообщения: 13.09.2005 21:46
ага, а таблица City не запаролена?

Добавлено:
если да, то действительно Session.AddPassword(..), но почему у тебя не принимает символьные значения?

Цитата:
буквы не прокатывают


Код: Session.AddPassword('jIGGAe');
QGoroda.Open;
Автор: DroN_S
Дата сообщения: 13.09.2005 22:39
hog

Цитата:
но почему у тебя не принимает символьные значения

Вот и я бы тоже хотел знать....

Страницы: 12

Предыдущая тема: Запаковать проект в один EXE файл


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.