Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переход с BDE на SQL Server 2005, боримся с SetRange 
:(
    Опции темы
Litta
  Дата 14.1.2010, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 14.3.2006

Репутация: нет
Всего: 1



Приветствую!

Что имеем: Большая прога выполненная на Delphi7, в которой по-минимуму используются SQL запросы и по-максимуму TTable (делалось ещё до меня, так что никак повлиять не мог  smile  )

Что хотим получить: Эту же саму прогу, но только с SQL Server 2005 вместо BDE!  smile 

В чём проблема: Появилась потребность в бОльшем функционале, а BDE уж очень часто начала выделывать кругаля, периодически ломаться и т.д. Как писал выше прога БОЛЬШАЯ, кода немерянно и переписывать его (на C# к примеру) не то что бы лениво, а очь долго - скорее уволят, чем допишем до конца smile Поэтому решили использовать старый добрый Delphi 7 в качестве основы программизма, а вот БД поменять. Пока вроде остановились на SQL Server 2005. Для связи с ним, я так понимаю, больше всего подходят компоненты ADO. Прогеры писали всё через TTable, в целях экономии времени на переделку (людям то работать нужно) подумали просто заменять их на TADOTable, а в последствии новое всё писать в TADOQuery ну и старенькое по-тихоньку модернизировать! Но тут же уткнулись - в очень и очень многих местах используется SetRange - а в TADOTable его нету! Пихать значения из SetRang-а в фильтр видится мне не очень красивым, т.к. во-многих местах используется SetRange, а потом уже на него накладываются свои сложные фильтра, да и тормозить, как я понимаю начнёт!
Отсюда собственно вопрос - как можно обойти SetRange при использовании TAdoTable ?
ЗЫ: понятно, что самое грамотное это все TTable заменить на TADOQuery и там уже всё нормально делать - но это займёт гораздо больше времени, посему хотелось бы этого избежать!
Заранее Спасибо!
PM MAIL   Вверх
Litta
Дата 15.1.2010, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 14.3.2006

Репутация: нет
Всего: 1



Немного уточню - Предполагается все данные из парадокса перегнать в сервер и пользоваться уже этой связкой Delphi+SQLServer, а о BDE забыть.
Соответственно программу нужно переделать уже под работу с Сервером. Но т.к. переделывать всё придётся очень и очень долго, то хотелось бы на данном этапе обойтись минимумом телодвижений для максимальной скорости переделки программы!
Т.к. используются TTable и никаких заморочек (транзакций и прочего нет) - то самый быстрый способ был бы заменить один компонент другим  Но т.к. у TADOTable нет SetRange - встает вопрос "А как обойти?" - т.к. он практически повсеместно используется!
Мне тут на одном форуме предложили использовать компоненты DBExpress, а в частности воспользоваться TSimpleDataSet - в котором поддерживается SetRange - можете что-то сказать о плюсах/минусах данного варианта ?
PM MAIL   Вверх
LexuSS
Дата 18.1.2010, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 12.10.2007

Репутация: нет
Всего: нет



На данный момент я работаю как раз над подобной задачей.
В программе использовалась база данных Paradox доступ к которой организовывался через BDE.
Я решил на первых парах не отказываться от BDE, а просто подключиться через него к SQL server.
PM MAIL   Вверх
Litta
Дата 18.1.2010, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 14.3.2006

Репутация: нет
Всего: 1



А что с быстродействием стало !? Медленней, быстрей или не особо повлияло !?
Т.е. старое так и работает через BDE в сервер пишется, а новое вы на ADO уже пишите !?
PM MAIL   Вверх
LexuSS
Дата 18.1.2010, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 12.10.2007

Репутация: нет
Всего: нет



C быстродействием конечно проблема, скорость обработки упала примерно в 10 раз.
Сейчас дорабатываю SQL запросы которые в программе есть, так что бы минимум данных в памяти хранилось.
В дальнейшем планирую перейти на ADO.
PM MAIL   Вверх
Litta
Дата 18.1.2010, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 14.3.2006

Репутация: нет
Всего: 1



А какие-либо дополнительные настройки BDE, драйвера понадобились? Я где-то читал, что BDE поддерживала только 2000 сервер, а потом её закончили просто развивать...
PM MAIL   Вверх
Frees
Дата 18.1.2010, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



а почему именно на АДО хотите переходить? про SDAC думали?

Добавлено через 3 минуты и 50 секунд
http://www.devart.com/sdac/


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Litta
Дата 18.1.2010, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 14.3.2006

Репутация: нет
Всего: 1



Товарищи посоветовали ADO, посмотрел, потестировал - вот и решил smile
А про SDAC я слышал (первый раз на прошлой неделе только...)! Но всё что слышал - что вот оно есть и всё! Ещё сказали что у тамошнего Table свойства SetRange нет, поэтому дальше рыть не стал. Можете прокомментировать что за зверь такой и его плюсы/минусы по сравнению с использованием ADO ?
PM MAIL   Вверх
Frees
Дата 18.1.2010, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



там вроде есть мастер миграции с BDE

Добавлено через 30 секунд
как раз для ваших симптомов ...


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
LexuSS
Дата 19.1.2010, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 12.10.2007

Репутация: нет
Всего: нет



Litta, Я всего лишь алиас добавил и удалил в именах таблиц расширение, правда и SQL server у меня 2000...  smile 
А вообще я думаю что без разницы какой сервер, я по началу даже к MySQL цеплялся.

Это сообщение отредактировал(а) LexuSS - 19.1.2010, 07:52
PM MAIL   Вверх
Litta
Дата 19.1.2010, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 14.3.2006

Репутация: нет
Всего: 1



Хочу попробовать оценить скорость BDE+Server
А подскажите, как мне через BDE это настроить подключение к SQL Server (напомню, что он 2005 smile )?
Я создал новый алиас, там выбрал SQL Server, в DataBase Name я так понимаю нужно указать путь к моей базе (файл имя.mdf ?)
А что ещё? Я пробую раскрыть список - мне в ответ придлегает окно для ввода пользователя и пароля (в сервере стоит Windows аутентификация) - как тут быть!?  Пробовал и без имя-пароль и пробовал вводить имя-пароль учётки - ничего непомогает пишет invalid configuration parameter и усё... соответственно никаких таблиц посмотреть, ничего :(

Это сообщение отредактировал(а) Litta - 19.1.2010, 16:28
PM MAIL   Вверх
LexuSS
Дата 19.1.2010, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 12.10.2007

Репутация: нет
Всего: нет



Надо создать в "Источники данных (ODBC)"
Поле "DataBase Name" оставь пустым.
PM MAIL   Вверх
Litta
Дата 19.1.2010, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 14.3.2006

Репутация: нет
Всего: 1



Пока получилось подключиться через создание системного DSN - но насколько это правильно/быстро - хз!

Подскажи, какие настройки (open mode, batch count и т.д.) нужно выставить, что бы это всё работало нормально ?

Это сообщение отредактировал(а) Litta - 19.1.2010, 17:10
PM MAIL   Вверх
LexuSS
Дата 20.1.2010, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 12.10.2007

Репутация: нет
Всего: нет



Я ставил только имя сервера, имя базы, логирование больших запросов.
При одновременной работе 3-4 пользователей, скорость обработки примерно 3-5 записей в таблице в секунду...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.3363 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.