Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ADO connection, D7, MS SQL2000 [D7, MSSQL]


Страницы:   1 2

elena_m ©   (2003-05-29 17:50:00) 

Клиентское приложение инсталлируется на машине, на которой стоит MSSQL2000 sp3. Файл *.udl находится в жестко прописанной папке, напр. С:\DBConnect. TestConnection выполняется, при запуске клиентского приложения выдается ошибка "не найден путь" и т.д.
Может быть при инсталляции не добавлена нужная библиотека?


sniknik   (2003-06-01 19:53:00) [1]

и ты ни разу не сказала прямо чтоты делаеш (последовательность) и когда(на каком этапе) возникает ошибка. вот твоя главная некомпетентность.
а исходя из отрывочных и коственных данных предполагаю уже то что мнекажется.

и в последнем посте описание ничего не говорит, даже если базу создал посторонний коннект к ней протестенный в udl должен работать если именно она (эта udl) подключена, в 99.98% (0.02% оставляем на НЛО). а ты говорила что "TestConnection c cамого начала проходит и у меня, и у заказчика", и слово open только счас мелькнуло мне почемуто казалось "Открыть с помощью"->и.т.д. (имею право предположить, раз конкретно не сказано а оно почемуто не работает, хотя по уверениям все сделано правильно. а на что тогда еще думать? на НЛО?)

мне вобщемто пофигу. но ктото сказал что ответ на 50%(или больше?) состоит из грамотного вопроса(почитай вот интересно http://www.delphimaster.ru/vopros/index.html). иначе поиск ответа превращается ... ну в общем видно во что.

p.s. лично против тебя ничего не имею, но общатся с тобой трудновато. недоговоренностей много используеш. типа это всем известно это по умолчанию, а если у меня другие умолчания?.


elena_m   (2003-06-01 18:25:00) [2]

>sniknik
Этот злосчастный блокнот использовался в самом начале 1 раз, чтобы перекопировать строку, созданную . Потом уже я заходила через open удл файла. Валить я буду только на свою некомпетентность. Моя беда в том, что я первый раз работаю через ADO и с MSSQL2000 и не администрю NT. До этого все мои проекты выполнялись под Interbase сначала BDE, потом IBX, DB2 через DBExpress - в этом случае был опытный админ и я с этим вообще дела не имела. Он сам создавал базу из принесенного скрипта и юзеров.


sniknik   (2003-06-01 13:43:00) [3]

ADOEditCon если имеется ввиду процедура EditConnectionString вызывает PromptDataSource (вернее через эту обертку системную GetInitializationString). которая равнозначна (абсолютно) с тем что вызывает сиcтема для настройки udl.
а значит и ошибки должны быть одинаковы (ну какая разница из какого места процедуру вызывать? если конечно параметры одинаковы).

из чего заключаю что в настройку udl ты так и не попала... иначе не пришлось бы писать отладочный вариант с ADOEditCon. и сравниваеш не те ошибки.

еще раз (по другому). Пуск -> Выполнить -> Обзор(Тип файлов - все) выбираеш udl файл -> Открыть -> Ok.
(мошеш конечно сказать что это все тебе известно(и валить ошибки на систему типа я именно так и делала но..) но оговорки про блокнот/правую кнопку мыши и вобше стиль, заставляют меня думать что это не так)


elena_m   (2003-06-01 13:18:00) [4]

Всем огромное преогромное спасибо. Вопрос был действительно в правах юзера. Я сделала отладочный вариант с выведенной настройкой строки коннекта (ADOEditCon). И там ясно было сообщение, что у юзера нет прав соединения с базой. То есть до этого сообщение об ошибке не соответствовало тому что происходило на самом деле и вводило в заблуждение.


sniknik   (2003-05-31 17:32:00) [5]

> TestConnection c cамого начала проходит и у меня, и у заказчика
значит с этим udl должно работать, без вариантов.

> Спасибо за подсказку про прописывание в домене, потому что местный сисадмин сказал, что ничего дополнительно не надо делать.
я не говорил что это нужно делать обязятельно это просто одно из возможных. (может админ прав, даже скорее всего, сама говориш Test Connection в udl проходит. т.е. настройки сети достаточны). что действительно нужно это доверительные отношения между компом с MSSQL и рабочей станцией. и даже этого не нужно если делать идентефикацию через MSSQL (тогда должно быть прописано в безопастности "SQL Server and Windows")
в общем здесь вариантов достаточно.

p.s. так и не вижу детального описания действий. и даже то что положила udl со своей машины рабочий (Data Source= ELENA) а где нерабочий? или у клента сервер также называется? сомневаюсь.


elena_m   (2003-05-31 16:13:00) [6]

>sniknik
Спасибо за подсказку про прописывание в домене, потому что местный сисадмин сказал, что ничего дополнительно не надо делать.


elena_m   (2003-05-31 16:05:00) [7]

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 коннекта не дает, а выбор файла в брайзере объекта коннект дает только на моем компьютере


sniknik   (2003-05-31 14:28:00) [8]

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 12:19:00) [9]

