| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > Ошибка подключения к SQL-серверу |
| Автор: Shadow_1512 3.12.2004, 18:36 |
| Собственно говоря есть ActiveState Перл 5.22 вроде бы. К нему с activestate выкачаны DBI, DBD:ODBC, уставлено без проблем особых. В конфиге строка: $DB_PROP = "DBI:ODBC:driver={SQL Server};Server=ascod5;database=ford;uid=slava;pwd=sa;"; Сервер пишет в ответ: Указанное приложение CGI не возвратило полный набор заголовков HTTP. Не возвращены заголовки: DBI->connect failed: [Microsoft][ODBC Driver Manager] Invalid string or buffer length (SQL-S1090) (DBD: db_login/SQLConnect err=-1) Что примечательно - на другом компе, с возможно другой версией перла и другими версиями ODBC все работало без проблем. Сейчас еще сам порою, но не уверен, что откопаю причину, Перлом занимаюсь поневолеSmile. Хелп! |
| Автор: korob2001 4.12.2004, 04:15 |
| Помоему проблема дествительно в версии Perl, если с более новой версие всё работает. Установи более свежую, но не меньше чем Perl 5.6, ранние версии не поддерживали ссылок ну и конечно же ООП. |
| Автор: Shadow_1512 4.12.2004, 15:35 | ||
Спасибо за совет, проект не мой, знаю только то, что вроде как использовался там старенький Перл и ранее, но вроде все работало. Человек не был озабочен ООП Кстати, может кто знает, вот например в ActiveState Perl 5.8 ppm пытается лезть в свой репозитарий, чтобы установить пакет, причем лезет на ppm.activestate.com...А можно лишить ее этой замечательной функциональности, потому как все необходимые пакеты у меня есть и я хочу, чтобы ppm все установило из локальных файлов... |
| Автор: korob2001 4.12.2004, 19:13 | ||||
Модуль DBI, объектно ориентированный и если чел его использовал, значит всё-таки был озабочен ООП.
Сначала запусти PPM, затем вводи следующую команду: ppm>install путь_к_файлу_ppd Например если файл ppd лежит на диске C:\, в каталоге \DBI, то команда будет выглядеть так: ppm>install C:\DBI\DBI.ppd Удачи. |
| Автор: Shadow_1512 6.12.2004, 14:10 | ||||||
Спасибо! А то работая с Перлом других более ранних версий сформировалась иная привычка Что касается человека, не озабоченного ООП, то имелось в виду, что архитектура разрабатываемых им приложений ни в коем роде не ориентирована была на ООП, а то, что использовались отдельные классы, это ведь еще не значит, что весь проект написан в рамках ООП Еще раз спасибо |
| Автор: Shadow_1512 6.12.2004, 14:50 |
| Так, ну теперь проблему более или менее удалось решить, но теперь ошибка иная: DBI connect('driver={SQL Server};Server=ascod5;database=ford;uid=slava_u_s;pwd=sa;','',...) failed: : [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'slava_u_s'. Reason: Not associated with a trusted SQL Server connection. (SQL-28000)(DBD: db_login/SQLConnect err=-1) Что пишет - понимая, где исправить - нет. Сервер работает, коннект есть, юзер такой с таким паролем есть на коннект. Есть мысли? |
| Автор: korob2001 6.12.2004, 16:12 |
| Посмотреть на тот участок кода, где ты пытаешься подконектиться, можно? Логин, пароль естественно можешь изменить. |
| Автор: Shadow_1512 6.12.2004, 16:29 | ||
$DB_PROP = "DBI:ODBC:driver={SQL Server};Server=ascod5;database=ford;uid=slava_u_s;pwd=sa;"; Эта строка в конфиге.... $dbh = DBI->connect($DB_PROP); - а это, соответственно, то место, где происходит коннект непосредственно у меня больше ощущение, что здесь что-то не так уже с настройками SQL Server........? |
| Автор: Phoinix 7.12.2004, 08:21 | ||
| Shadow_1512 http://search.cpan.org/~jurl/DBD-ODBC-1.13/ODBC.pm ODBC - на то и отдельный интерфейс, что бы его настраивать самостоятельно.
В следующий раз не вводи в заблуждение народ. Что такое: "возможно другая версия Perl" и "другие версии ODBC"? Не путайся в понятиях. Процесс простой: - В источниках данных ODBC заводишь новый источник, с использованием драйвера "SQL Server",в нем и указываешь сервер, базу, пароль, логин; - В случае необходимости ставишь на источник данных свою проверку подлинности; - Потом после всех манипуалий с ODBC и предварительным тестированием там же, начинаешь редактировать скрипт, а именно: $DB_PROP = "DBI:ODBC:[Название источника данных в ODBC], [пользователь для этого источника данных], [пользователь для этого источника данных]"; ... После чего откидываешься на спинку кресла и наслаждаешься результатом... ;) |
| Автор: Shadow_1512 7.12.2004, 20:20 | ||||
Спасибо за информацию, последняя ошибка была вызвана некорректной настройкой SQL сервера 2000 уже, решили своими методами. А что касается других версий Перл и ODBC, ну вот характерно, что на версии 5.2.2 строка коннекции вообще была непонятна для DBI и ответом было что-то про неверную длину строки коннекции. Стоило поставить 5.8.х с соответствующими пакетами, сразу вопросы про длину ушли сами собой, появились другие, которые уже действительно указывали на ошибки настроек или программы, а не возникшие из-за разногласий в версиях. Спасибо за советы! |
| Автор: korob2001 8.12.2004, 09:21 | ||
Зачем же так сразу о понятиях? Понятия у каждого свои, потому разговоры о них никчему хорошему не приведут, потому как если понятия людей хоть в чём-то не сходятся, начинается поножовщина. Короче, конец у таких раскладов, как правило, трагический. Потому, давай не будем о понятиях. К томуже, человек пытался объяснить проблему как мог и описал что знал, это видно из того, что он написал, в вопросе, не одну и не две строки, типа: "Help, не могу запустить скрипт". Ребята, давайте жить дружно. Жизнь и так подсовывает подвохи на каждом шагу и мы не должны пытаться унизить друг друга, только из за того что ты знаешь больше по данному вопросу. Phoinix, только пойми меня правильно, я ничего не имею против тебя. Это я о том, что нужно быть чуточку снесходительнее, тем более когда видно, что человек перед тем как написать сюда, хоть что-то пытался сделать сам, такие люди заслуживают уважения. Удачи. |