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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2012, 14:14   #1
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию Строка подключения ADO+DBase

Код:
Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data 
Source=d:\kvartplata\saldo\5\;Mode=ReadWrite;Extended
 Properties=dBase 5.0;Jet OLEDB:System database="";Jet OLEDB:Registry 
Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=18;Jet 
OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet 
OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet 
OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet 
OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica 
Repair=False;Jet OLEDB:SFP=False
Вот такой строкой подключаюсь к dbf-файлу (уже не помню откуда я ее взял, но работает нормально). Точнее, работает, если строку вставить сразу в дизайн-тайме. Если же попытаться присвоить ее динамически (например, для того, чтобы путь взять из edit1.text)
Код:
ADOConnection1.Connected:= False;
ADOConnection1.ConnectionString:='... бла-бла...';
ADOConnection1.Connected:= true;
то начинают сыпаться ошибки
- не пройдена проверка подлинности...
или
- таблица не найдена ядром базы данных...
или
- непредвиденная ошибка драйвера...
и тому подобная ересь.

У кого-нибудь было такое? Если да, то как боролись?
Спасибо.

Последний раз редактировалось _SERGEYX_; 21.09.2012 в 14:21.
_SERGEYX_ вне форума Ответить с цитированием
Старый 21.09.2012, 14:35   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вот такой вариант, с другим провайдером правда, работает без проблем
Цитата:
ADOConnectionDbf.ConnectionString:= Format('Provider=VFPOLEDB.1;Data Source=%s;Mode=ReadWrite;Password=" ";Collating Sequence=MACHINE;DELETED=False;CODE PAGE=866',[Path]);
Jet для dbf тоже использовал, но с dBase 4.0 и без этой здоровенной кучи параметров

ADD

И есть подозрение, что при динамической настройке что-то не то делаете
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 21.09.2012 в 14:50.
Аватар вне форума Ответить с цитированием
Старый 21.09.2012, 15:05   #3
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Спасибо, попробую этой строкой соединиться...
//************************

Последний раз редактировалось _SERGEYX_; 21.09.2012 в 15:27.
_SERGEYX_ вне форума Ответить с цитированием
Старый 21.09.2012, 15:24   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Спасибо, попробую этой строкой соединиться...
имхо, для этой строчки в системе должен быть установлен провайдер:
Microsoft OLE DB Provider for Visual FoxPro
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.09.2012, 15:27   #5
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Да, это я понял...

Хм, а если мою строку запихнуть динамически через FORMAT(), то все работает нормально.
Типа этого (строку более 255 символов принимать не хочет, поэтому составляю ее кусками):

Код:
var s: string;
begin
s:='';
s:=s+'Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=%s;';
s:=s+'Mode=ReadWrite;Extended Properties=dBase 5.0;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";';
s:=s+'Jet OLEDB:Engine Type=18;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;';
s:=s+'Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';

dm.ADOConnection1.Connected:= False;
dm.ADOConnection1.ConnectionString:=Format(s,[edit1.text]);
dm.OldKVART.Connected:= True;
end;
Странно...
_SERGEYX_ вне форума Ответить с цитированием
Старый 21.09.2012, 15:36   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Длинные тексты удобней так склеивать
Код:
s:='...'+
   '...'+
   '...';
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строка подключения ADO, сеть mirra88 C/C++ Базы данных 0 13.06.2011 20:00
ADO и Excel берется первая строка Tomatos БД в Delphi 3 17.02.2011 19:25
Как скрыть значок определённого подключения из папки "сетевые подключения"? mr_alex Win Api 2 05.11.2009 10:40
Создание подключения к БД Access по ADO girz БД в Delphi 1 13.05.2009 15:21