Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.09;
Скачать: CL | DM;

Вниз

Апгрейд MS SQL Server и Delphi.   Найти похожие ветки 

 
SashaL   (2002-11-20 09:37) [0]

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


 
stone ©   (2002-11-20 10:19) [1]

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


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

Симптомы характерные для работы 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.


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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2002.12.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
7-28322
antonioxxx
2002-09-29 15:57
2002.12.09
И снова о датах...


1-28015
First_May
2002-11-29 09:26
2002.12.09
Exports...


1-27926
Cranium
2002-11-28 22:58
2002.12.09
Как запретить возникновения события компонента?


3-27857
voland34
2002-11-20 23:48
2002.12.09
трабла с indexfield for ClientDataSet


7-28302
@Ujin
2002-10-06 15:41
2002.12.09
Как просто и быстро зарегистрировать расширение?