Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Снифинг SQL запросов?  [new]
AlexeyZk
Member

Откуда:
Сообщений: 6
Добрый день.

Ситуация у меня примерно такая: Устроился в организацию, тут используется программа собственной разработки, которая на данный момент не соответствует требованиям законодательства.
Под это дело приобрели новую, которую будут вести и обновлять уже на договорной основе профессионалы.

Задача теперь такая, как перенести данные из старой БД в новую...

База данных не очень большая, примерно 10-15 тыс договоров, плюс контрагенты, платежи и начисления...
База в данный момент крутится на MS SQL 2000.

Таблиц в базе несколько десятков, причем связанны сложным образом, много таблиц справочников.
В программе в которой работаем(с этой БД), окон с данными не так уж и много... Найти прямое соответствие Таблица-окно с данными, можно только от части, слишком уж много сложных ссылок на другие таблицы, увязок и столбцов с непонятными флагами...

Возможно ли как-то перехватить из программы текст самого SQL запроса? так чтобы потом можно было выполнив эти запросы тупо выгрузить данные в Ексель на листах 5-6... Пусть с избыточными данными и без ссылок на справочники...
Для того чтобы потом уже с программистами разрабатывающими новую программу, аккуратно влить все в их базу.
17 июл 13, 14:05    [14578111]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
А через бэкап не получается??

Для "перехвата" запросов можно запустить трасу в профайлере..
Либо я чего-то не понимаю, либо вы слишком усложняете.
17 июл 13, 14:08    [14578126]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
несколько десятков таблиц
Guest
1. несколько десятков таблиц - это не много, в их структуре можно разобраться
2. для помощи разбора (перехвата текста запросов), можно прибегнуть к профайлеру
17 июл 13, 14:09    [14578131]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
Владимир Меньшиков
Member

Откуда: Санкт-Петербург
Сообщений: 68
Не факт, что структура базы данных старой программы соответствует новой.
Поэтому лучше спросить у профессионалов, которые будут поддерживать эту программу, какие им нужны данные и в каком виде, для импорта в новую программу истории.
А уже от их ответа и плясать.
17 июл 13, 14:30    [14578270]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
AlexeyZk
используется программа собственной разработки

Возможно ли как-то перехватить из программы текст самого SQL запроса?

Раз программа собственной разработки, значит, должны быть её исходники. Из которых проще всего и извлечь тексты SQL-запросов.
17 июл 13, 14:47    [14578391]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
AlexeyZk
Возможно ли как-то перехватить из программы текст самого SQL запроса?
Проще это сделать разработчикам программы (или тем, кто её сейчас поддерживает и имеет исходники).
17 июл 13, 16:50    [14579331]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
AlexeyZk
Member

