Форум: "Базы";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];
ВнизКак в программе сформировать connection string TADOConnection? Найти похожие ветки
← →
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;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.013 c