Я попробовала настраивать коннект при помощи ф-ии из ADOEditCon, при помощи диалового окна.
Если настраиваю строку коннекта все ОК. Если настраиваю файл, то появляется ошибка: Login faild for user... REason Not Associated with a trusted SQL Connection
Это происходит и при коннекте как пользователь домена и по паролю.
Если я правильно поняла это надо проверить Security на самом сервере, видимо пользователь неправильно настроен. Почему-то ручками это не ловилось и дельфи не ругалась и при тех же настройках тест коннекшн проходил.


elena_m   (2003-05-31 08:58:00) [10]

>sniknik
Я так и делаю, кликаю правой кнопкой и настраиваю.
Строку перегоняю в блокноте и настраиваю. Мне самой непонятно причем тут ODBC
Я пробовала и ODBC драйверы - ошибка та же. Такое впечатление, что ей вообще все равно, что там написано. Я, конечно, могу зашить жестко, но у Заказчика другое имя сервера и все время перетряхивать инстолляцию не хочется


sniknik   (2003-05-31 01:25:00) [11]

если в редакторе то это неправильно. делай так, создаеш пустойфайл, обзываеш его какнибудь.udl и в проводнике двойной клик на нем мышью или ентер. дальше настраиваеш, а не прописываеш.


sniknik   (2003-05-31 01:21:00) [12]

WarLord © (30.05.03 14:33)
Provider=SQL OLEDB...
elena_m © (31.05.03 00:22)
[ ODBCDriver 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", ну явно в редакторе прописываеш)


МДа..   (2003-05-31 01:20:00) [13]


> Если же эту строку один к одному прописываю в файл

Вопрос однако. Если открытьь udl в блокноте, не видно два первых байта файла, надо попробовать создать его при помощи CreateUdlFile(по-моему, так называется). Прочитать строку соединения из файла udl можно при помощи ReadSectionValues("oledb",...). Рекомендую обратить внимание на ф. PromptDataSource, при помощи которой можно создать этот файл при работе проги, и иже с нею, разобраться поможет.
Sheveli izvilinoy.)


elena_m   (2003-05-31 00:22:00) [14]

Получился такой результат. Если прописываю строку в программе, как советовал WarLord. Все замечательно и работает. Если же эту строку один к одному прописываю в файл udl и руками указываю его местонахождение - ругается Microsoft [ODBC Driver Manager] Data source name not found and not default driver specified.


sniknik   (2003-05-30 14:42:00) [15]

elena_m © (30.05.03 14:23)
судя по ошибке конект через ODBC. и ненаходится ODBC алиас...
т.е. проблема с настройкой UDL файла. на "провайдер" не смотри он поменяется при изменении строки коннекта.


WarLord   (2003-05-30 14:33:00) [16]


> elena_m ©

Попробуй вместо UDL-файла использовать строку типа
ADOConnection1.ConnectionString:="Provider=SQLOLEDB.1;Password="+Password+";Persist Security Info=True;"+
"User ID="+UName+";Initial Catalog="+BaseName+";Data Source="+ServerName;


elena_m   (2003-05-30 14:23:00) [17]

Файлов с одним и тем же именем, я стараюсь не разбрасывать.
Если поставить совершенно новый 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 13:45:00) [18]


> у меня прекрасно работает вариант типа
> FILE NAME=D:\Program Files\Common Files\System\Ole DB\Data
> Links\DBDEMOS.udl
> и когда переписываеш удльку в другое место тоже
> FILE NAME=D:\DBDEMOS.udl

чудес не бывает :)


sniknik   (2003-05-30 13:40:00) [19]

ну как я понимаю тогда у тебя этот udl не настроен, а когда было без пути ловило какойто другой настроеный (с тем же именем, сделай поиск в скольких местах лежит такойже?).
или к примеру в udl настройки к одному провайдеру(с одним логином/паролем) а на другой машине тот же самый будет некоректный, надо перенастраивать.

у меня прекрасно работает вариант типа
FILE NAME=D:\Program Files\Common Files\System\Ole DB\Data Links\DBDEMOS.udl
и когда переписываеш удльку в другое место тоже
FILE NAME=D:\DBDEMOS.udl

может со строкой напутала? путь неправильно задала? и т.д. номер/сообщение ошибки какое?


MOA   (2003-05-30 13:22:00) [20]

Попробуйте в момент, когда ADOConnection уже с нужными параметрами, но ещё не астивен, посмотреть в отладчике на свойства соединения.
А на что жалуется? Что за ошибка?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо