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




Вниз

Как в программе сформировать connection string TADOConnection? 


Aleksandr   (2001-12-05 13:26) [0]

Уважаемые коллеги!
Возникла потребность перейти к ADO компонентам для таблиц Paradox (чтобы отказаться от BDE). Но в BDE проблема пути к таблицам, в который были установлены они и программа, решались просто установкой пути в свойстве Table.DataBaseName.
А как энто сделать для ADOConnection.ConnectionString?



Eduard   (2001-12-05 13:36) [1]

uses ADOConEd;

...
...

EditConnectionString



Aleksandr   (2001-12-05 14:04) [2]

2 Eduard
Нету такого...



olden   (2001-12-05 15:15) [3]

в ADOConnection в инспекторе объектов сформируй строку для доступа к твоей базе. Сделай тест соединения. Если все нормально, то теперь посмотри внимательно на структуру строки и напиши собственные процедуры для изменения параметров в строке.

вот небольшой прмер для связи с MSSQL (свежеиспеченный, наверняка с глюками)

есть строка (ConnectionString)
"Provider=SQLOLEDB.1;Password=pobut;Persist Security Info=True;User ID=pobutadm;Initial Catalog=pobut;Data source=olden"

вначале мы заполняем ее абстрактными полями типа
%напримеримяпользователя%
для этого служит процедура AbstrADOStr

а затем в нужном месте в нужное время FillADOStr подставляет нужные данные в эти поля

procedure AbstrADOStr(var AStr: string);
var i,aPos: integer;
tmpStr: string;
begin
AStr := LowerCase(AStr);

aPos := Pos("password=", AStr) + 9;
if APos > 9 then begin
tmpStr:="password=";
for i:=aPos to Length(AStr) do begin
if AStr[i]=";" then break;
tmpStr:=tmpStr+AStr[i];
end;
AStr := AnsiReplaceStr(AStr, tmpStr, "password=%PASS%");
end;

aPos := Pos("user id=", AStr) + 8;
if APos > 8 then begin
tmpStr:="user id=";
for i:=aPos to Length(AStr) do begin
if AStr[i]=";" then break;
tmpStr:=tmpStr+AStr[i];
end;
AStr := AnsiReplaceStr(AStr, tmpStr, "user id=%USER%");
end;

aPos := Pos("initial catalog=", AStr) + 16;
if APos > 16 then begin
tmpStr:="initial catalog=";
for i:=aPos to Length(AStr) do begin
if AStr[i]=";" then break;
tmpStr:=tmpStr+AStr[i];
end;
AStr := AnsiReplaceStr(AStr, tmpStr, "initial catalog=%BASE%");
end;

aPos := Pos("data source=", AStr) + 12;
if APos > 12 then begin
tmpStr:="data source=";
for i:=aPos to Length(AStr) do begin
if AStr[i]=";" then break;
tmpStr:=tmpStr+AStr[i];
end;
AStr := AnsiReplaceStr(AStr, tmpStr, "data source=%SERV%");
end;

end;

procedure FillADOStr(var AStr: string; AServ,ABase,AUser,APass: string);
begin
AStr := StringReplace(AStr, "%PASS%", APass,[rfIgnoreCase]);
AStr := StringReplace(AStr, "%USER%", AUser,[rfIgnoreCase]);
AStr := StringReplace(AStr, "%SERV%", AServ,[rfIgnoreCase]);
AStr := StringReplace(AStr, "%BASE%", ABase,[rfIgnoreCase]);
end;



Aleksandr   (2001-12-05 17:02) [4]

Сорри, что наверное не так поставил вопрос.
Ну, проблема не в строке, а в том, что в ней требуется DataSource, которого у юзера, понятно, нет и быть не может...



olden   (2001-12-06 12:41) [5]

В Архивах Королевства Делфи есть статья по работе через ADO с базами DBase и Paradox



asafr   (2001-12-06 12:46) [6]

var
strs:string;
begin
......
strs:=ADODB.PromptDataSource(0,Form1.ADOConnection1.ConnectionString);
......
end;



Axel   (2001-12-06 13:13) [7]

Sdelai knopku dlja zapuska Microsoft Data Link,
tam user sam mozet vybrat" nuznyi DataSource
i sohranjay gde-nib. poluchennye dannye.



Cheburek   (2001-12-06 14:37) [8]

1. Создай файл Connect.udl.
2. Запусти его.
3. Настрой на местонахождение файлов
4. В ConnectionString напиши "FILE NAME=Connect.udl"




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




Наверх





Память: 0.73 MB
Время: 0.026 c
3-21968           olban                 2001-12-05 11:20  2002.01.08  
QuantumGrid


14-22353          Merlin                2001-11-02 10:13  2002.01.08  
Я в шоке


14-22392          ~Mag~                 2001-11-10 13:27  2002.01.08  
Народ как разблокировать реестр в виндовсе ???


3-21921           MVova                 2001-12-04 10:41  2002.01.08  
Связь многие ко многим ;)


1-22051           kay                   2001-12-18 22:22  2002.01.08  
RichEdit