Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-22221
Sour
2001-12-16 21:00
2002.01.08
Ресурсы


1-22003
Virtualik
2001-12-17 16:09
2002.01.08
TListItems


14-22326
McSimm
2001-11-04 11:35
2002.01.08
Кто-то хотел размять (себе) мозги? Какие будут варианты алгоритма?


4-22505
Delphi5.01
2001-11-07 20:14
2002.01.08
Проблемма с BitMap-ом


3-21903
Victor Tsay
2001-11-29 10:02
2002.01.08
Репликация





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский