![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADOConnection. Как указать только путь к БД?
DmitrichJ © (2007-05-30 17:45:00)Здравствуйте, Мастера. Изначально все настройки в ConnectionString сделаны, нужно только в процессе работы подключаться к разным базам. Т.е. просто менять только путь в ConnectionString. Как это сделать?
Спасибо
DrAndrey (2007-06-01 16:49:00) [1]>ANB © (30.05.07 18:19) [2]
хороший совет.
var PathDB: String;
PathDB:= 'C:\q\qq\qqq\MyDb.mdb'
ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0;'
+ 'Data Source=' + PathDB +
+ ';Password="";Jet OLEDB:Database';
sniknik (2007-06-01 16:40:00) [2]> 'Initial Catalog'- этот параметр не найден!!!
а куда делось
> Говорит, мол параметр только для чтения
?
про тот же самый параметр.
> Тем более у меня аксес, а не MS SQL
указывать надо было... у разных провайдеров разные параметры.
p.s. еще раз. врать не надо. тебе же проше будет. охотнее подскажут.
Плохиш (2007-06-01 16:37:00) [3]
> DmitrichJ (01.06.07 16:28) [16]
Найти название нужного тебе параметра, пусь будет твоим домашним заданием...
DmitrichJ (2007-06-01 16:28:00) [4]'Initial Catalog'- этот параметр не найден!!! Тем более у меня аксес, а не MS SQL
Плохиш (2007-06-01 01:45:00) [5]
> MsGuns © (01.06.07 00:54) [14]
> >Плохиш © (31.05.07 18:09) [13]
>
> О, боже !
> Эк тебя угораздило, горемычного ;(
Не понял...
MsGuns (2007-06-01 00:54:00) [6]>Плохиш © (31.05.07 18:09) [13]
О, боже !
Эк тебя угораздило, горемычного ;(
Плохиш (2007-05-31 18:09:00) [7]
const
strMSServer = 'Data Source';
strMSDatabase = 'Initial Catalog';
...
function SetDatabaseIntoConnection(var aConnection: TADOConnection;
sDB: String; sServer: String ): Boolean;
var
bIsOpen: Boolean;
begin
Result := false;
if Assigned( aConnection ) then
try
bIsOpen := aConnection.Connected;
if bIsOpen then aConnection.Close;
Case GetProvType( aConnection ) of
typMSSQL:
begin
if sServer <> '' then
aConnection.Properties.Item[strMSServer].Value := sServer;
aConnection.Properties.Item[strMSDatabase].Value := sDB; Result := true;
end;
typPostgre:
begin
if (sServer <> '') and
(CompareText(GetExtendProperty( aConnection, strPServer), sServer) <> 0) then
SetExtendProperty(aConnection, strPServer, sServer);
Result := SetExtendProperty(aConnection, strPDatabase, sDB);
end;
end;
if sDB = '' then Result := false;
if bIsOpen and Result then aConnection.Open;
except
Result := false;
end;
end;
DmitrichJ (2007-05-31 18:01:00) [8]Так и не разобрался=(
Плохиш, можешь написать пример?
sniknik (2007-05-30 20:17:00) [9]врать не надо. оно не это "говорит".
DmitrichJ (2007-05-30 19:48:00) [10]Ну хорошо, Плохишe, выдаёт ошибку! Говорит, мол параметр только для чтения
Плохиш (2007-05-30 18:47:00) [11]
> не работает!!!
Нет в программировании такого понятия, оно есть только у слесарей-сантехников...
DmitrichJ (2007-05-30 18:45:00) [12]Можно подробней???
form1.ADOConnection1.Properties.Item['Initial Catalog'].Value:=Edit1.Text;
form1.ADOConnection1.Connected:=true;
не работает!!!
Работаю с Аксессом, кстати
Jan1 (2007-05-30 18:30:00) [13]
> Здравствуйте, Мастера. Изначально все настройки в ConnectionString
> сделаны, нужно только в процессе работы подключаться к разным
> базам. Т.е. просто менять только путь в ConnectionString.
> Как это сделать?
>
Как бы я сделал. Проверяю наличие строки соединения или в реестре или в ini. Если его нет, то выдаю - PromptDataSource(...) Потом в случае удачи, сохраняю где надо(ини, реестр) и в следующий раз уже прочитается от туда. Можно шифровать если боитесь хранить пароль, можно юзать виндовую аунтификацию если СУБД позволяет...
Плохиш (2007-05-30 18:29:00) [14]
> DmitrichJ (30.05.07 18:19) [3]
> Плохиш, в нём через item нужно искать нужную строчку???
Искать не нужно, он сам найдёт
Properties.Item['Initial Catalog'].Value
ANB (2007-05-30 18:24:00) [15]
> DmitrichJ (30.05.07 18:21) [4]
Запости рабочую строку и то, как ты пытался ее собрать в рантайме. Рабочую строку обрами одинарными кавычками.
DmitrichJ (2007-05-30 18:21:00) [16]ANB, я попробовал через 2-е константы String+'путь к бд+string, но ничего хорошего не вышло. или я тебя не понял.
DmitrichJ (2007-05-30 18:19:00) [17]Плохиш, в нём через item нужно искать нужную строчку???
ANB (2007-05-30 18:19:00) [18]Я бы вообще не парясь особо перенес забивание строки в код. А то я уже нечаянно тер пару раз с трудом настроенную строку.
Заодно ее лучше видно. Ну и рантайм правки элементарно вносить.
Плохиш (2007-05-30 17:53:00) [19]Properties