Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизADO connection, D7, MS SQL2000 Найти похожие ветки
← →
elena_m (2003-05-29 17:50) [0]Клиентское приложение инсталлируется на машине, на которой стоит MSSQL2000 sp3. Файл *.udl находится в жестко прописанной папке, напр. С:\DBConnect. TestConnection выполняется, при запуске клиентского приложения выдается ошибка "не найден путь" и т.д.
Может быть при инсталляции не добавлена нужная библиотека?
← →
bushmen (2003-05-29 17:53) [1]А можно сначала узнать постановку задачи. И что за файл *.udl ?
← →
MOA (2003-05-29 18:06) [2]Либо поместите его в
Program Files\Common Files\System\Ole DB\Data Links\
(100% нажёжно), или в приложении (проекте) назовите его (руками!) как
.\ваш-udl-файл - если он в каталоге приложения, или как
Полный путь к файлу.
Если пользоваться визардом Delphi, он режет путь (если в текущем каталоге), так что нужно именно руками.
Удачи!
← →
elena_m (2003-05-29 18:31) [3]Дело в том, что это был мой первый шаг. У заказчиков нет каталога Data Links в папке OLE DB. Хотя установлено все тоже самое W2000, MSSQL 2000, кроме Delphi. Поэтому решила сделать корневой каталог на диске С. Путь в TADOConnection в Design Time виден правильно.
← →
MOA (2003-05-29 18:39) [4]>заказчиков нет каталога Data Links в папке OLE DB
Ну так создайте его.
Удачи!
← →
sniknik (2003-05-29 18:44) [5]руками при старте для уверенности вместе с полным путем указывай
ADOConnection.ConnectionString:= "FILE NAME=C:\DBConnect\udl.udl"; (то что там визард повставляет еще вопрос..)
а лутше (мне кажется) держать его рядом Exe файлом, но все равно указывать полный путь даже если папка текущая.
← →
elena_m (2003-05-29 18:53) [6]Огромное всем спасибо.
>MOA Ну так создайте его.
Создавали. Не помогает. У меня 2 системы на компьютере. W2000 стоит на диске D\ и, соответственно, ProgramFiles там же. Может это где-то фиксировалось?
Я попробую действительно прописать руками. Результат получу уже только завтра.
← →
elena_m (2003-05-30 13:12) [7]После того как прописала руками в конкретную папку, завалилось даже у маня на машине. Я так понимаю, пошел конфликт с свойством провайдер. В хелпе написано, что это свойство выставляется автоматически при задании СоnnectionString. Но ничего из этого не вышло. Может все-таки нехватка каких-то библиотек?
← →
MOA (2003-05-30 13:22) [8]Попробуйте в момент, когда ADOConnection уже с нужными параметрами, но ещё не астивен, посмотреть в отладчике на свойства соединения.
А на что жалуется? Что за ошибка?
← →
sniknik (2003-05-30 13:40) [9]ну как я понимаю тогда у тебя этот udl не настроен, а когда было без пути ловило какойто другой настроеный (с тем же именем, сделай поиск в скольких местах лежит такойже?).
или к примеру в udl настройки к одному провайдеру(с одним логином/паролем) а на другой машине тот же самый будет некоректный, надо перенастраивать.
у меня прекрасно работает вариант типа
FILE NAME=D:\Program Files\Common Files\System\Ole DB\Data Links\DBDEMOS.udl
и когда переписываеш удльку в другое место тоже
FILE NAME=D:\DBDEMOS.udl
может со строкой напутала? путь неправильно задала? и т.д. номер/сообщение ошибки какое?
← →
WarLord (2003-05-30 13:45) [10]
> у меня прекрасно работает вариант типа
> FILE NAME=D:\Program Files\Common Files\System\Ole DB\Data
> Links\DBDEMOS.udl
> и когда переписываеш удльку в другое место тоже
> FILE NAME=D:\DBDEMOS.udl
чудес не бывает :)
← →
elena_m (2003-05-30 14:23) [11]Файлов с одним и тем же именем, я стараюсь не разбрасывать.
Если поставить совершенно новый TADOConnection со стандартными настройками и перед актив = тру прописать путь к файлу udl - выдается ошибка Microsoft [ODBC Driver Manager] Data source name not found and not default driver specified.
Если в св. провайдер я выберу SQL OLE DB - тоже не подходит. В файле у меня идет настройка именно на этот драйвер, по умолчанию стоит MSDASQL
Если выбираю файл в браудере - все работает, но только на моей машине. Может это неправильно, что я пользуюсь SQL OLE DB &
← →
WarLord (2003-05-30 14:33) [12]
> elena_m ©
Попробуй вместо UDL-файла использовать строку типа
ADOConnection1.ConnectionString:="Provider=SQLOLEDB.1;Password="+Password+";Persist Security Info=True;"+
"User ID="+UName+";Initial Catalog="+BaseName+";Data Source="+ServerName;
← →
sniknik (2003-05-30 14:42) [13]elena_m © (30.05.03 14:23)
судя по ошибке конект через ODBC. и ненаходится ODBC алиас...
т.е. проблема с настройкой UDL файла. на "провайдер" не смотри он поменяется при изменении строки коннекта.
← →
elena_m (2003-05-31 00:22) [14]Получился такой результат. Если прописываю строку в программе, как советовал WarLord. Все замечательно и работает. Если же эту строку один к одному прописываю в файл udl и руками указываю его местонахождение - ругается Microsoft [ODBC Driver Manager] Data source name not found and not default driver specified.
← →
МДа.. (2003-05-31 01:20) [15]
> Если же эту строку один к одному прописываю в файл
Вопрос однако. Если открытьь udl в блокноте, не видно два первых байта файла, надо попробовать создать его при помощи CreateUdlFile(по-моему, так называется). Прочитать строку соединения из файла udl можно при помощи ReadSectionValues("oledb",...). Рекомендую обратить внимание на ф. PromptDataSource, при помощи которой можно создать этот файл при работе проги, и иже с нею, разобраться поможет.
Sheveli izvilinoy.)
← →
sniknik (2003-05-31 01:21) [16]WarLord © (30.05.03 14:33)
Provider=SQL OLEDB...
elena_m © (31.05.03 00:22)
[ ODBC Driver Manager] Data source name not found and not default driver specified
т.е. строка выглядит примерно так Provider=MSDASQL.1;Persist Security Info=False;Data Source=LocalServer
а говориш один к одному. не видиш разницу? (провайдер другой, не говоря об остальном) в том udl который подключается конект через ODBC, а уже в нем не настроен алиас (явно, если зайти в источники данных ODBC и сделать проверку этому DSN результат будет тотже).
в строке с OLE DB алиасов нет все в строке и прописывается (и работает).
в общем резюме. или всетаки строка не та или берет из другого udl.
кстати как ты делаеш udl файл? не в нотепаде случайно строку от WarLord © загоняеш? (натолкнуло "Если же эту строку один к одному прописываю в файл udl", ну явно в редакторе прописываеш)
← →
sniknik (2003-05-31 01:25) [17]если в редакторе то это неправильно. делай так, создаеш пустой файл, обзываеш его какнибудь.udl и в проводнике двойной клик на нем мышью или ентер. дальше настраиваеш, а не прописываеш.
← →
elena_m (2003-05-31 08:58) [18]>sniknik
Я так и делаю, кликаю правой кнопкой и настраиваю.
Строку перегоняю в блокноте и настраиваю. Мне самой непонятно причем тут ODBC
Я пробовала и ODBC драйверы - ошибка та же. Такое впечатление, что ей вообще все равно, что там написано. Я, конечно, могу зашить жестко, но у Заказчика другое имя сервера и все время перетряхивать инстолляцию не хочется
← →
elena_m (2003-05-31 12:19) [19]Я попробовала настраивать коннект при помощи ф-ии из ADOEditCon, при помощи диалового окна.
Если настраиваю строку коннекта все ОК. Если настраиваю файл, то появляется ошибка: Login faild for user... REason Not Associated with a trusted SQL Connection
Это происходит и при коннекте как пользователь домена и по паролю.
Если я правильно поняла это надо проверить Security на самом сервере, видимо пользователь неправильно настроен. Почему-то ручками это не ловилось и дельфи не ругалась и при тех же настройках тест коннекшн проходил.
← →
sniknik (2003-05-31 14:28) [20]elena_m © (31.05.03 08:58)
> Я так и делаю, кликаю правой кнопкой и настраиваю.
> Строку перегоняю в блокноте и настраиваю.
забудь про блокнот в случае с udl, и не делай так никогда, это не текстовый файл, там строка в юникоде (widestring с 2 байтами на символ), в блокноте правильный сама никогда не напишеш, даже имея абсолютно рабочие строки подключения.
делать надо так --> sniknik © (31.05.03 01:25)
> и настраиваю
если настраиваеш то видела там в настройке на панели connection кнопку Test Connection? по этой кнопке что говорит? соеденение валидное или нет?
(я так подозреваю, если строка в блокноте прописана, то ты и в настройку не попадеш будет говорить что это не udl файл)
тут и вариантов то не осталось (по тому как провайдер ODBC хатя уверяеш что записываеш OLEDB)
или udl открываеш не тот или неправильно его сделала.
> Login faild for user... REason Not Associated with a trusted SQL Connection
обычно при попытке подключится к серверу по виндовому паролю "Use windows NT Integrated security" а компьютер (вот облом) не в домене и даже на сервере юзер не прописан, или другие администраторские заморочки.
а вобще уже пошло перетирание одного и тогоже причем голословное.
ложи сюда код, как делаеш, где ошибка возникает и внутренности своего udl-я приведи хоть приблизительно посмотреть, что дает кнопка "Test Connection". короче описывай ситуацию.
без детального описания довольствуйся тем что есть (до более глубокого вникания), потому как я лично в этом случае умываю руки. (может конечно кто и угадает, но обычно не угадывают а говорят что телепат в отпуске)
← →
elena_m (2003-05-31 16:05) [21]TestConnection c cамого начала проходит и у меня, и у заказчика
И в настройку я попадаю.
[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Mship;Data Source=ELENA
А ситуация все та же, ручное присвоение ConnectionString коннекта не дает, а выбор файла в брайзере объекта коннект дает только на моем компьютере
← →
elena_m (2003-05-31 16:13) [22]>sniknik
Спасибо за подсказку про прописывание в домене, потому что местный сисадмин сказал, что ничего дополнительно не надо делать.
← →
sniknik (2003-05-31 17:32) [23]> TestConnection c cамого начала проходит и у меня, и у заказчика
значит с этим udl должно работать, без вариантов.
> Спасибо за подсказку про прописывание в домене, потому что местный сисадмин сказал, что ничего дополнительно не надо делать.
я не говорил что это нужно делать обязятельно это просто одно из возможных. (может админ прав, даже скорее всего, сама говориш Test Connection в udl проходит. т.е. настройки сети достаточны). что действительно нужно это доверительные отношения между компом с MSSQL и рабочей станцией. и даже этого не нужно если делать идентефикацию через MSSQL (тогда должно быть прописано в безопастности "SQL Server and Windows")
в общем здесь вариантов достаточно.
p.s. так и не вижу детального описания действий. и даже то что положила udl со своей машины рабочий (Data Source= ELENA) а где нерабочий? или у клента сервер также называется? сомневаюсь.
← →
elena_m (2003-06-01 13:18) [24]Всем огромное преогромное спасибо. Вопрос был действительно в правах юзера. Я сделала отладочный вариант с выведенной настройкой строки коннекта (ADOEditCon). И там ясно было сообщение, что у юзера нет прав соединения с базой. То есть до этого сообщение об ошибке не соответствовало тому что происходило на самом деле и вводило в заблуждение.
← →
sniknik (2003-06-01 13:43) [25]ADOEditCon если имеется ввиду процедура EditConnectionString вызывает PromptDataSource (вернее через эту обертку системную GetInitializationString). которая равнозначна (абсолютно) с тем что вызывает сиcтема для настройки udl.
а значит и ошибки должны быть одинаковы (ну какая разница из какого места процедуру вызывать? если конечно параметры одинаковы).
из чего заключаю что в настройку udl ты так и не попала... иначе не пришлось бы писать отладочный вариант с ADOEditCon. и сравниваеш не те ошибки.
еще раз (по другому). Пуск -> Выполнить -> Обзор(Тип файлов - все) выбираеш udl файл -> Открыть -> Ok.
(мошеш конечно сказать что это все тебе известно(и валить ошибки на систему типа я именно так и делала но..) но оговорки про блокнот/правую кнопку мыши и вобше стиль, заставляют меня думать что это не так)
← →
elena_m (2003-06-01 18:25) [26]>sniknik
Этот злосчастный блокнот использовался в самом начале 1 раз, чтобы перекопировать строку, созданную . Потом уже я заходила через open удл файла. Валить я буду только на свою некомпетентность. Моя беда в том, что я первый раз работаю через ADO и с MSSQL2000 и не администрю NT. До этого все мои проекты выполнялись под Interbase сначала BDE, потом IBX, DB2 через DBExpress - в этом случае был опытный админ и я с этим вообще дела не имела. Он сам создавал базу из принесенного скрипта и юзеров.
← →
sniknik (2003-06-01 19:53) [27]и ты ни разу не сказала прямо что ты делаеш (последовательность) и когда (на каком этапе) возникает ошибка. вот твоя главная некомпетентность.
а исходя из отрывочных и коственных данных предполагаю уже то что мне кажется.
и в последнем посте описание ничего не говорит, даже если базу создал посторонний коннект к ней протестенный в udl должен работать если именно она (эта udl) подключена, в 99.98% (0.02% оставляем на НЛО). а ты говорила что "TestConnection c cамого начала проходит и у меня, и у заказчика", и слово open только счас мелькнуло мне почемуто казалось "Открыть с помощью"->и.т.д. (имею право предположить, раз конкретно не сказано а оно почемуто не работает, хотя по уверениям все сделано правильно. а на что тогда еще думать? на НЛО?)
мне вобщемто пофигу. но ктото сказал что ответ на 50%(или больше?) состоит из грамотного вопроса(почитай вот интересно http://www.delphimaster.ru/vopros/index.html). иначе поиск ответа превращается ... ну в общем видно во что.
p.s. лично против тебя ничего не имею, но общатся с тобой трудновато. недоговоренностей много используеш. типа это всем известно это по умолчанию, а если у меня другие умолчания?.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.031 c