Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.027 c
1-84202
Mortal
2003-06-12 13:33
2003.06.26
TListView


4-84837
anod
2003-04-20 15:59
2003.06.26
TrackBar


11-84055
SPeller
2002-10-10 14:37
2003.06.26
Динамическое создание/удаление контролов.


1-84429
DJ Vano
2003-06-10 01:12
2003.06.26
События для TLabel


3-83882
GavAl
2003-06-02 18:02
2003.06.26
Filter





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