Откуда:
Сообщений: 6
Исходники есть, но опыта программирования в Делфи, почти нет... по крайней мере, сколько я не пытался, так и не понял как выйти хоть на одно подключение к БД и найти текст запроса... :(
Программу разрабатывали местные ребята лет 10 назад, сейчас они уже разъехались по всей России... а прогу постепенно дорабатывал админ, который до меня работал... Даже сказать что дорабатывал можно с натяжкой, в основном чуть правил запросы и добавлял костыли, сейчас программа имеет ряд серьезных глюков, которые он победить не смог, а только на создавал новые...
Он сейчас тоже ооочень далеко, и показать хоть какие-то основы не может :(

Ребята которые будут внедрять новую прогу, естественно готовы помочь, но за очень круглую денежку, которую начальство платить не хочет...
Максимум о чем удалось договориться, что я подготовлю хоть какие-то справочники и базовые данные по договорам и контрагентам, а они уже вольют в новую БД...

К сожалению опыта работы с MS SQL не имею вообще, буду очень признателен, если сможете на пальцах объяснить что такое профайлер и как с ним работать... Можно ссылку, на толковый мануал примерами для чайников...
17 июл 13, 22:16    [14580539]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
AlexeyZk
буду очень признателен, если сможете на пальцах объяснить что такое профайлер и как с ним работать
Да в общем простая вещь с интуитивно понятным интерфейсом, несложно разобраться.

Можно и мануал почитать - BOL. Лучше установить локально, но можно и в интернете: http://msdn.microsoft.com/ru-ru/library/ms181091.aspx
17 июл 13, 23:39    [14580901]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
BusyMan
Member

Откуда: Москва
Сообщений: 4927
А как профайлер или делфи может помочь тут вообще? Данные то видимо в базе данных. Откройте студию - посмотрите что в таблицах, перенесите в другие таблицы, и т.п. Или что то вы не договариваете важное.
18 июл 13, 03:59    [14581191]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
BusyMan
А как профайлер или делфи может помочь тут вообще? Данные то видимо в базе данных. Откройте студию - посмотрите что в таблицах, перенесите в другие таблицы, и т.п.
Имеется в виду нажимать кнопки в приложении, получая в нём разные данные, смотреть в профайлере запросы, а потом уже анализировать модель данных, понимая, что где лежит. В принципе да, профайлер тут поможет.
Печально, когда так плохо организован процес сразработки, что нельзя понять структуру БД разработанного своими силами приложения. А что будет с новым приложением, которое вообще другая фирма делает???
18 июл 13, 09:01    [14581414]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
Владимир Меньшиков
Member

Откуда: Санкт-Петербург
Сообщений: 68
Ребята которые будут внедрять новую прогу, естественно готовы помочь, но за очень круглую денежку, которую начальство платить не хочет...

Ну так спросите начальство, что им проще потерять "очень круглую денежку" или данные по клиентам, договорам и т.п., что есть в старой системе.
То что Вы хотите сделать похоже на лотерею найду все данные - не найду все данные, сохраню - потеряю ... .
18 июл 13, 09:09    [14581449]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Я дико извиняюсь, но, увидев это:
AlexeyZk
опыта программирования в Делфи, почти нет
опыта работы с MS SQL не имею вообще
так и хочется спросить — а какой опыт у вас есть, и какая ваша роль/обязанности в этой организации?
18 июл 13, 10:48    [14582077]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
AlexeyZk
Member

Откуда:
Сообщений: 6
Гость333,
Роль основная, по сути я Начальник ИТ отдела, а если учесть что я тут почти один, то по совместительству и админ и все остальное вместе взятое...

alexeyvg,
Почему с другой фирмой проще... ?
Текущую программу, разрабатывало несколько человек, разработали, годик по сопровождали и разбежались... ответственных нет, искать некого... Законодательство за это время изменилось очень сильно, а программа как считала по контрагентам, так и продолжает по ним считать, (то есть, я не могу в ней разнести платеж на договор, только на человека). Плюсом вообще не рассчитываются ни пени, ни многие другие ключевые вещи...
А контора у нас муниципальная, и ведем учет муниципального хозяйства, со всем вытекающими последствиями...
Плюсом, программа не отслеживает и не проверяет данные на дурака... одни и тот же контрагент может быть введен хоть 20 раз, с разными договорами и т.п....
Ну вы примерно понимаете, что за несколько лет, может с базой произойти, когда данные вбивают девочки с зарплатой 9 тыс, и без какого-либо обучения внятного...

Сейчас купили уже программу, которую разрабатывали профессионалы, за работу которой и за обновление будут уже отвечать они сами, с вытекающими от сюда последствиями...
Даже в случае, если мы в будущем захотим перейти на какую другую программу, то данные можно будет вытащить, правильные... За которые потом можно будет спокойно заплатить, и перенести в другую программу...

Поэтому собственно и родилась мысля, выгрузить все в эксель, визуально просмотреть данные, все спорные, отделить, а более мене правильные перелить в новую БД...
А спорные пусть согласно договорам девочки у нас вбивают...

Владимир Меньшиков,
Старая программа останется, и никуда не денется... будем держать БД столько сколько нужно...
Если есть, предложение лучше, предлагай... Исходные данные я уже дал...
18 июл 13, 11:03    [14582195]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
AlexeyZk
Member

Откуда:
Сообщений: 6
Гость333,
По моему опыту:
Немного знаю сам SQL, писал простенькие БД и запросы...
Когда-то программер на С++, но под консольку, с виндой почти не общался...
Есть опыт настройки Серверов, Линуха, Домена и прочей лабуды..

Но нет опыта установки и использования MS SQL Server, Oracle, и других БД под Windows.
18 июл 13, 11:08    [14582223]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
Гость333
Member

Откуда:
Сообщений: 3683
AlexeyZk,

Насчёт профайлера — можете, например, начать со стандартного шаблона трассировки. Вполне возможно, с его помощью вы получите необходимую информацию. Если этого окажется недостаточно, то можно будет настроить специфический шаблон трассировки под ваши нужды, с выбором нужных событий и столбцов.
18 июл 13, 11:29    [14582351]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
Glory
Member

Откуда:
Сообщений: 104760
AlexeyZk
Поэтому собственно и родилась мысля, выгрузить все в эксель, визуально просмотреть данные, все спорные, отделить, а более мене правильные перелить в новую БД...
А спорные пусть согласно договорам девочки у нас вбивают...

И зачем вам тогда тексты запросов, которые приложение отправляет серверу ?
18 июл 13, 11:50    [14582565]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
AlexeyZk
Member

Откуда:
Сообщений: 6
Glory,
Чтобы разобраться с данными...
Скажем я могу получить содержимое одного договора, а мне надо вывести таблицу с данными всех договоров...
Это я могу сделать просто, если знаю SQL скрипт запроса, в котором тупо удаляю одно условие...

Либо есть скрипт, который рассчитывает сальдо на определенную дату, но он работает специфически, дает не все данные...
Модифицировав зарос, я выдеру все интересующие меня данные, плюсом еще и ID_записей, для того чтобы позже связать данные вручную...
18 июл 13, 13:18    [14583303]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1759
Если разработчики не поленились и наделили таблицы FK, то составить связи будет легко добавив таблицы в диаграмму.
19 июл 13, 12:15    [14588856]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
Glory
Member

Откуда:
Сообщений: 104760
AlexeyZk
Glory,
Чтобы разобраться с данными...
Скажем я могу получить содержимое одного договора, а мне надо вывести таблицу с данными всех договоров...
Это я могу сделать просто, если знаю SQL скрипт запроса, в котором тупо удаляю одно условие...

Как вы проведете аналогию между каждым нажатием клавиши в программе и запрсами, которые выпролняются на сервере ?
ADO, например, очень любит оборачивать запросы в sp_executesql. И использовать курсоры
19 июл 13, 14:00    [14589745]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
AlexeyZk
Member

Откуда:
Сообщений: 6
Glory
Как вы проведете аналогию между каждым нажатием клавиши в программе и запрсами, которые выпролняются на сервере ?
ADO, например, очень любит оборачивать запросы в sp_executesql. И использовать курсоры


Если честно, понятия не имею, вот я и спрашиваю, как вообще это возможно сделать? и какие подходы существуют...
22 июл 13, 08:15    [14596939]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
angel_zar
Member

Откуда: Барнаул
Сообщений: 902
Нужно, детально изучить формат базы исходника и приемника.
Потом писать запросы для переброса из исходной базы в базу приемник, а то может и программу писать, а то не известно может у вас там и договора (файлы физически лежат и т.д. или хранятся в БД в одном виде, а надо будет приводить в другой).
Так что то только детальное понятие форматов баз, а дальше можно думать и скрипты писать или сразу в раздел работа.
А так, может быть переброс данных вообще не будет технически возможен, кто знает, бывает и такое.
22 июл 13, 09:21    [14597099]     Ответить | Цитировать Сообщить модератору
 Re: Снифинг SQL запросов?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
AlexeyZk
Glory
Как вы проведете аналогию между каждым нажатием клавиши в программе и запрсами, которые выпролняются на сервере ?
ADO, например, очень любит оборачивать запросы в sp_executesql. И использовать курсоры


Если честно, понятия не имею, вот я и спрашиваю, как вообще это возможно сделать? и какие подходы существуют...
Глазами, читать и думать.

Как будто есть другие варианты.
alexeyvg
нажимать кнопки в приложении, получая в нём разные данные, смотреть в профайлере запросы, а потом уже анализировать модель данных, понимая, что где лежит. В принципе да, профайлер тут поможет.
Какого ещё ответа вы ждёте?

Если несложная программа, то за месяц справитесь. Если нужны только основные данные, несколько основных таблиц, то хватит и недели.
22 июл 13, 09:28    [14597125]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить