Форум: "Базы";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];
ВнизАпгрейд 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c