Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2007, 13:00   #1
А. Долматов
Форумчанин
 
Аватар для А. Долматов
 
Регистрация: 15.02.2007
Сообщений: 183
По умолчанию динамически создать подключение через ADO

Здравствуйте! Подскажите плиз, как создать строку подключение к базе через ADO динамически? Пробовал по разному, не получается.
provider:='Prvider=MSDASQL.1;Persis tSecurityInfo=False;ExtendedPropert ies=';
fname:='"DBQ=P:\.....\db_kiosk.mdb; ';
dirname:='DefaultDir=каталог с базой;';
driver:='Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;';
dsn:='FILEDSN=P:\......\db_kiosk.md b.dsn;MaxBufferSize=2048;MaxScanRow s=8;PageTimeout=5;SafeTransactions= 0;Threads=3;UID=admin;UserCommitSyn c=Yes;";';
inidir:='Initial Catalog=p:\...\db_kiosk.mdb';
DataModule5.ADOConnection2.Connecti onString:=provider+fname+dirname+dr iver+dsn+inidir;
в справке вообще ничего не написано по этому поводу. Очень надо, плиз, поделитесь опытом.
Знать все невозможно, в силу того, что жить бы стало неинтересно.
А. Долматов вне форума Ответить с цитированием
Старый 16.10.2007, 13:07   #2
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

Код:
procedure TDataM.DataModuleCreate(Sender: TObject);
const
  ss = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False';
var
  path: string;
begin
  path0:= ExtractFileDir(application.exename);
  path:= path0 +'\DB\avto.mdb';
  ADOConn.Close;

  try
    ADOConn.ConnectionString:= Format(ss, [path]);
    ADOConn.Open;
  except
    ShowMessage('Connection Error !');
    exit;
  end;
  Connected := true;
end;
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 16.10.2007, 14:35   #3
А. Долматов
Форумчанин
 
Аватар для А. Долматов
 
Регистрация: 15.02.2007
Сообщений: 183
По умолчанию

спасибо огромное. Но почему, если подключение произошло, я не могу программно приписать ADOTable её ADOConnection? Делаю так:
DataModule5.ADOTable1.Connection:=D ataModule5.ADOConnection2;
DataModule5.ADOTable1.TableName:='F ormat';
ошибка выходит как только я пытаюсь установить ADOConnection. Причем ошибка: неправильно доступа по адресу ......(шестнадцатеричное число)
Знать все невозможно, в силу того, что жить бы стало неинтересно.
А. Долматов вне форума Ответить с цитированием
Старый 16.10.2007, 14:38   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Цитата:
Сообщение от А. Долматов Посмотреть сообщение
спасибо огромное. Но почему, если подключение произошло, я не могу программно приписать ADOTable её ADOConnection? Делаю так:
DataModule5.ADOTable1.Connection:=D ataModule5.ADOConnection2;
DataModule5.ADOTable1.TableName:='F ormat';
ошибка выходит как только я пытаюсь установить ADOConnection. Причем ошибка: неправильно доступа по адресу ......(шестнадцатеричное число)
а dataModule5/ADOTable1 к моменту выполнения этого кода уже существует?
pu4koff вне форума Ответить с цитированием
Старый 16.10.2007, 15:35   #5
А. Долматов
Форумчанин
 
Аватар для А. Долматов
 
Регистрация: 15.02.2007
Сообщений: 183
По умолчанию

конечно. С него все начинается, и ADO компоненты тоже.
Знать все невозможно, в силу того, что жить бы стало неинтересно.
А. Долматов вне форума Ответить с цитированием
Старый 16.10.2007, 16:39   #6
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

ADOConn.Close;
//ADOTable1.Close;
ADOTable1.Connection:= ADOConn;
ADOTable1.TableName:='Format';
ADOTable1.Open;
ADOConn.Open;
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 16.10.2007, 18:20   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
ADOTable1.Open;
ADOConn.Open;
А разве недостаточно только ADOTable1.Open? ADOConn что, автоматом не откроется? Это просто вопрос, без "подкола", мне интересно.

Последний раз редактировалось mihali4; 16.10.2007 в 18:54.
mihali4 вне форума Ответить с цитированием
Старый 16.10.2007, 19:27   #8
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
А разве недостаточно только ADOTable1.Open? ADOConn что, автоматом не откроется? Это просто вопрос, без "подкола", мне интересно.
Это правило хорошего тона. Хотя лучше бы всеже местами поменять, т.к. при данной последовательности смысла от последней строчки нет
pu4koff вне форума Ответить с цитированием
Старый 16.10.2007, 20:08   #9
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
Сообщение

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Это правило хорошего тона. Хотя лучше бы всеже местами поменять, т.к. при данной последовательности смысла от последней строчки нет
да, я ошибся (
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как динамически создать процедуры для подменю компонента TMainMenu Dimitriys Общие вопросы Delphi 9 13.01.2011 18:02
подключение через BDE kate158 Помощь студентам 3 18.08.2008 13:47
Подключение БД через прокси D-mon БД в Delphi 2 30.05.2008 15:30
подключение через минипорт benjaminfran Работа с сетью в Delphi 3 14.02.2008 21:54
Подключение через WinInet SHEI'TI Работа с сетью в Delphi 1 15.02.2007 19:53