Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Подключиться к MSSQL через udl-файл  [new]
Folga
Member

Откуда:
Сообщений: 23
Добрый день!
Подскажите, пожалуйста, что не так.
Подключаюсь к MSSQL Server, создала файл Connect.udl, настроила, он лежит в одной папке с .ехе. Если в ConnectionString в редакторе указывать этот файл, то все подключается без проблем, а если прописывать программно при запуске приложения в событии onCreate формы, на которой лежит ADOConnection, то выдает ошибку: Не удается найти %1.
В событии пишу вот что:
Form1.ADOConnection1.Connected := false;
Form1.ADOConnection1.ConnectionString:= 'FILE NAME='+ExtractFilePath(Application.ExeName)+'Сonnect.udl';
Form1.ADOConnection1.Provider:= ExtractFilePath(Application.ExeName)+'Сonnect.udl';
Form1.ADOConnection1.Connected := true;

Заранее спасибо)
12 июн 18, 14:00    [21485912]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10493
А если так?
ADOConnection1.ConnectionString:= 'FILE NAME='+ExtractFilePath(Application.ExeName)+'Сonnect.udl;';
12 июн 18, 14:26    [21485973]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
Folga
Member

Откуда:
Сообщений: 23
_Vasilisk_,

ничего не изменилось
12 июн 18, 14:39    [21486006]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10493
Folga,

Настройте в IDE использование UDL и покажите получившийся код dfm
12 июн 18, 15:20    [21486103]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 6035
Folga,

Если убрать присвоение ADOConnection.Provider?
12 июн 18, 15:24    [21486115]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
Folga
Member

Откуда:
Сообщений: 23
_Vasilisk_,

object ADOConnection1: TADOConnection
    ConnectionString = 
      'FILE NAME=C:\Users\user\Documents\Embarcadero\Studio\Projects\Wi' +
      'n32\Debug\Connect.udl'
    LoginPrompt = False
    Provider = 
      'C:\Users\user\Documents\Embarcadero\Studio\Projects\Win32\Debug\' +
      'Connect.udl'
12 июн 18, 15:30    [21486134]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
Folga
Member

Откуда:
Сообщений: 23
DarkMaster,

ничего не меняется
12 июн 18, 15:30    [21486135]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10493
Folga,

1. Это не весь объект ADOConnection1. Приведите все объявление.

2. Что выведет
ADOConnection1.ConnectionString:= 'FILE NAME='+ExtractFilePath(Application.ExeName)+'Сonnect.udl';
ShowMessage(ADOConnection1.ConnectionString);
?
12 июн 18, 15:58    [21486228]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
Folga
Member

Откуда:
Сообщений: 23
_Vasilisk_,
весь файл dfm

К сообщению приложен файл (Unit1.dfm - 90Kb) cкачать
12 июн 18, 16:33    [21486335]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
Folga
Member

Откуда:
Сообщений: 23
_Vasilisk_,

и сообщение

К сообщению приложен файл. Размер - 9Kb
12 июн 18, 16:34    [21486336]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10493
Folga
и сообщение
А теперь сравните путь в сообщении с путем, где лежит файл C:\Users\user\Documents\Embarcadero\Studio\Projects\Win32\Debug\Connect.udl

и найдите отличия
12 июн 18, 16:56    [21486386]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
Folga
Member

Откуда:
Сообщений: 23
_Vasilisk_,

Я вижу, что они отличаются. Видимо, ExtractFilePath выдает результат с ...
Тогда не понятно, какую функцию использовать. ExtractFileDir делает то же самое, а больше никаких функций я что-то найти не могу.
Никаких дополнительных атрибутов у этой функции я тоже не нашла.
12 июн 18, 17:36    [21486451]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 45698

Folga
Видимо, ExtractFilePath выдает результат с ...

Или Application.ExeName. Проверь кто из них портит картину. Хотя возможно, что строка как
раз нормальная, а портит её ShowMessage() при выводе.

Изучение их исходников может помочь разобраться в проблеме.

Posted via ActualForum NNTP Server 1.5

12 июн 18, 17:53    [21486478]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
Folga
Member

Откуда:
Сообщений: 23
Dimitry Sibiryakov,

попробовала строку эту вывести в программе в Edit, там вроде все в порядке. Целиком, без точек.
Тогда я даже не знаю, на что и думать.
12 июн 18, 18:19    [21486508]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
Folga
Member

Откуда:
Сообщений: 23
Folga
object ADOConnection1: TADOConnection
    ConnectionString = 
      'FILE NAME=C:\Users\user\Documents\Embarcadero\Studio\Projects\Wi' +
      'n32\Debug\Connect.udl'
    LoginPrompt = False
    Provider = 
      'C:\Users\user\Documents\Embarcadero\Studio\Projects\Win32\Debug\' +
      'Connect.udl'


Вот из этого кода мне кажется, что там ограничение на длину литерала 64 символа, а у меня строка получается явно длиннее.
Как то надо ее делить, видимо...
12 июн 18, 18:37    [21486529]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10493
Folga
Как то надо ее делить,
Не надо.

Посмотрите куда у вас компилируется программа и положите рядом с ней ваш udl.

Подсказка: Она компилируется не в C:\Users\user\Documents\Embarcadero\Studio\Projects\Win32\Debug\
12 июн 18, 19:36    [21486605]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
Folga
Member

Откуда:
Сообщений: 23
_Vasilisk_,

я что-то не совсем понимаю.
У меня файл udl лежит в одной папке с exe'ком.
12 июн 18, 20:23    [21486674]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10493
Folga
У меня файл udl лежит в одной папке с exe'ком.
Это вам так кажется. Удалите exe файл, который возле udl и перекомпилируйте программу. Появится exe файл там же?
12 июн 18, 22:12    [21486916]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
Folga
Member

Откуда:
Сообщений: 23
_Vasilisk_,

появляется
12 июн 18, 22:19    [21486931]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10493
Folga,

А в C:\Users\user\Documents\ не лежит Project1.exe?
13 июн 18, 13:36    [21488224]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
Folga
Member

Откуда:
Сообщений: 23
_Vasilisk_,

нет, не лежит
13 июн 18, 14:56    [21488580]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
Gator
Member

Откуда: Москва
Сообщений: 13866
Легко подключаюсь к БД. Что я делаю не так?

Из DFM
  object cn: TADOConnection
    Connected = True
    ConnectionString = 'FILE NAME=X:\#Dogs\Test\DB\#Dogs.udl'
    LoginPrompt = False
    Mode = cmShareDenyNone
    Provider = 'Microsoft.Jet.OLEDB.4.0'
    Left = 8
  end

Сам UDL
[oledb]
; Everything after this line is an OLE DB initstring
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=X:\#Dogs\Test\DB\Dogs.mdb;Persist Security Info=False
13 июн 18, 16:48    [21489013]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
nobody known
Guest
Gator
Легко подключаюсь к БД. Что я делаю не так?
Так вы в dfm прописали, а автор хочет задавать ConnectionString в runtime. А так у нее тоже работает
14 июн 18, 05:45    [21489880]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
Barlone
Member

Откуда:
Сообщений: 992
Folga, не трогайте свойство Provider. Только ConnectionString.
Form1.ADOConnection1.ConnectionString:= 'FILE NAME='+ExtractFilePath(Application.ExeName)+'Сonnect.udl';
Form1.ADOConnection1.Connected := true;
14 июн 18, 07:31    [21489905]     Ответить | Цитировать Сообщить модератору
 Re: Подключиться к MSSQL через udl-файл  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 6035
Barlone,

Предлагал уже выше.
14 июн 18, 09:15    [21490037]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Delphi Ответить