Форум: "Базы";
Текущий архив: 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"
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c