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

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

Апгрейд MS SQL Server и Delphi. [D5, MSSQL]


SashaL ©   (2002-11-20 09:37:00) 

Нагрянул тут апгрейд MS SQL Server 6.5 до MS SQL Server 2000.
Базы перенес и вроде даже правильно. Но есть следующая загвоздка:
Программы разработанные в Delphi 5 перестали видеть хранимые процедуры. Причем в дизайнере они видны как и раньше (в виде dbo.proc1), их можно выбрать, задать параметры, все компилируется и запускается. А во время работы программы вылетает ошибка о том, что не найдена хранимая процедура. Если имя процедуры в компоненте TStoredProc ручками перебить без указания владельца (т.е. в виде proc1), то все нормально,
процедура выполняется без проблем. Для баз данных установлен уровень совместимости с версией 6.5.
Вопрос: что можно сделать (какие настройки в БД изменить), чтобы не перебивать названия прцедур вручную, а то придется перекомпилировать кучу программ и бегать обновлять их по всей организации? Да и для новых проектов придется имена процедур в компоненте руками править. И на какие еще грабли при переходе к новой версии SQL Server можно наступить?


SergSuper   (2002-11-20 17:31:00) [1]

скорее всего процедуры записаны как my_proc;1, а надо просто my_proc. В 6.5 это было всё равно, а в 7 и 2000 - придётся эту единицу убирать. И наверное вручную. Или же процедуры сделать с таким именем


SashaL   (2002-11-20 16:51:00) [2]

Спасибо за помощь.
Базы переносил при помощи мастера, а не через attach/detach. Возвращаться в 6.5 (правда пока и не перешли, тока пробный перенос) не хочется. Уже на перенесенной БД скорость выросла значительно, да и ряд возможностей в 2000 сервере привлекают. Скорость для задач довольно критична (на текущей БД запросы могут выполняться до 30 секунд, а хранимые процедуры минутами (правда в них очень большой объем работы)). Причина - неоптимальные структуры таблиц (по наследству досталось, переделать нет возможности) и содержание БД (мусора ну очень много), ну и конечно местами кривизна наших рук.


Александр Спелицин   (2002-11-20 10:49:00) [3]

Симптомы характерные для работы SQL 6.5 через SQL-links (BDE) с использования TStoredProc и последующему мереходу на SQL 7.0/2000. BDE SQL-link работает через db-lib, который MS отказался поддерживать и оставил на уровне SQL 6.5, при этом сильно изменив структуру системных объектов как БД master, так и остальных баз. SQL-link for MSSQL работает с системными объектами не через спец. функции/процедуры, как рекомендует M$, а напрямую. И к томуже поддерживает (гарантированно) только SQL 6.5 - это заявление Borland.
А связка TStoredProc & SQL7.0 у меня никогда стабильно не работала. И именно по этому я использовал следующую схему:
Application->BDE->ODBC->MSSQL7.0/2000
А для вызова процедур использовал TQuery c SQL текстом вида Exec my_sroted_procedure [:param1, :param2, ..., :paramN]
Так что лучше всего вам перейти обратно на SQL 6.5, а новые проекты реализовывать на какой-либо другой технологии, например ADO.


stone   (2002-11-20 10:19:00) [4]

а базы как переносил?
Просто detach, attach?


Наверх

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