Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.007 c
1-22066
Андрей Сенченко
2001-12-19 10:53
2002.01.08
Типы. Или помогите прочитать HELP


1-22200
Sergei_B
2001-12-15 09:57
2002.01.08
Int64 и размер файла


14-22410
fint
2001-11-08 15:10
2002.01.08
Попробуйте


3-21968
olban
2001-12-05 11:20
2002.01.08
QuantumGrid


6-22277
prosof
2001-10-02 10:21
2002.01.08
Определение траффика каждого корреспондента сети по IP.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский