Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.08;
Скачать: CL | DM;

Вниз

Как в программе сформировать 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"



Страницы: 1 вся ветка

Текущий архив: 2002.01.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
4-22472
Евгений
2001-10-27 17:03
2002.01.08
Как сделать свой маленький прокси-сервер?


14-22382
panov
2001-11-08 18:54
2002.01.08
продолжение http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1005233643&n=3


4-22458
Ajax
2001-10-31 17:50
2002.01.08
TColor и RGB


1-22180
Нафаня
2001-12-21 11:07
2002.01.08
Проблемка!


3-21948
andre_polt
2001-12-04 16:22
2002.01.08
DB